KDEConnect/Build MacOS
[Note] Building on macOS is still an experimental feature, it's not stable and could not be launched as other applications on macOS. Please do not use it in your production environment !
Prerequisite
- Install Xcode from App Store
- Install Xcode command line tools with
xcode-select --install
- Install Python 3 from Python Homepage, Homebrew or MacPorts. Validate your python install with following command:
which python3
Setting up Craft environment
Once all prerequisites are satisfied, install Craft
curl https://raw.githubusercontent.com/KDE/craft/master/setup/CraftBootstrap.py -o setup.py && python3 setup.py --prefix ~/CraftRoot
With this command, Craft will be installed in ~/CraftRoot
. You can change the directory after --prefix
to install Craft to another directory.
After a long installation, the final output should be this:
Craft : /Users/<username>/CraftRoot Version : master ABI : macos-64-clang Download directory : /Users/<username>/CraftRoot/download Setup complete Please run the following command to get started: source /Users/<username>/CraftRoot/craft/craftenv.sh
Then, you can execute source /Users/<username>/CraftRoot/craft/craftenv.sh
to enter the Craft environment.
Fetching source code and building
Be sure you are in the Craft environment. There could be aCRAFT:
prefix in front of your prompt, like this:
As a dependency of phono-vlc
, libvlc
is provided on Windows in Craft. But on macOS, there is no Craft Blueprint of libvlc
. This will be fixed.
Now, as it's a runtime dependency of KDE Connect, we can modify the blueprint of KDE Connect in Craft to pass the building:
- Open the blueprint file of KDE Connect with your preferred text editor
/Users/<username>/CraftRoot/etc/blueprints/locations/craft-blueprints-kde/extragear/kdeconnect-kde/kdeconnect-kde.py
- Find this line
self.runtimeDependencies["qt-libs/phonon-vlc"] = None
- Delete or comment this line like:
Then, run craft extragear/kdeconnect-kde
to build KDE Connect on macOS.
If all is well, the last output could be
*** Craft all succeeded: extragear/kdeconnect-kde after 1 minute 51 seconds ***
.
Then you'll get your own build of KDE Connect on macOS in /Users/<username>/CraftRoot/build/extragear/kdeconnect-kde/image-RelWithDebInfo-master/
Launch on macOS
Up to now, KDE Connect could not run normally without some explicit configuration. The build on macOS is still an experimental feature.
Before the launch, you should get your dbus daemon run on macOS. Although dbus is compiled during the building, it's not configured for macOS launchd daemon. Here, we provide an easier way, installing dbus with Homebrew or MacPorts.
For example,
brew install d-bus brew services start dbus
The dbus daemon could be dynamically lauched and managed by macOS launchd daemon.
To launch KDE Connect, be sure that you're still in Craft environment. Change your directory to the root of build.
- Launch
kdeconnectd
craft --run lib/libexec/kdeconnectd
- Launch
kdeconnect-indicator
in another terminalcraft --run Applications/KDE/kdeconnect-indicator.app/Contents/MacOS/kdeconnect-indicator
There could be a tray icon of KDE Connect in the status bar. Click it and open the KDE Connect setting window, it should be like this:
The build is passed on macOS 10.14.2 with Xcode 10.1. Feel easy to test it on other version.