KDEConnect/Build MacOS: Difference between revisions

From KDE Community Wiki
No edit summary
(3 intermediate revisions by the same user not shown)
Line 27: Line 27:


== Fetching source code and building ==
== Fetching source code and building ==
Be sure you are in the Craft environment. There could be a<code>CRAFT:</code> prefix in front of your prompt, like this:
Make sure you are in the Craft environment. There could be a <code>CRAFT:</code> prefix in front of your prompt, like this:
[[File:MacOS_KDEConnect_Craft_Source.png]]
[[File:MacOS_KDEConnect_Craft_Source.png]]


As a dependency of <code>phono-vlc</code>, <code>libvlc</code> is provided on Windows in Craft. But on macOS, there is no Craft Blueprint of <code>libvlc</code>. This will be fixed.
Run <code>craft extragear/kdeconnect-kde</code> to build KDE Connect on macOS.


Now, as it's a runtime dependency of KDE Connect, we can modify the blueprint of KDE Connect in Craft to pass the building:
If all is well, the last output could be <pre>*** Craft all succeeded: extragear/kdeconnect-kde after 1 minute 51 seconds ***</pre>


# Open the blueprint file of KDE Connect with your preferred text editor<pre>/Users/<username>/CraftRoot/etc/blueprints/locations/craft-blueprints-kde/extragear/kdeconnect-kde/kdeconnect-kde.py</pre>
Then you'll get your own build of KDE Connect on macOS in <code>/Users/<username>/CraftRoot/build/extragear/kdeconnect-kde/image-RelWithDebInfo-master/</code>. But you don't really need handle with it. Just continue...
# Find this line<pre>self.runtimeDependencies["qt-libs/phonon-vlc"] = None</pre>
# Delete or comment this line like: [[File:MacOS_KDEConnect_Craft_Remove_phonon-vlc.png]]


Then, run <code>craft extragear/kdeconnect-kde</code> to build KDE Connect on macOS.
Run <code>craft --package extragear/kdeconnect-kde</code> to pack KDE Connect to a single application package.


If all is well, the last output could be <pre>*** Craft all succeeded: extragear/kdeconnect-kde after 1 minute 51 seconds ***</pre>.
This will be a long process(tested on Mac Mini 2012 fusion driver, 3 minutes 25 seconds).


Then you'll get your own build of KDE Connect on macOS in <code>/Users/<username>/CraftRoot/build/extragear/kdeconnect-kde/image-RelWithDebInfo-master/</code>
After that, you will get a DMG image file in <code>/Users/<username>/CraftRoot/tmp/</code>.


== Launch on macOS ==
== 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.
Double click to mount the DMG image, drag it into Applications folder. Then you can see it on your Dashboard.


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.
[[File:KDE_Connect_in_the_macOS_Dashboard.png]]


For example,
Open and enjoy the connection between your Mac and your Android phone!
<pre>
brew install d-bus
brew services start dbus
</pre>
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.
[[File:KDE_Connect_macOS_Launch.png]]


# Launch <code>kdeconnectd</code><pre>craft --run lib/libexec/kdeconnectd</pre>
The build is passed on macOS 10.14.5 with Xcode 10.1. Feel easy to test it on other versions.
# Launch <code>kdeconnect-indicator</code> in another terminal<pre>craft --run Applications/KDE/kdeconnect-indicator.app/Contents/MacOS/kdeconnect-indicator</pre>
 
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:
[[File:MacOS_KDEConnect_Craft_Run.png]]
 
The build is passed on macOS 10.14.2 with Xcode 10.1. Feel easy to test it on other version.

Revision as of 17:59, 19 June 2019

[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

  1. Install Xcode from App Store
  2. Install Xcode command line tools with xcode-select --install
  3. 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

Make sure you are in the Craft environment. There could be a CRAFT: prefix in front of your prompt, like this:

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/. But you don't really need handle with it. Just continue...

Run craft --package extragear/kdeconnect-kde to pack KDE Connect to a single application package.

This will be a long process(tested on Mac Mini 2012 fusion driver, 3 minutes 25 seconds).

After that, you will get a DMG image file in /Users/<username>/CraftRoot/tmp/.

Launch on macOS

Double click to mount the DMG image, drag it into Applications folder. Then you can see it on your Dashboard.

Open and enjoy the connection between your Mac and your Android phone!

The build is passed on macOS 10.14.5 with Xcode 10.1. Feel easy to test it on other versions.