MacOS: Difference between revisions
Line 47: | Line 47: | ||
</pre> | </pre> | ||
=== Distribution Bundle Framework Library Versions in 5. | === Distribution Bundle Framework Library Versions in 5.5-dev === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! package | ! package | ||
! 5. | ! 5.5 version | ||
! status | ! status | ||
! 5. | ! 5.6 version | ||
! status | |||
! 5.6-dev version | |||
! status | ! status | ||
|- | |- | ||
|gtk+ | |gtk+ | ||
|3.22.26-168-g63f534f4b3 on branch gtk-3-22 | | 3.22.26-168-g63f534f4b3 | ||
| on branch gtk-3-22 | |||
| 3.22.30 | |||
| prev. 3.24.0 | |||
| 3.24.8 | |||
| | | | ||
|- | |- | ||
|gtkmacintegration-gtk3 | |gtkmacintegration-gtk3 | ||
|2.0.8 | | 2.0.8 | ||
| | | | ||
| | | | ||
| | | | ||
| 2.1.3-6-g3e1d4a3 | |||
| | | | ||
|- | |- | ||
Line 76: | Line 78: | ||
|2.36.11 | |2.36.11 | ||
| | | | ||
| | |||
| | |||
|2.38.0-115-g0b959ad2e | |||
| | | | ||
|- | |- | ||
Line 82: | Line 87: | ||
|PATCHED[https://github.com/Beep6581/RawTherapee/issues/3882#issuecomment-311703141] | |PATCHED[https://github.com/Beep6581/RawTherapee/issues/3882#issuecomment-311703141] | ||
| | | | ||
| | |||
| 1.17.2 | |||
| patch applies | |||
|- | |- | ||
|cairomm | |cairomm | ||
| 1.12.2 | | 1.12.2 | ||
| | | | ||
| | |||
| | |||
| cairomm-1-14 | |||
| | | | ||
|- | |- | ||
Line 91: | Line 102: | ||
| 1.14.10 | | 1.14.10 | ||
| | | | ||
| | |||
| | |||
| 1.17.2 | |||
| | | | ||
|- | |- | ||
Line 97: | Line 111: | ||
| | | | ||
| 1.42.4 | | 1.42.4 | ||
| | | | ||
| 1.43.0 | |||
| | | | ||
|- | |- | ||
| | |pangomm | ||
| | | 2.40.1 | ||
| | | | ||
| | | | ||
| | | | ||
| 2.42.0 | |||
| | | | ||
|- | |- | ||
Line 117: | Line 127: | ||
| | | | ||
| | | | ||
| | | | ||
| 3.24.1 | |||
| | | | ||
|- | |- | ||
Line 127: | Line 135: | ||
| | | | ||
| | | | ||
| | |||
| ATK_2_31_92-5-ga2bff76 | |||
| master | |||
|- | |- | ||
|atkmm | |atkmm | ||
| 2.24.2 | | 2.24.2 | ||
| | |||
| | |||
| | |||
| | | | ||
| | | | ||
Line 136: | Line 150: | ||
| 2.54.2 | | 2.54.2 | ||
| | | | ||
| | |||
| | |||
| 2.59.3 | |||
| | | | ||
|- | |- | ||
|glibmm/giomm | |glibmm/giomm | ||
| 2.54.1-15-ge9330a8e | | 2.54.1-15-ge9330a8e | ||
| On branch glibmm-2-54 | | On branch `glibmm-2-54` | ||
| | | | ||
| | | | ||
| 2.56.1 | |||
| | | | ||
|- | |- | ||
| | |libsigc++-2.0 | ||
| 2. | | 2.10.0 | ||
| | | | ||
| | | | ||
| | | | ||
| 2.10.1 | |||
| | | | ||
|- | |- | ||
| | |TIFF | ||
| | | 4.0.9 | ||
| | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
Line 171: | Line 182: | ||
| 0.34.0 | | 0.34.0 | ||
| | | | ||
| | |||
| | |||
| `pixman-0.38.4` | |||
| | | | ||
|- | |- | ||
|PNG | |PNG | ||
| 1.6.33 | | `1.6.33` | ||
| | | | ||
| | |||
| | |||
| `1.6.37` | |||
| | | | ||
|- | |- | ||
|expat | |expat | ||
| 2.2.4 | | `2.2.4` | ||
| | |||
| | | | ||
| | | | ||
| R_2_2_6-61-g5e2859f | |||
| `master` | |||
|- | |- | ||
|lcms2 | |lcms2 | ||
| 2.8 | | `2.8` | ||
| | |||
| | | | ||
| | | | ||
| lcms2.9rc1-45-g65c63bf | |||
| `master` | |||
|- | |- | ||
|JPEG | |JPEG | ||
| 9b | | `9b` | ||
| | |||
| | | | ||
| | | | ||
| `8.4.0-4-g6c0fcb8` | |||
| master | |||
|- | |- | ||
|harfbuzz | |harfbuzz | ||
| 1.4.7 | | 1.4.7 | ||
| | | | ||
| | |||
| | |||
| 2.4.0-3-gb292772e | |||
| | | | ||
|- | |- | ||
Line 201: | Line 230: | ||
| 1.4.3 | | 1.4.3 | ||
| | | | ||
| | |||
| | |||
| 1.5.3-4-gd536f78 | |||
| | | | ||
|- | |- | ||
Line 207: | Line 239: | ||
| | | | ||
| | | | ||
| | |||
| 8.4.2 | |||
| master | |||
|- | |- | ||
|lensfun | |lensfun | ||
Line 212: | Line 247: | ||
| | | | ||
| | | | ||
| | |||
| v0.3.95-221-g8de8fbb7 | |||
| master | |||
|- | |- | ||
|libiconv2 | |libiconv2 | ||
| 1.15 | | 1.15 | ||
| [[#libiconv_patch|PATCHED]] | | [[#libiconv_patch|PATCHED]] | ||
| | |||
| | |||
| | |||
| | | | ||
|- | |- | ||
|iptcdata | |iptcdata | ||
| 1.0.4 | | 1.0.4 | ||
| | |||
| | |||
| | |||
| | | | ||
| | | | ||
Line 227: | Line 271: | ||
| | | | ||
| | | | ||
| | |||
| 2.13.1-81-gfd2e155 | |||
| master | |||
|- | |- | ||
|freetype2 | |freetype2 | ||
Line 232: | Line 279: | ||
| | | | ||
| | | | ||
| | |||
| VER-2-10-0-15-gd74106e23 | |||
| master | |||
|- | |- | ||
|libz | |libz | ||
| 1.2.11 | | 1.2.11 | ||
| | | | ||
| | |||
| | |||
| system libz | |||
| | | | ||
|- | |- | ||
|graphite2 | |graphite2 | ||
| 3.0.1 | | 1.3.0.1 | ||
| | |||
| | | | ||
| | |||
| 1.3.13 | |||
| | | | ||
|- | |- | ||
|fftw | |fftw | ||
| 3.3.7 | | 3.3.7 | ||
| | |||
| | |||
| | |||
| | | | ||
| | | | ||
Line 251: | Line 310: | ||
| 3.2.1 | | 3.2.1 | ||
| | | | ||
| | |||
| | |||
| v3.3-rc0-36-gd1e9b4b | |||
| | | | ||
|- | |- | ||
Line 256: | Line 318: | ||
| 20160808_oss[https://github.com/Beep6581/RawTherapee/issues/3971#issuecomment-315643878] | | 20160808_oss[https://github.com/Beep6581/RawTherapee/issues/3971#issuecomment-315643878] | ||
| REPLACES libomp from clang [https://github.com/Beep6581/RawTherapee/issues/3971] | | REPLACES libomp from clang [https://github.com/Beep6581/RawTherapee/issues/3971] | ||
| | |||
| | |||
| | |||
| | | | ||
|} | |} |
Revision as of 06:40, 24 April 2019
This page details instructions for compiling RawTherapee on macOS systems. There are also separate pages with instructions for compiling on Linux and Windows. This guide details the what and how parts of compilation. For the why and explanations of these commands, for a list of dependencies, CMake options and other information, please refer to the detailed Linux article.
When in doubt, join us on IRC and ask a human!
For instructions on cloning the source, choosing branches, configuring CMake and doing the actual compilation, see these sections in the Linux guide. The information below is in addition to that.
Dependencies
See the list of dependencies in the Compiling in Linux article.
MacPorts
Tested on OS X 10.9 and newer.
- Prerequisites:
- Apple's Xcode Developer Tools
- Apple's Command Line Tools
- MacPorts
- Detailed instructions on setting up MacPorts and the developer tools are available on the MacPorts website.
- The native system compiler provided by Apple is badly outdated and does not support OpenMP. Don't use it. Use the latest stable compiler from MacPorts - RawTherapee will run faster.
- Configure MacPorts:
- Add the following line to /opt/local/etc/macports/variants.conf
+quartz -x11 -gnome
- Dependencies:
- To install the dependencies, run from the terminal:
sudo port install git clang-3.9 gtk3 gtkmm3 gtk-osx-application-gtk3 adwaita-icon-theme libsigcxx2 lcms2 libiptcdata fftw-3-single lensfun
- If compiling on Xcode 9.2 you will also need to do:
sudo port instal ld64 +ld64_xcode
libiconv patch
libiconv.2.dylib must be patched, otherwise RawTherapee will crash on startup. The patch is available in `tools/osx/libiconv_1.15_rt.patch`
libiconv patching and compilation instructions:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz tar xf libiconv-1.15.tar.gz cd libiconv-1.15 wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/osx/libiconv_1.15_rt.patch patch -p1 < libiconv_1.15_rt.patch mkdir build cd build buildDir="$(pwd)" ../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9" make make DESTDIR="$buildDir" install cd /opt/local/lib sudo cp ./libiconv.2.dylib ./libiconv.2.dylib.backup # backup MacPorts dylib sudo cp "${buildDir}/opt/local/lib/libiconv.2.dylib" /opt/local/lib/libiconv.2.dylib
Distribution Bundle Framework Library Versions in 5.5-dev
package | 5.5 version | status | 5.6 version | status | 5.6-dev version | status |
---|---|---|---|---|---|---|
gtk+ | 3.22.26-168-g63f534f4b3 | on branch gtk-3-22 | 3.22.30 | prev. 3.24.0 | 3.24.8 | |
gtkmacintegration-gtk3 | 2.0.8 | 2.1.3-6-g3e1d4a3 | ||||
gdk-pixbuf | 2.36.11 | 2.38.0-115-g0b959ad2e | ||||
cairo | 1.14.8 | PATCHED[1] | 1.17.2 | patch applies | ||
cairomm | 1.12.2 | cairomm-1-14 | ||||
cairo-gobject | 1.14.10 | 1.17.2 | ||||
pango | 1.40.12 | 1.42.4 | 1.43.0 | |||
pangomm | 2.40.1 | 2.42.0 | ||||
gtkmm | 3.22.2 | 3.24.1 | ||||
atk | 2.26.1 | ATK_2_31_92-5-ga2bff76 | master | |||
atkmm | 2.24.2 | |||||
glib/gio | 2.54.2 | 2.59.3 | ||||
glibmm/giomm | 2.54.1-15-ge9330a8e | On branch `glibmm-2-54` | 2.56.1 | |||
libsigc++-2.0 | 2.10.0 | 2.10.1 | ||||
TIFF | 4.0.9 | |||||
pixman | 0.34.0 | `pixman-0.38.4` | ||||
PNG | `1.6.33` | `1.6.37` | ||||
expat | `2.2.4` | R_2_2_6-61-g5e2859f | `master` | |||
lcms2 | `2.8` | lcms2.9rc1-45-g65c63bf | `master` | |||
JPEG | `9b` | `8.4.0-4-g6c0fcb8` | master | |||
harfbuzz | 1.4.7 | 2.4.0-3-gb292772e | ||||
epoxy | 1.4.3 | 1.5.3-4-gd536f78 | ||||
pcre | 8.4.1 | 8.4.2 | master | |||
lensfun | 0.3.2.0 | v0.3.95-221-g8de8fbb7 | master | |||
libiconv2 | 1.15 | PATCHED | ||||
iptcdata | 1.0.4 | |||||
fontconfig | 2.12.4 | 2.13.1-81-gfd2e155 | master | |||
freetype2 | 20.0.14 | VER-2-10-0-15-gd74106e23 | master | |||
libz | 1.2.11 | system libz | ||||
graphite2 | 1.3.0.1 | 1.3.13 | ||||
fftw | 3.3.7 | |||||
libffi | 3.2.1 | v3.3-rc0-36-gd1e9b4b | ||||
libiomp5 | 20160808_oss[2] | REPLACES libomp from clang [3] |
Compiling
See the Compiling in Linux article for instructions on how to clone the source code, choose a branch and how to configure CMake. Ignore the "Now you are ready to compile" code on that page and follow the code on this page.
If you want to upload a build or otherwise share it with others, you must use
-DPROC_TARGET_NUMBER="1"
and set the processor label manually by setting
-DPROC_LABEL="generic processor"
If you want to compile for yourself only, then use
-DPROC_TARGET_NUMBER="2"
and then the processor label would be irrelevant, you could skip it.
If you wish to codesign your build, add your details to the CMake command:
-DCODESIGNID:STRING="Developer ID Application: Firstname Lastname (XXXXXXXXXX)"
The app and the generated dmg
will be codesigned.
Compile RawTherapee
Now you are ready to compile:
cd ~/repo-rt rm -rf build mkdir build && cd build cmake -DCMAKE_BUILD_TYPE="release" \ -DPROC_TARGET_NUMBER="1" \ -DPROC_LABEL="generic processor" \ -DCACHE_NAME_SUFFIX="5-dev" \ -DCMAKE_C_COMPILER="clang-mp-3.9" \ -DCMAKE_CXX_COMPILER="clang++-mp-3.9" \ -DWITH_LTO="OFF" \ -DLENSFUNDBDIR="./share/lensfun" \ .. make -j4 install make macosx_bundle
From-Scratch Method
- This [4] complete list of commands may optionally be used to perform a from-scratch build of RawTherapee and its dependencies on macOS 10.14.2 / Xcode 10.1.
- A JDK[5] must be installed.
- Xcode 10.1 [6] must be installed
You will find a disk image in the build directory; this is the distribution release and can be run on any machine which meets the architecture requirements you specified in variants.conf earlier.
To provide the RawTherapee project with your build, please zip the .dmg and AboutThisBuild.txt files together. Name the zip file according to this template:
- RawTherapee_OSX_<minimum supported macOS version>_64_<RawTherapee version>.zip
for example if your build is made for macOS 10.12 and the version of RawTherapee is 5.2-dev-g1a2b3c4d, name it:
- RawTherapee_OSX_10.12_64_5.2-dev-g1a2b3c4d.zip
Upload the zip archive to http://filebin.net/ and open a new issue on our GitHub page with the link so that we can upload it to the website.