Revision of COMPILE.txt. Issue 1431

This commit is contained in:
DrSlony
2012-06-21 00:12:06 +01:00
parent 3cbe18cee9
commit a9c9939a78

View File

@@ -1,144 +1,175 @@
If you have problems with the compilation, please ask on the appropriated RawTherapee forum : If you have problems with the compilation, please ask on the appropriate
http://www.rawtherapee.com/forum/viewforum.php?f=10 RawTherapee forum : http://www.rawtherapee.com/forum/viewforum.php?f=10
Preamble Preamble
-------- --------
Cmake is actually used to create the Makefiles (scripts that handle the build process) or specific Integrated Developement Environement (IDE) projects. CMake is actually used to create the makefiles (scripts that handle the build
It is designed to find all necessary compilation flags for your specific machine, but everything can be overriden. process) or specific Integrated Developement Environement (IDE) projects. It
is designed to find all necessary compilation flags for your specific machine,
but everything can be overriden.
RT's build mechanism will generate a build information file, named "AboutThisBuild.txt", and require some parameters that can't be set by Cmake, so it's RawTherapee's build mechanism will generate a build information file, named
done in our build script, and may be overridden at your own will. The build process also enable some sort of cross compiling, since you can only choose "AboutThisBuild.txt", and require some parameters that can't be set by CMake,
a specific processor variation of the same type (e.g. core2, athlon64, which are both an x86 architecture). Real cross compiling (e.g. building the windows so it's done in our build script, and may be overridden at your own will. The
version on a linux platform) has not been tested. build process also enables some sort of cross-compiling, since you can only
choose a specific processor variation of the same type (e.g. core2, athlon64,
which are both an x86 architecture). Real cross-compiling (e.g. building the
Windows version on a Linux platform) has not been tested.
By default, no processor is specified, so Cmake/GCC will build RT for your processor (or maybe a generic processor). Developers that are providing build to By default, no processor is specified, so CMake/GCC will build RT for your
download then have to set the processor label manually (set to 'undefined' by default) with the PROC_LABEL cmake's parameter (we assume that you know machine's processor. You can specify that the build is to be made for a
how to specify a cmake parameter). generic processor by using the -DPROC_TARGET_NUMBER="1" CMake option.
Developers who are providing builds for download from the RawTherapee website
have to set the processor label (a human-readable description of the
processor, set to "undefined" by default) manually with the -DPROC_LABEL="foo"
CMake parameter.
Note for developers that handle an automated build system: Note for developers that handle an automated build system: Mercurial is
Mercurial is required in order to produce the build information file, but you required in order to produce the build information file, but your build system
build system will certainly only use the source code without any access to a will certainly only use the source code without any access to a Mercurial
Mercurial repository. To generate the neede information (they are stored in repository. To generate the needed information, run the sript
ReleaseInfo.cmake) just run the sript tools/generateReleaseInfo. It will generate ./tools/generateReleaseInfo. After that you can delete .hg* and continue with
all information needed. After that you can delete .hg/ (and .hg*) and continue the normal compile instructions without the need for mercurial.
with the normal compile instructions without the need of mercurial installed.
In short:
1. check out the desired hg tag
2. run tools/generateReleaseInfo (to generate ReleaseInfo.cmake)
3. delete the mercurial stuff (.hg*)
4. use it for your build system
In short, once you cd into your clone of the RawTherapee source code
repository:
1. Check out the desired hg tag: hg update "4.0.10"
2. Run tools/generateReleaseInfo to generate ReleaseInfo.cmake:
./tools/generateReleaseInfo
3. Delete the mercurial stuff: rm -rvf .hg*
4. The repository is now ready to be made into a public tarball: hg archive
"rawtherapee-4.0.10.tar" -X ".hg*" && xz -z -9e -T 8 "rawtherapee-4.0.10.tar"
Windows Windows
------- -------
The toolchain: The toolchain:
There is 2 method to compile RawTherapee, and they each rely on different and common packages. They are There are two methods of compiling RawTherapee in Windows, and they each
now referred to METHOD 1 and METHOD 2. rely on different and common packages. They will be referred to as METHOD 1
Of course, you'll have to install the package for the build method explained later in this document. and METHOD 2. You will have to install the dependencies for the build
methods explained later in this document.
The rest of this document assumes that you've installed MinGW, MSYS and Gtkmm respectively to "C:\mingw", The rest of this document assumes that you've installed MinGW, MSYS and
"C:\msys" and "C:\gtkmm". gtkmm respectively to "C:\mingw", "C:\msys" and "C:\gtkmm". This tutorial
This tutorial assume that you've installed the packages in paths THAT DOES NOT CONTAIN SPACES. assume that you've installed the packages in paths that DO NOT CONTAIN
SPACES.
METHOD 1: METHOD 1
- MinGW64-TDM (Bundle or On-Demand installer from http://tdm-gcc.tdragon.net/download) - MinGW64-TDM (Bundle or On-Demand installer from
Make sure you use the current 4.5.2 or better, and install MinGW64 (not MinGW32) http://tdm-gcc.tdragon.net/download) Make sure you use the current 4.6.1
MinGW64 is more comprehensive, plus it runs AND compiles both 32bit and 64bit Windows. or newer stable version, and install MinGW64 (not MinGW32), as MinGW64
Old Mingw32 version miss some required header files, so some Windows functions will be disabled though it will compile. is more comprehensive plus it runs AND compiles for both 32bit and 64bit
However MinGW64 does not fully support XP, only Vista and up. Windows machines. Old Mingw32 versions miss some required header files,
- MSYS (http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe) so some Windows functions will be disabled though it will compile.
If you have some trouble installing MSYS, see here : http://www.mingw.org/wiki/MSYS However MinGW64 does not fully support Windows XP, only Vista and up.
- CMake (http://www.cmake.org/cmake/resources/software.html) - MSYS - http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe If you
Version 2.8.4 or above is required for this platform have some trouble installing MSYS, see here:
- Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ http://www.mingw.org/wiki/MSYS
for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) - CMake - http://www.cmake.org/cmake/resources/software.html Version 2.8.8
or above is required for this platform
- Gtkmm2.22
- for 32bit:
http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
- for 64bit:
http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/
METHOD 2: METHOD 2
- MinGW-TDM (Bundle or On-Demand insteller from http://tdm-gcc.tdragon.net/download) - MinGW-TDM - Bundle or On-Demand installer
- CMake (http://www.cmake.org/cmake/resources/software.html) http://tdm-gcc.tdragon.net/download
- Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ - CMake - http://www.cmake.org/cmake/resources/software.html
for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) - gtkmm-2.22
- for 32bit:
http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
- for 64bit:
http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/
Additionnal steps: Additional steps:
When all the packages of your preferred method are installed: When all the packages of your preferred method are installed:
- set the GTKMM_BASEPATH user or system environment variable to the installation directory of Gtkmm - set the GTKMM_BASEPATH user or system environment variable to the
(the Gtkmm's installer can do it for you) installation directory of gtkmm (the gtkmm installer can do it for you).
- set the MINGW_BASEPATH user or system environment variable to the installation directory of MinGW32 - set the MINGW_BASEPATH user or system environment variable to the
- set the PKG_CONFIG_PATH user or system environment variable to the location of the pkgconfig directories: installation directory of MinGW32.
c:\mingw\lib\pkgconfig;c:\gtkmm\lib\pkgconfig - set the PKG_CONFIG_PATH user or system environment variable to the
You have to restart the console to take this new variables into account location of the pkgconfig directories:
- On Windows, set Cmake option BUILD_BUNDLE ON c:\mingw\lib\pkgconfig;c:\gtkmm\lib\pkgconfig You have to restart the
- If you run MinGW64 and want to compile for 32bit, change the following vars in CMAKE (use CMAKE-GUI to makes this easier): console to take these new variables into effect.
- set the CMake option BUILD_BUNDLE ON
- If you run MinGW64 and want to compile for 32bit, change the following
vars in CMake (use CMAKE-GUI to makes this easier):
CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32 CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32
CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware
CMAKE_RC_FLAGS: -F pe-i386 CMAKE_RC_FLAGS: -F pe-i386
- Copy the "Win32CMakeOptions-sample.txt" file located in the root directory of RT's source tree, to "cmo.txt" (e.g.) - Copy the "Win32CMakeOptions-sample.txt" file located in the root
You can edit that copy to change the compilation flags to your needs, but the default values should be fine. directory of RT's source tree, to "cmo.txt" (for example). You can edit
However, if you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: that copy to change the compilation flags to your needs, but the default
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is set the PROC_TARGET_NUMBER parameter in cmo.txt values should be fine. However, if you want to upload a build, you
to the right target number. should set some additional information about your processor. There are
If you choose the 'native' solution, you have to set the processor label manually in cmo.txt, by uncommenting and set the PROC_LABEL two possibilities:
parameter. Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. 1. You pick up a target processor from "ProcessorTargets.cmake". All you
2. You don't need specific processor flags, so you'll let PROC_TARGET_NUMBER set to 0, but you have to set the PROC_LABEL parameter have to do is set the PROC_TARGET_NUMBER parameter in cmo.txt to the
in cmo.txt (don't forget to uncomment the line). Please provide a short name, like "core i5" or "athlon64" (without double quote)... desired target number. If you choose the 'native' solution, you have
specifying the processor frequency in it is useless. to set the processor label manually in cmo.txt by uncommenting and
setting the PROC_LABEL parameter. Please provide a short name, like
"core i5" or "athlon64" (without double quotes). Processor frequency
is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you have to set the PROC_LABEL
parameter in cmo.txt (don't forget to uncomment the line). Please
provide a short name, like "core i5" or "athlon64" (without double
quotes). Specifying the processor frequency isof no use.
Dependancies: Dependancies:
RawTherapee rely on libraries that may not be part of the Gtkmm or MinGW package. There is two ways of installing RawTherapee relies on libraries that may not be part of the gtkmm or MinGW
thoses libraries. packages. There are two ways of installing these libraries.
The simple way: The simple way:
For your convenience, these libraries has been precompiled and are
For your convenience, those libraries has been precompiled and are downloadable at : downloadable at:
http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/ http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/
If you don't find a suitable package for your toolchain, take the DIY way
If you don't find a suitable package for your toolchain, take the DIY way or ask a developer or ask a developer to build them for you. Unpack the contents of this
to build them for you. archive to the base installation dir of MinGW, and everything should work
fine.
Just unpack the content of this archive to the base installation dir of MinGW, and everything
should work fine.
The "Do It Yourself" way: The "Do It Yourself" way:
The MSYS package is required to build the libraries. See above for the
download link. Before building them, check if they are already installed
in your gtkmm and MinGW directories. There shouldn't be two versions of
the same library in different places.
The MSYS package is required to build the libraries. See above for the download link. Open an MSYS console, that will create a Linux environment, and compile
the dependancies in the following order:
Before building them, look if they are already installed in your Gtkmm and MinGW directories. There shouldn't be
two versions of the same library in different place.
Open an MSYS console, that will create a Linux environment, and compile the dependancies in that order:
zlib: zlib:
If you have Gtkmm2.22 installed, you should skip this section If you have Gtkmm-2.22 installed, you should skip this zlib section.
- download: http://zlib.net/ - Download: http://zlib.net/
- how to build: - How to build:
cd to the unarchiving directory of zlib-1.2.5 cd to the directory you unpacked zlib-1.2.5 to,
make -f win32/Makefile.gcc make -f win32/Makefile.gcc
Then, manually copy the files as follows (tip: you can individually copy the lines below and paste them in MSys's prompt with the middle mouse button): Then, manually copy the files as follows (tip: you can individually
copy the lines below and paste them in MSYS' prompt with the middle
mouse button):
cp -iv zlib1.dll /mingw/bin cp -iv zlib1.dll /mingw/bin
cp -iv zconf.h zlib.h /mingw/include cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib cp -iv libz.a /mingw/lib
cp -iv libzdll.a /mingw/lib/libz.dll.a cp -iv libzdll.a /mingw/lib/libz.dll.a
libpng: libpng:
If you have Gtkmm2.22 installed, you should skip this section If you have gtkmm-2.22 installed, you should skip this libpng section.
- download: http://sourceforge.net/projects/libpng/files/ - Download: http://sourceforge.net/projects/libpng/files/
(please note that libpng 1.5 has not been tested yet) - How to build:
- how to build: cd to the directory you unpacked lpng144 to.
cd to the unarchiving directory of lpng144 There are two methods of building libpng:
1. gtkmm doesn't provide zlib so compile it yourself:
There are two options to build libpng:
1. gtkmm doesn't provide zlib so i've compiled it myself
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_BUILD_TYPE:STRING=Release cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_BUILD_TYPE:STRING=Release
2. gtkmm provide zlib and i want to reuse it (so we're assuming that you didn't compiled zlib like explained here above) 2. gtkmm provides zlib so you can reuse it (assuming that you
hadn't compiled zlib as explained above):
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_PREFIX_PATH:PATH=C:/gtkmm -DCMAKE_BUILD_TYPE:STRING=Release cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_PREFIX_PATH:PATH=C:/gtkmm -DCMAKE_BUILD_TYPE:STRING=Release
Then build and install: Then build and install:
@@ -146,54 +177,56 @@ Windows
make install make install
libjpeg: libjpeg:
- download: http://www.ijg.org/ - Download: http://www.ijg.org/
- how to build: - How to build:
cd to the unarchiving directory of jpeg-8b cd to the directory you unpacked jpeg-8b to.
./configure --prefix=/mingw ./configure --prefix=/mingw
copy the content of jconfig.txt to jconfig.h (overwrite the existing file) Copy jconfig.txt to jconfig.h (overwrite the existing file).
make make
make install make install
libtiff: libtiff:
- download: ftp://ftp.remotesensing.org/pub/libtiff/ - Download: ftp://ftp.remotesensing.org/pub/libtiff/
- how to build: - How to build:
In the configure process below, set the zlib include and lib path
In the configure process below, set the zlib include and lib path to the right folder. We're assuming that you're using to the right folder. We're assuming that you're using the one
the one provided in the gtkmm bundle provided in the gtkmm bundle.
./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib ./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib
make make
cd libtiff cd libtiff
make install make install
libiptcdata: libiptcdata:
- download: http://libiptcdata.sourceforge.net/ - Download: http://libiptcdata.sourceforge.net/
- how to build: - How to build:
./configure --prefix=/mingw ./configure --prefix=/mingw
Edit the "Makefile" file from the root dir of libiptcdata, and search for "DIST_SUBDIRS =" Edit the "Makefile" file from the root dir of libiptcdata and
and "SUBDIRS =". You should only find one line for each search. From those lines, remove "iptc", then search for "DIST_SUBDIRS =" and "SUBDIRS =". You should only find
one line for each search. From these lines, remove "iptc", then:
make make
make install make install
lcms: lcms:
- download lcm v1.x for RT3.0, v2.x for RT3.1 and upper: http://sourceforge.net/projects/lcms/files/ - Download lcms1 for RawTherapee-3.0 or lcms2 for RawTherapee-3.1 and
- how to build (suitable for both version): newer http://sourceforge.net/projects/lcms/files/
- How to build (suitable for both version):
./configure --prefix=/mingw ./configure --prefix=/mingw
make make
make install make install
IMPORTANT: IMPORTANT:
Make sure that the lcms.pc and libiptcdata.pc files located in the pkgconfig dir has the first Make sure that the lcms.pc and libiptcdata.pc files located in the
line like this : prefix=/mingw pkgconfig dir have the first line like this:
prefix=/mingw
If everything is well installed, you should see the following lines when running the cmake command (see "Building RT" below) : If everything has been installed correctly, you should see the following
lines when running the cmake command (see "Building RT" below):
-- checking for module 'libiptcdata' -- checking for module 'libiptcdata'
-- found libiptcdata, version 1.0.4 -- found libiptcdata, version 1.0.4
-- checking for module 'lcms<=1.99' -- checking for module 'lcms2'
-- found lcms, version 1.19 -- found lcms2, version 2.3
-- Found JPEG: C:/mingw/lib/libjpeg.dll.a -- Found JPEG: C:/mingw/lib/libjpeg.dll.a
-- Found ZLIB: C:/gtkmm/lib/libz.dll.a -- Found ZLIB: C:/gtkmm/lib/libz.dll.a
-- Found PNG: C:/gtkmm/lib/libpng.lib -- Found PNG: C:/gtkmm/lib/libpng.lib
@@ -205,113 +238,174 @@ Windows
Requirements: Requirements:
- MinGW + MSYS - MinGW + MSYS
- CMake - CMake
- GTK and GTKMM development environments - GTK and gtkmm development environments
Compile: Compile:
- Start an MSYS command line interface - Start an MSYS command line interface,
- Enter the root directory of the RawTherapee source tree (type: cd "/C/Absolute/Path/To/RawTherapee_sourceTree") - Enter the root directory of the RawTherapee source tree:
- Type: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -Ccmo.txt . cd /C/Absolute/Path/To/RawTherapee_sourceTree
- Type: make install - Type:
- You'll find the compiled program in the subdirectory named like the value of CMAKE_BUILD_TYPE ("Release" in this example) cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -Ccmo.txt .
- Type:
make install
- You'll find the compiled program in the subdirectory named like the
value of CMAKE_BUILD_TYPE ("Release" in this example).
METHOD 2: METHOD 2: Requirements:
Requirements: - MinGW-TDM:
- MinGW-TDM (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download) https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/
- CMake (http://www.cmake.org/cmake/resources/software.html) - CMake: http://www.cmake.org/cmake/resources/software.html
- Mercurial (http://mercurial.selenic.com/wiki/WindowsInstall) - Mercurial: http://mercurial.selenic.com/wiki/WindowsInstall
- Gtkmm (http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/) - gtkmm: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
Compile: Compile:
- Start a standard DOS command line interface (WIN + "R" -> "cmd") - Start a standard DOS command prompt (WIN+R > cmd),
- Enter the root directory of the RawTherapee source tree (type: cd C:\Absolute\Path\To\RawTherapee_sourceTree) - Enter the root directory of the RawTherapee source tree:
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: cd C:\Absolute\Path\To\RawTherapee_sourceTree
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number"
to cmake's command line If you want to upload a build, you should set some additional
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" information about your processor. There are two possibilities:
in cmake's command line 1. You pick up a target processor from "ProcessorTargets.cmake". All
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. you have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) cmake's command line to the desired target number. If you choose
- Type: mingw32-make.exe install the 'native' solution, you have to set the processor label manually
- You'll find the compiled program in the subdirectory named like the value of CMAKE_BUILD_TYPE ("Release" in this example) by setting "-D PROC_LABEL:STRING=procLabel" in cmake's command
line. Please provide a short name, like "core i5" or "athlon64"
(without double quotes). Processor frequency is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you still have to set the
PROC_LABEL parameter (see point 1 righ above).
- Type:
mingw32-make.exe install
- You'll find the compiled program in the subdirectory named like the
value of CMAKE_BUILD_TYPE ("Release" in this example).
Linux Linux
----- -----
Requirements: Requirements:
- CMake
- GTK and GTKMM development packages PACKAGE GENTOO DEBIAN/UBUNTU URL
- libtiff, libpng, libjpeg, lcms, libiptcdata development packages GTK+ gtk+-2.0>=2.12 x11-libs/gtk+ libgtk2.0-dev http://www.gtk.org/
- ...did I forget something? GLIB2 glib-2.0>=2.16 dev-libs/glib libglib2.0-dev http://www.gtk.org/
GLIBMM glibmm-2.4>=2.16 dev-cpp/glibmm libglibmm-2.4-dev http://www.gtkmm.org
GTKMM gtkmm-2.4>=2.12 dev-cpp/gtkmm libgtkmm-2.4-dev http://www.gtkmm.org
SIGC sigc++-2.0 dev-libs/libsigc++ libsigc++-2.0-dev http://libsigc.sourceforge.net/
LIBIPTCDATA libiptcdata>=1.0.2 media-libs/libiptcdata libiptcdata-dev http://libiptcdata.sourceforge.net
LCMS2 lcms>=2.0a media-libs/lcms liblcms2-dev http://www.littlecms.com/
JPEG libjpeg>=6b media-libs/jpeg libjpeg-dev http://jpegclub.org/ http://www.ijg.org/
TIFF libtiff>=3.9.4 media-libs/tiff libtiff-dev http://www.remotesensing.org/libtiff/
PNG libpng>=1.2.44 media-libs/libpng libpng-dev http://www.libpng.org/
BZIP2 bzip2>-1.0.4 app-arch/bzip2 libbz2-dev http://www.bzip.org/
ZLIB zlib>=1.2.3-r1 sys-libs/zlib zlib1g-dev http://www.zlib.net/
EXIV2 exiv2>=0.19 media-gfx/exiv2 libexiv2-dev http://www.exiv2.org/
EXPAT expat>=2.1.0 dev-libs/expat libexpat-dev http://expat.sourceforge.net/
On Ubuntu/Debian the requirements can be installed by running: On Ubuntu/Debian the requirements can be installed by running:
sudo apt-get install build-essential cmake libgtk2.0-dev libgtkmm-2.4-dev libtiff-dev libpng-dev libjpeg-dev liblcms-dev libiptcdata-dev mercurial sudo apt-get install build-essential cmake libbz2-dev libexiv2-dev libexpat1-dev libglib2.0-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev libiptcdata-dev libjpeg8-dev liblcms2-dev libpng-dev libsigc++-2.0-dev libtiff-dev mercurial zlib1g-dev
Compile: Compile:
- Enter the root directory of the RawTherapee source tree - Enter the root directory of the RawTherapee source tree
- Type: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. - Type:
developers that wants to provide a build has to set the PROC_LABEL to their processor name, e.g.: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
Developers who want to provide a public build have to set the PROC_LABEL
to their processor name, e.g.:
cmake -DPROC_LABEL:STRING=athlon64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. cmake -DPROC_LABEL:STRING=athlon64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: make install - Type:
- You find the compiled program in the release directory (you can copy it anywhere you want) make install
- You'll find the compiled program in the subdirectory named like the value
(By changing the cmake flags, you can change where the release is. By removing all flags it should go to the standard system install location). of CMAKE_BUILD_TYPE ("Release" in this example). You can copy it anywhere
you want.
By changing the cmake flags, you can change where the release will compile
to. By removing all flags it should go to the standard system install
location.
Using Eclipse under Linux: Using Eclipse under Linux:
Eclipse mercurial plugin: Eclipse mercurial plugin: Click "Help > Install new Software".
click Help -> Install new Software.
The Eclipse Update Site for MercurialEclipse is available at this URL: The Eclipse Update Site for MercurialEclipse is available at this URL:
http://cbes.javaforge.com/update http://cbes.javaforge.com/update
Import the rawtherapee mercurial repository: Import the rawtherapee mercurial repository:
File->new->'other'->mercurial->Clone existing repository "File > new > other > mercurial > Clone existing repository"
fill in URL: https://rawtherapee.googlecode.com/hg Enter this URL:
https://rawtherapee.googlecode.com/hg
Enter root directory of RawTherapee source tree from a terminal window. Enter the root directory of the RawTherapee source tree from a terminal
configure the source for Eclipse with: window. Configure the source for Eclipse with:
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities:
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number"
to cmake's command line
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel"
in cmake's command line
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use.
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above)
Eclipse does not do 'make install' but only 'make all' so to get the release there are 2 ways. If you want to upload a build, you should set some additional information
about your processor. There are two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you
have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in cmake's
command line to the desired target number. If you choose the 'native'
solution, you have to set the processor label manually by setting "-D
PROC_LABEL:STRING=procLabel" in cmake's command line. Please provide a
short name, like "core i5" or "athlon64" (without double quotes).
Processor frequency is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you still have to set the
PROC_LABEL parameter (see point 1 righ above).
Eclipse does not do 'make install', but only 'make all'.
There are two ways to compile:
1. type 'make install' in the console or, 1. type 'make install' in the console or,
2. in 'Project'->'properties'->'C/C++ Make Project'->'Build (incremental build)' change 'all' to 'install' 2. in "Project > properties > C/C++ Make Project > Build (incremental
build)" change 'all' to 'install'.
OS X OS X
--- ----
Requirements: Requirements:
- XCode Development Tools (you only need a subset of these, but it is probably easier to just install all of them) - XCode Development Tools (you only need a subset of these, but it is
probably easier to just install all of them)
- MacPorts - MacPorts
- Set /opt/local/etc/macports/variants.conf to include "+no_x11 +quartz" - Set /opt/local/etc/macports/variants.conf to include "+no_x11 +quartz"
- If you want to build for multiple architectures, add +universal to variants.conf. Note that this will increase the size of the final application substantially. - If you want to build for multiple architectures, add +universal to
- Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the architectures you wish to build for. Possible values variants.conf. Note that this will increase the size of the final
include "i386 x86_64 ppc ppc64" application substantially.
- Edit beginning of CMakeLists.txt to enable the same architectures as you added to variants.conf - Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the
- Run "sudo port install cairomm pango-devel gtk2 cmake glibmm gtkmm lcms libiptcdata" to install all needed libraries and tools architectures you wish to build for. Possible values include "i386
- If you don't already have Mercurial installed, run "sudo port install mercurial" x86_64 ppc ppc64"
- If you want to try OpenMP builds, run "sudo port install gcc45" - Edit the beginning of CMakeLists.txt to enable the same architectures
as you added to variants.conf
- To install all the tools and dependencies, run:
sudo port install cairomm pango-devel gtk2 cmake glibmm gtkmm lcms libiptcdata
- If you don't already have Mercurial installed, run:
sudo port install mercurial
- If you want to try OpenMP builds, run:
sudo port install gcc45
Compile: Compile:
- Enter root directory of RawTherapee source tree - Enter the root directory of the RawTherapee source tree
- Type: cmake -D CMAKE_C_COMPILER=gcc-mp-4.5 -D CMAKE_CXX_COMPILER=g++-mp-4.5 . (to enable OpenMP, assuming you have installed gcc45) OR: - To enable OpenMP, assuming you have installed gcc45), type:
cmake -D OPTION_OMP=false . (to disable OpenMP and use the default compiler) cmake -D CMAKE_C_COMPILER=gcc-mp-4.5 -D CMAKE_CXX_COMPILER=g++-mp-4.5 .
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: OR to disable OpenMP and use the default compiler, type:
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number" cmake -D OPTION_OMP=false .
to cmake's command line
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" If you want to upload a build, you should set some additional information
in cmake's command line about your processor. There are two possibilities:
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. 1. You pick up a target processor from "ProcessorTargets.cmake". All you
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in cmake's
- Type: make install command line to the desired target number. If you choose the 'native'
- Type: ./tools/osx/make-app-bundle solution, you have to set the processor label manually by setting "-D
- You will find a RawTherapee.dmg file in release/ folder; this is the distribution release and can be run on any machine which meets the PROC_LABEL:STRING=procLabel" in cmake's command line. Please provide a
short name, like "core i5" or "athlon64" (without double quotes).
Processor frequency is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you still have to set the
PROC_LABEL parameter (see point 1 righ above).
- Type:
make install
- Type:
./tools/osx/make-app-bundle
- You will find a RawTherapee.dmg file in the release/ folder; this is the
distribution release and can be run on any machine which meets the
architecture requirements you specified in variants.conf earlier. architecture requirements you specified in variants.conf earlier.
For any bugs or patches to the OSX build, please contact Wyatt <wyatt@digitalcave.ca> Contact: For any bugs or patches to the OS X build, please contact Wyatt
<wyatt@digitalcave.ca>