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,317 +1,411 @@
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.
CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32 - set the CMake option BUILD_BUNDLE ON
CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware - If you run MinGW64 and want to compile for 32bit, change the following
CMAKE_RC_FLAGS: -F pe-i386 vars in CMake (use CMAKE-GUI to makes this easier):
CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32
CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware
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:
RawTherapee rely on libraries that may not be part of the Gtkmm or MinGW package. There is two ways of installing Dependancies:
thoses libraries.
The simple way: RawTherapee relies on libraries that may not be part of the gtkmm or MinGW
packages. There are two ways of installing these libraries.
For your convenience, those libraries has been precompiled and are downloadable at : The simple way:
For your convenience, these libraries has been precompiled and are
downloadable at:
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
or ask a developer to build them for you. Unpack the contents of this
archive to the base installation dir of MinGW, and everything should work
fine.
http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/ 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.
If you don't find a suitable package for your toolchain, take the DIY way or ask a developer Open an MSYS console, that will create a Linux environment, and compile
to build them for you. the dependancies in the following order:
zlib:
If you have Gtkmm-2.22 installed, you should skip this zlib section.
- Download: http://zlib.net/
- How to build:
cd to the directory you unpacked zlib-1.2.5 to,
make -f win32/Makefile.gcc
Just unpack the content of this archive to the base installation dir of MinGW, and everything Then, manually copy the files as follows (tip: you can individually
should work fine. copy the lines below and paste them in MSYS' prompt with the middle
mouse button):
cp -iv zlib1.dll /mingw/bin
cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib
cp -iv libzdll.a /mingw/lib/libz.dll.a
The "Do It Yourself" way: libpng:
If you have gtkmm-2.22 installed, you should skip this libpng section.
- Download: http://sourceforge.net/projects/libpng/files/
- How to build:
cd to the directory you unpacked lpng144 to.
There are two methods of building libpng:
1. gtkmm doesn't provide zlib so compile it yourself:
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_BUILD_TYPE:STRING=Release
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
The MSYS package is required to build the libraries. See above for the download link. Then build and install:
make
make install
Before building them, look if they are already installed in your Gtkmm and MinGW directories. There shouldn't be libjpeg:
two versions of the same library in different place. - Download: http://www.ijg.org/
- How to build:
cd to the directory you unpacked jpeg-8b to.
./configure --prefix=/mingw
Copy jconfig.txt to jconfig.h (overwrite the existing file).
make
make install
Open an MSYS console, that will create a Linux environment, and compile the dependancies in that order: libtiff:
- Download: ftp://ftp.remotesensing.org/pub/libtiff/
- How to build:
In the configure process below, set the zlib include and lib path
to the right folder. We're assuming that you're using the one
provided in the gtkmm bundle.
./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib
make
cd libtiff
make install
zlib: libiptcdata:
If you have Gtkmm2.22 installed, you should skip this section - Download: http://libiptcdata.sourceforge.net/
- download: http://zlib.net/ - How to build:
- how to build: ./configure --prefix=/mingw
cd to the unarchiving directory of zlib-1.2.5
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): Edit the "Makefile" file from the root dir of libiptcdata and
search for "DIST_SUBDIRS =" and "SUBDIRS =". You should only find
one line for each search. From these lines, remove "iptc", then:
make
make install
cp -iv zlib1.dll /mingw/bin lcms:
cp -iv zconf.h zlib.h /mingw/include - Download lcms1 for RawTherapee-3.0 or lcms2 for RawTherapee-3.1 and
cp -iv libz.a /mingw/lib newer http://sourceforge.net/projects/lcms/files/
cp -iv libzdll.a /mingw/lib/libz.dll.a - How to build (suitable for both version):
./configure --prefix=/mingw
libpng: make
If you have Gtkmm2.22 installed, you should skip this section make install
- download: http://sourceforge.net/projects/libpng/files/
(please note that libpng 1.5 has not been tested yet)
- how to build:
cd to the unarchiving directory of lpng144
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
2. gtkmm provide zlib and i want to reuse it (so we're assuming that you didn't compiled zlib like explained here above)
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_PREFIX_PATH:PATH=C:/gtkmm -DCMAKE_BUILD_TYPE:STRING=Release
Then build and install:
make
make install
libjpeg:
- download: http://www.ijg.org/
- how to build:
cd to the unarchiving directory of jpeg-8b
./configure --prefix=/mingw
copy the content of jconfig.txt to jconfig.h (overwrite the existing file)
make
make install
libtiff:
- download: ftp://ftp.remotesensing.org/pub/libtiff/
- how to build:
In the configure process below, set the zlib include and lib path to the right folder. We're assuming that you're using
the one provided in the gtkmm bundle
./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib
make
cd libtiff
make install
libiptcdata:
- download: http://libiptcdata.sourceforge.net/
- how to build:
./configure --prefix=/mingw
Edit the "Makefile" file from the root dir of libiptcdata, and search for "DIST_SUBDIRS ="
and "SUBDIRS =". You should only find one line for each search. From those lines, remove "iptc", then
make
make install
lcms:
- download lcm v1.x for RT3.0, v2.x for RT3.1 and upper: http://sourceforge.net/projects/lcms/files/
- how to build (suitable for both version):
./configure --prefix=/mingw
make
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
-- checking for module 'libiptcdata' lines when running the cmake command (see "Building RT" below):
-- found libiptcdata, version 1.0.4 -- checking for module 'libiptcdata'
-- checking for module 'lcms<=1.99' -- found libiptcdata, version 1.0.4
-- found lcms, version 1.19 -- checking for module 'lcms2'
-- Found JPEG: C:/mingw/lib/libjpeg.dll.a -- found lcms2, version 2.3
-- Found ZLIB: C:/gtkmm/lib/libz.dll.a -- Found JPEG: C:/mingw/lib/libjpeg.dll.a
-- Found PNG: C:/gtkmm/lib/libpng.lib -- Found ZLIB: C:/gtkmm/lib/libz.dll.a
-- Found TIFF: C:/mingw/lib/libtiff.dll.a -- Found PNG: C:/gtkmm/lib/libpng.lib
-- Found TIFF: C:/mingw/lib/libtiff.dll.a
Building RT: Building RT:
METHOD 1: METHOD 1:
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
- libtiff, libpng, libjpeg, lcms, libiptcdata development packages
- ...did I forget something?
On Ubuntu/Debian the requirements can be installed by running: PACKAGE GENTOO DEBIAN/UBUNTU URL
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 GTK+ gtk+-2.0>=2.12 x11-libs/gtk+ libgtk2.0-dev http://www.gtk.org/
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/
Compile: On Ubuntu/Debian the requirements can be installed by running:
- Enter the root directory of the RawTherapee source tree 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
- Type: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
developers that wants to provide a build has 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=.
- Type: make install
- You find the compiled program in the release directory (you can copy it anywhere you want)
(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). Compile:
- Enter the root directory of the RawTherapee source tree
- Type:
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=.
- Type:
make install
- You'll find the compiled program in the subdirectory named like the value
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
1. type 'make install' in the console or, about your processor. There are two possibilities:
2. in 'Project'->'properties'->'C/C++ Make Project'->'Build (incremental build)' change 'all' to 'install' 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).
OSX Eclipse does not do 'make install', but only 'make all'.
--- There are two ways to compile:
1. type 'make install' in the console or,
2. in "Project > properties > C/C++ Make Project > Build (incremental
build)" change 'all' to 'install'.
Requirements: OS X
- XCode Development Tools (you only need a subset of these, but it is probably easier to just install all of them) ----
- MacPorts
- 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.
- Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the architectures you wish to build for. Possible values
include "i386 x86_64 ppc ppc64"
- Edit beginning of CMakeLists.txt to enable the same architectures as you added to variants.conf
- Run "sudo port install cairomm pango-devel gtk2 cmake glibmm gtkmm lcms libiptcdata" to install all needed libraries and tools
- 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: Requirements:
- Enter root directory of RawTherapee source tree - XCode Development Tools (you only need a subset of these, but it is
- 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: probably easier to just install all of them)
cmake -D OPTION_OMP=false . (to disable OpenMP and use the default compiler) - MacPorts
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: - Set /opt/local/etc/macports/variants.conf to include "+no_x11 +quartz"
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number" - If you want to build for multiple architectures, add +universal to
to cmake's command line variants.conf. Note that this will increase the size of the final
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" application substantially.
in cmake's command line - Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. architectures you wish to build for. Possible values include "i386
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) x86_64 ppc ppc64"
- Type: make install - Edit the beginning of CMakeLists.txt to enable the same architectures
- Type: ./tools/osx/make-app-bundle as you added to variants.conf
- 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 - To install all the tools and dependencies, run:
architecture requirements you specified in variants.conf earlier. 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
For any bugs or patches to the OSX build, please contact Wyatt <wyatt@digitalcave.ca> Compile:
- Enter the root directory of the RawTherapee source tree
- To enable OpenMP, assuming you have installed gcc45), type:
cmake -D CMAKE_C_COMPILER=gcc-mp-4.5 -D CMAKE_CXX_COMPILER=g++-mp-4.5 .
OR to disable OpenMP and use the default compiler, type:
cmake -D OPTION_OMP=false .
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).
- 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.
Contact: For any bugs or patches to the OS X build, please contact Wyatt
<wyatt@digitalcave.ca>