Revision of COMPILE.txt. Issue 1431
This commit is contained in:
478
COMPILE.txt
478
COMPILE.txt
@@ -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>
|
||||||
|
Reference in New Issue
Block a user