Guidelines and HOWTOs/Build from source/Mac: Difference between revisions

From KDE Community Wiki
(→‎Macports (including Qt): Add perl module needed to compile kdoctools)
(Add instructions on using René's / Marko's patched port tree, and why you'd want to do this.)
Line 1: Line 1:
== Install required tools and libraries ==
== Overview ==
 
Several methods of building KDE / KF5 on Mac are available, and it is not firmly established, yet, which one is "best". The two main approaches are using either a "stock" version of Qt, or a "patched" Qt. The reason for patching being that KF5-applications will not be able to locate their resources (and particularly theme icons) out of the box with current stock versions of Qt.
 
There is some hope that the required patches will eventually become available in official Qt packages, but this is not the case as of this writing. The main drawback with this is that Qt has to be compiled on your computer, adding hours to your setup time. The main advantage is that most things can be expected to work out of the box.
 
== Installation using patched version of Qt and MacPorts ==
 
* [https://guide.macports.org/#installing.macports Install Macports]
** Since the patched version of Qt is not co-installable with a regular version of Qt (in the same prefix), you may want to install MacPorts to a non-default path, e.g. /opt/kf5, esp. if you are using other Qt packages in MacPorts.
* Install git, if you don't have it yet:
sudo port install git
* Get the ports tree for patched qt and frameworks:
# We assume you're doing this in your home directory
cd ~
git clone https://github.com/mkae/macstrop.git
# create index
cd macstrop
portindex
* Register the new ports with Macports. To do so, edit ${prefix}/etc/macports/sources.conf, where prefix is the root path of your MacPorts installation (/opt/local by default). Add the following line:
file:///Users/YourUserName/macstrop
 
You can now start building frameworks or applications (if already packaged), using e.g.
sudo port install kf5-parts
or
sudo port install kate
 
The patched Qt itself is available as
sudo port install qt5-kde
 
== Installation using stock version of Qt and Craft ==
 
=== Install required tools and libraries ===
Required tools and libraries can be installed using ''either'' Homebrew or Macports, as described below.
Required tools and libraries can be installed using ''either'' Homebrew or Macports, as described below.


In ''both'' cases, you will need to download and install [https://developer.apple.com/xcode/ XCode], first.
In ''both'' cases, you will need to download and install [https://developer.apple.com/xcode/ XCode], first.


=== Homebrew (plus official Qt installer) ===
==== Homebrew (plus official Qt installer) ====
* Install Qt (use the official Qt installer, recommended version Qt >= 5.6)
* Install Qt (use the official Qt installer, recommended version Qt >= 5.6)
* Install homebrew and get some basic dependencies (http://brew.sh/)
* Install homebrew and get some basic dependencies (http://brew.sh/)
Line 18: Line 50:
  export PATH=/Users/cullmann/Qt5.7.0/5.7/clang_64/bin:/usr/local/Cellar/gettext/0.19.7/bin:$PATH
  export PATH=/Users/cullmann/Qt5.7.0/5.7/clang_64/bin:/usr/local/Cellar/gettext/0.19.7/bin:$PATH


=== Macports (including Qt) ===
==== Macports (including Qt) ====
* [https://guide.macports.org/#installing.macports Install Macports]
* [https://guide.macports.org/#installing.macports Install Macports]
* Install basic dependencies and tools:
* Install basic dependencies and tools:
Line 25: Line 57:
  export PATH=/opt/local/libexec/gnubin/:$PATH
  export PATH=/opt/local/libexec/gnubin/:$PATH


== Install Craft ==
=== Install Craft ===
  # Prepare some build directory in your home directory, here we assume:
  # Prepare some build directory in your home directory, here we assume:
  mkdir ~/kf
  mkdir ~/kf
Line 36: Line 68:
  cp craft/kdesettings.mac etc/kdesettings.ini
  cp craft/kdesettings.mac etc/kdesettings.ini


== Using craft ==
=== Using craft ===
* Every time you want to use craft in a new shell, you need to set up the craft environment, first:
* Every time you want to use craft in a new shell, you need to set up the craft environment, first:
  . craft/kdeenv.sh
  . craft/kdeenv.sh
Line 43: Line 75:
  craft kate
  craft kate


== Deploying applications ==
=== Deploying applications ===
* To create a app bundle (+ dmg file), you need to have the breeze-icons around:
* To create a app bundle (+ dmg file), you need to have the breeze-icons around:
  craft breeze-icons
  craft breeze-icons

Revision as of 10:11, 7 June 2017

Overview

Several methods of building KDE / KF5 on Mac are available, and it is not firmly established, yet, which one is "best". The two main approaches are using either a "stock" version of Qt, or a "patched" Qt. The reason for patching being that KF5-applications will not be able to locate their resources (and particularly theme icons) out of the box with current stock versions of Qt.

There is some hope that the required patches will eventually become available in official Qt packages, but this is not the case as of this writing. The main drawback with this is that Qt has to be compiled on your computer, adding hours to your setup time. The main advantage is that most things can be expected to work out of the box.

Installation using patched version of Qt and MacPorts

  • Install Macports
    • Since the patched version of Qt is not co-installable with a regular version of Qt (in the same prefix), you may want to install MacPorts to a non-default path, e.g. /opt/kf5, esp. if you are using other Qt packages in MacPorts.
  • Install git, if you don't have it yet:
sudo port install git 
  • Get the ports tree for patched qt and frameworks:
# We assume you're doing this in your home directory
cd ~
git clone https://github.com/mkae/macstrop.git
# create index
cd macstrop
portindex
  • Register the new ports with Macports. To do so, edit ${prefix}/etc/macports/sources.conf, where prefix is the root path of your MacPorts installation (/opt/local by default). Add the following line:
file:///Users/YourUserName/macstrop

You can now start building frameworks or applications (if already packaged), using e.g.

sudo port install kf5-parts

or

sudo port install kate

The patched Qt itself is available as

sudo port install qt5-kde

Installation using stock version of Qt and Craft

Install required tools and libraries

Required tools and libraries can be installed using either Homebrew or Macports, as described below.

In both cases, you will need to download and install XCode, first.

Homebrew (plus official Qt installer)

  • Install Qt (use the official Qt installer, recommended version Qt >= 5.6)
  • Install homebrew and get some basic dependencies (http://brew.sh/)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install cmake wget coreutils p7zip gettext ninja python3 bison boost shared-mime-info
  • Optional: You might need some extra environment variables
export CMAKE_LIBRARY_PATH=/usr/local/Cellar/gettext/0.19.8.1/lib
export CMAKE_INCLUDE_PATH=/usr/local/Cellar/gettext/0.19.8.1/include
export PATH=/usr/local/Cellar/bison/3.0.4/bin:$PATH
 
# Setup environment (path must contain your Qt install, here 5.7 default location and brew's gettext)
export PATH=/Users/cullmann/Qt5.7.0/5.7/clang_64/bin:/usr/local/Cellar/gettext/0.19.7/bin:$PATH

Macports (including Qt)

sudo port install git qt56 cmake wget coreutils p7zip gettext ninja python36 bison boost shared-mime-info p5-any-uri-escape
  • Add GNU coreutils to your system path:
export PATH=/opt/local/libexec/gnubin/:$PATH

Install Craft

# Prepare some build directory in your home directory, here we assume:
mkdir ~/kf
# Switch to this build dir
cd ~/kf
# Get Craft
git clone git://anongit.kde.org/craft.git
# Copy Mac OS X config template to right location, should be OK to use out of the box
mkdir etc
cp craft/kdesettings.mac etc/kdesettings.ini

Using craft

  • Every time you want to use craft in a new shell, you need to set up the craft environment, first:
. craft/kdeenv.sh
  • In this shell, now craft is usable, e.g. to build Kate with all dependencies:
craft kate

Deploying applications

  • To create a app bundle (+ dmg file), you need to have the breeze-icons around:
craft breeze-icons
  • To do deploy all things, unfortunately at the moment you need a patched macdeployqt. Example scripty for kate can be found on kate.git/mac/emerge-deploy.sh
    • If you installed qt using Macports, your copy of macdeployqt should be patched, already. It will not be in your system path by default, however. Find it at /opt/local/libexec/qt5 .