Windows compilation update, issue 1790

This commit is contained in:
DrSlony
2013-05-14 23:41:40 +01:00
parent 2c0d58d944
commit 88c576dd67
4 changed files with 196 additions and 227 deletions

View File

@@ -45,7 +45,7 @@ PREAMBLE
In short, once you cd into your clone of the RawTherapee source code In short, once you cd into your clone of the RawTherapee source code
repository, using version "4.0.10" as an example: repository, using version "4.0.10" as an example:
1. Check out the desired hg tag: hg update "4.0.10" 1. Check out the desired hg tag: hg update "4.0.11"
2. Run tools/generateReleaseInfo to generate ReleaseInfo.cmake: 2. Run tools/generateReleaseInfo to generate ReleaseInfo.cmake:
./tools/generateReleaseInfo ./tools/generateReleaseInfo
3. The repository is now ready to be made into a public tarball: 3. The repository is now ready to be made into a public tarball:
@@ -92,11 +92,12 @@ DEPENDENCIES
WINDOWS WINDOWS
------- -------
OPTIONAL: OPTIONAL
- TortoiseHG - TortoiseHG
You can make your life a little easier by using a graphical client for You can make your life a little easier by using a graphical client for
working with Mercurial. One such free and open-soure cross-platform working with Mercurial. One such free and open-soure cross-platform
client is TortoiseHG, you can get it from: client is TortoiseHG, you can get it bundled with Mercurial from:
http://tortoisehg.bitbucket.org/ http://tortoisehg.bitbucket.org/
- Weird compressed archive formats? - Weird compressed archive formats?
@@ -108,104 +109,114 @@ WINDOWS
http://peazip.sourceforge.net/ http://peazip.sourceforge.net/
THE TOOLCHAIN: THE TOOLCHAIN
There are two methods of compiling RawTherapee in Windows, and they each This document assumes that you install MinGW, CMake and gtkmm respectively
rely on different and common packages. They will be referred to as METHOD 1 to "C:\MinGW64" (or "C:\MinGW32" for 32-bit), "C:\CMake", and "C:\gtkmm64" (or
and METHOD 2. You will have to install the dependencies for the build "C:\gtkmm" for 32-bit).
methods explained later in this document. These packages must be installed in paths that DO NOT CONTAIN SPACES.
The rest of this document assumes that you've installed MinGW, MSYS and INSTALL THE TOOLCHAIN
gtkmm respectively to "C:\mingw", "C:\msys" and "C:\gtkmm". These packages - TDM-GCC On-Demand Installer
must be installed in paths that DO NOT CONTAIN SPACES. http://tdm-gcc.tdragon.net/download
Download the "tdm-gcc-webdl" option. Run it, select "Create a new
TDM-GCC installation" and choose the appropriate option for your
machine: "MinGW/TDM (32-bit)" if you use a 32-bit machine, or
"MinGW-w64/TDM64 Experimental (32-bit and 64-bit)" if you use a 64-bit
machine. Even though the 64-bit version contains a 32-bit version too,
we had no luck making 32-bit RT builds using it at the time of writing.
Be sure to install with OpenMP support (Components > gcc > openmp).
- CMake
http://www.cmake.org/cmake/resources/software.html
Use "Windows (Win32 Installer)", the newest version.
METHOD 1
- MinGW64-TDM (Bundle or On-Demand installer from
http://tdm-gcc.tdragon.net/download) Make sure you use the current 4.6.1
or newer stable version, and install MinGW64 (not MinGW32), as MinGW64
is more comprehensive plus it runs AND compiles for both 32bit and 64bit
Windows machines. Old Mingw32 versions miss some required header files,
so some Windows functions will be disabled though it will compile.
However MinGW64 does not fully support Windows XP, only Vista and up.
- MSYS - http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe If you
have some trouble installing MSYS, see here:
http://www.mingw.org/wiki/MSYS
- CMake - http://www.cmake.org/cmake/resources/software.html Version 2.8.8
or above is required for this platform
- gtkmm-2.22 - gtkmm-2.22
- for 32bit: - 32-bit
http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ http://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/
- for 64bit: - 64-bit
http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/ http://ftp.gnome.org/pub/GNOME/binaries/win64/gtkmm/
METHOD 2
- MinGW-TDM - Bundle or On-Demand installer
http://tdm-gcc.tdragon.net/download
- CMake - http://www.cmake.org/cmake/resources/software.html
- 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/
ADDITIONAL STEPS:
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 (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 PKG_CONFIG_PATH user or system environment variable to the
location of the pkgconfig directories:
c:\mingw\lib\pkgconfig;c:\gtkmm\lib\pkgconfig You have to restart the
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_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" (for example). You can edit
that copy to change the compilation flags to your needs, but the default
values should be fine. However, 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 the PROC_TARGET_NUMBER parameter in cmo.txt to the
desired target number. If you choose the 'native' solution, you have
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.
DEPENDENCIES: INSTALL THE DEPENDENCIES
RawTherapee depends on libraries which are not part of the gtkmm or MinGW RawTherapee depends on additional build-time libraries. There are two ways
packages. There are two ways of installing these libraries: you can get these libraries:
- The easy way, you can use the pre-compiled ones available from:
http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/
Just unzip them to the base installation dir of MinGW, which should be
C:\MinGW64 if you followed the instructions to the letter.
THE SIMPLE WAY: Note that this archive might not contain all of the required
For your convenience, most of the required libraries has been precompiled libraries. If compilation fails due to missing libraries, then see the
and are downloadable at: dependency list at the beginning of this document, find the missing
http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/ ones, and see below for instructions on where to download them from
Unpack the contents of these archives to the base installation dir of and how to install them. Please notify us so that we may update the
MinGW. archive.
NOTE: those archives contain most but not all of the required - The hard way, you will need to download the source code for each and
libraries. See the dependencies list at the beginning of the document, compile each yourself. See further below for instructions.
find the missing ones (such as LCMS2 and Expat) and see below for
instructions on where to download them from and how to install them.
THE "DO IT YOURSELF" WAY:
The MSYS package is required to build the libraries. See above for the SET UP THE TOOLCHAIN ENVIRONMENT VARIABLES
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 toolchain installers should have set up some environment variables
the same library in different places. for you automatically, but some will be missing. Fire up:
System Properties > Advanced > Environment Variables
Make sure you have the relevant ones, and that they point to the correct
places:
GTKMM_BASEPATH = "C:\gtkmm"
GTKMM64_BASEPATH = "C:\gtkmm64"
MINGW_BASEPATH = "C:\MinGW64"
PKG_CONFIG_PATH = "C:\MinGW64\lib\pkgconfig;c:\gtkmm64\lib\pkgconfig"
and that PATH contains "C:\gtkmm64\bin;C:\MinGW64\bin;C:\CMake\bin;"
(or the 32-bit counteparts)
Restart your console to be sure the changes took effect.
COMPILE
- Clone or update the RawTherapee repository
You can use TortoiseHG to clone and update the repository, or you can
do it from the command line:
hg clone https://rawtherapee.googlecode.com/hg/ "C:\rtrepo"
If you have already cloned it before, update it:
cd C:\rtrepo
hg pull
hg update -C default
- Tailor the buildRT.bat batch file to your needs
Copy C:\rtrepo\tools\buildRT.bat to C:\buildRT.bat so that you can make
changes to it and not lose them when you update the repository.
Edit C:\buildRT.bat and customize as follows:
- If you are building RT for yourself, use
"-DPROC_TARGET_NUMBER:STRING=2"
- If you are building RT to be distributed to other people, use
"-DPROC_TARGET_NUMBER:STRING=1"
- 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 the PROC_TARGET_NUMBER parameter
to the desired target number. If you choose the "native"
solution, you have to set the processor label manually
by setting the PROC_LABEL parameter. Please provide a short name,
like "core i5" or "athlon64". 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. Please provide a short name, like "core i5"
or "athlon64". Specifying the processor frequency is of no use.
- Run buildRT.bat to compile RawTherapee
C:\buildRT.bat
DEPENDENCIES - THE HARD WAY
The MSYS package is required to build the libraries. 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.
Open an MSYS console, that will create a Linux environment, and compile Open an MSYS console, that will create a Linux environment, and compile
the dependencies in the following order: the dependencies in the following order:
@@ -228,13 +239,13 @@ WINDOWS
If you have gtkmm-2.22 installed, you should skip this libpng 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/
- How to build: - How to build:
cd to the directory you unpacked lpng144 to. cd to the directory you unpacked lpng144 to.
There are two methods of building libpng: There are two methods of building libpng:
1. gtkmm doesn't provide zlib so compile it yourself: 1. gtkmm doesn't provide zlib so compile it yourself:
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 provides zlib so you can reuse it (assuming that you 2. gtkmm provides zlib so you can reuse it (assuming that you
hadn't compiled zlib as explained above): 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:
make make
@@ -252,9 +263,9 @@ WINDOWS
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
to the right folder. We're assuming that you're using the one the right folder. We're assuming that you're using the one provided
provided in the gtkmm bundle. 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
@@ -272,9 +283,9 @@ WINDOWS
make install make install
LCMS: LCMS:
- Download LCMS2 for RawTherapee-3.1 and newer (or LCMS1 for RawTherapee-3.0) - Download LCMS2
http://sourceforge.net/projects/lcms/files/ http://sourceforge.net/projects/lcms/files/
- How to build (suitable for both version): - How to build:
./configure --prefix=/mingw ./configure --prefix=/mingw
make make
make install make install
@@ -287,21 +298,20 @@ WINDOWS
- Instructions: http://www.fftw.org/install/windows.html - Instructions: http://www.fftw.org/install/windows.html
- Specific instructions more suitable for RawTherapee purposes: - Specific instructions more suitable for RawTherapee purposes:
1. Download the official FFTW-64 DLL package from 1. Download the official FFTW-64 DLL package from
http://www.fftw.org/download.html http://www.fftw.org/download.html
Unpack it somewhere you can reach it with MSYS Unpack it to C:\fftw3\
Hint: in MSYS console to change directory to 'C:/DirName' execute 2. Start MSYS console and go to your FFTW3 directory
'cd /C/DirName' cd /c/fftw3
2. In MSYS command line, execute: 2. In MSYS console, execute:
dlltool --def libfftw3f-3.def --dllname libfftw3f-3.dll --output-lib libfftw3f-3.a dlltool --def libfftw3f-3.def --dllname libfftw3f-3.dll --output-lib libfftw3f-3.a
dlltool --def libfftw3l-3.def --dllname libfftw3l-3.dll --output-lib libfftw3l-3.a dlltool --def libfftw3l-3.def --dllname libfftw3l-3.dll --output-lib libfftw3l-3.a
dlltool --def libfftw3-3.def --dllname libfftw3-3.dll --output-lib libfftw3-3.a dlltool --def libfftw3-3.def --dllname libfftw3-3.dll --output-lib libfftw3-3.a
This will generate a 'libfftw3f-3.a.a' file.
3. Copy files: 3. Copy files:
libfftw3f-3.dll -> MinGW64/bin cp libfftw3f-3.dll /c/MinGW64/bin
libfftw3l-3.dll -> MinGW64/bin cp libfftw3l-3.dll /c/MinGW64/bin
libfftw3-3.dll -> MinGW64/bin cp libfftw3-3.dll /c/MinGW64/bin
libfftw3f-3.a.a -> MinGW64/lib cp libfftw3f-3.a /c/MinGW64/lib
fftw3.f.h -> MinGW64/include cp fftw3.h /c/MinGW64/include
4. Create a new text file MinGW64/lib/pkgconfig/fftw3f.pc with the 4. Create a new text file MinGW64/lib/pkgconfig/fftw3f.pc with the
following contents: following contents:
prefix=/mingw64 prefix=/mingw64
@@ -315,13 +325,14 @@ WINDOWS
Cflags: -I${includedir} Cflags: -I${includedir}
IMPORTANT: IMPORTANT
Make sure that the lcms.pc and libiptcdata.pc files located in the Make sure that the lcms.pc and libiptcdata.pc files located in the
pkgconfig dir have the first line like this: pkgconfig dir have the first line like this:
prefix=/mingw prefix=/mingw
If everything has been installed correctly, you should see the following If everything has been installed correctly, you should see lines like
lines when running the cmake command (see "Building RT" below): the following when running the cmake command (see "COMPILE" below):
-- checking for module 'libiptcdata' -- checking for module 'libiptcdata'
-- found libiptcdata, version 1.0.4 -- found libiptcdata, version 1.0.4
-- checking for module 'lcms2' -- checking for module 'lcms2'
@@ -331,80 +342,12 @@ WINDOWS
-- Found PNG: C:/gtkmm/lib/libpng.lib -- Found PNG: C:/gtkmm/lib/libpng.lib
-- Found TIFF: C:/mingw/lib/libtiff.dll.a -- Found TIFF: C:/mingw/lib/libtiff.dll.a
BUILDING RT:
METHOD 1:
Requirements:
- MinGW + MSYS
- CMake
- GTK and gtkmm development environments
Compile:
- Start an MSYS command line interface,
- Enter a new empty folder outside RawTherapee's source directory:
cd /C/Absolute/Path/To/RawTherapee_sourceTree
mkdir build
cd build
- Type:
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -Ccmo.txt \
<path to the source directory, if done as above '..'>
- 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:
Requirements:
- MinGW-TDM:
https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/
- CMake: http://www.cmake.org/cmake/resources/software.html
- Mercurial: http://mercurial.selenic.com/wiki/WindowsInstall
- gtkmm: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
Compile:
- Start a standard DOS command prompt (WIN+R > cmd),
- Enter a new empty folder outside RawTherapee's source directory:
cd /C/Absolute/Path/To/RawTherapee_sourceTree
mkdir build
cd build
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:
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).
METHOD 3:
Here is a sample batch file to compile RawTherapee in Windows. Adjust
directory names to match your setup and change -j2 parameters in mingw32-make.exe
command line to reflect number of hardware threads in your CPU (E.g. -j12 for i7 6-core):
set GTKMM_BASEPATH=C:\gtkmm64
set GTKMM64_BASEPATH=C:\gtkmm64
set MINGW_BASEPATH=C:\MinGW64
set PATH=%PATH%;C:\gtkmm64\bin;C:\MinGW64\bin;C:\CMake\bin;C:\DevTools\XMPToolkit\bin
set PKG_CONFIG_PATH=C:\MinGW64\lib\pkgconfig;c:\gtkmm64\lib\pkgconfig
set RT_SOURCECODE_PATH=C:\Users\YOURNAME\workspace\rawtherapee_default
set RT_BUILD_PATH=C:\Users\YOURNAME\rt_builds\rt_default_release
cd %RT_BUILD_PATH%
cmake -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles" -DPROC_TARGET_NUMBER:STRING=2 -C%RT_SOURCECODE_PATH%\Win32CMakeOptions-Sample.txt %RT_SOURCECODE_PATH%
mingw32-make.exe "MAKE=mingw32-make -j2" -j2 install
pause
LINUX LINUX
----- -----
DEPENDENCIES: DEPENDENCIES
See the list of dependencies at the beginning of this document. See the list of dependencies at the beginning of this document.
In Arch, run: In Arch, run:
@@ -437,7 +380,9 @@ LINUX
libjpeg8-dev liblcms2-dev libpng12-dev libsigc++-2.0-dev libtiff4-dev \ libjpeg8-dev liblcms2-dev libpng12-dev libsigc++-2.0-dev libtiff4-dev \
mercurial zlib1g-dev mercurial zlib1g-dev
COMPILE:
COMPILE
The Automatic Way: The Automatic Way:
The easiest way compile RawTherapee is by using the buildRT script, read The easiest way compile RawTherapee is by using the buildRT script, read
all about it in the forum: all about it in the forum:
@@ -465,15 +410,15 @@ LINUX
standard system install location. standard system install location.
You're done. You're done.
Using Eclipse under Linux: Using Eclipse under Linux:
Eclipse mercurial plugin: Click "Help > Install new Software". Eclipse mercurial plugin: 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"
Enter this URL: Enter this URL:
https://rawtherapee.googlecode.com/hg https://rawtherapee.googlecode.com/hg
@@ -482,7 +427,6 @@ LINUX
Configure the source for Eclipse with: Configure the source for Eclipse with:
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release <path to source directory> cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release <path to source directory>
If you want to upload a build, you should set some additional information If you want to upload a build, you should set some additional information
about your processor. There are two possibilities: about your processor. There are two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you 1. You pick up a target processor from "ProcessorTargets.cmake". All you
@@ -505,7 +449,8 @@ LINUX
OS X OS X
---- ----
REQUIREMENTS: REQUIREMENTS
- XCode Development Tools (you only need a subset of these, but it is - XCode Development Tools (you only need a subset of these, but it is
probably easier to just install all of them) probably easier to just install all of them)
- MacPorts - MacPorts
@@ -518,14 +463,16 @@ OS X
- If you don't already have Mercurial installed, run: - If you don't already have Mercurial installed, run:
sudo port install mercurial sudo port install mercurial
COMPILE:
COMPILE
- Make build directory. - Make build directory.
mkdir build mkdir build
cd build cd build
- To enable OpenMP, assuming you have installed gcc47), type: - To enable OpenMP, assuming you have installed gcc47), type:
cmake -D CMAKE_C_COMPILER=gcc-mp-4.7 -D CMAKE_CXX_COMPILER=g++-mp-4.7 \ cmake -D CMAKE_C_COMPILER=gcc-mp-4.7 -D CMAKE_CXX_COMPILER=g++-mp-4.7 \
<path to source directory> <path to source directory>
If you want to upload a build, you should set some additional information If you want to upload a build, you should set some additional information
about your processor. There are two possibilities: about your processor. There are two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you 1. You pick up a target processor from "ProcessorTargets.cmake". All you
@@ -545,4 +492,4 @@ OS X
make macosx_bundle make macosx_bundle
- You will find a disk image in the build directory; this is the - You will find a disk image in the build directory; this is the
distribution release and can be run on any machine which meets the 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.

28
clean
View File

@@ -1,28 +0,0 @@
#!/bin/sh
find -name CMakeCache.txt -delete
rm install_manifest.txt
rm -r ./CMakeFiles
rm -r ./rtengine/CMakeFiles
rm -r ./rtexif/CMakeFiles
rm -r ./rtgui/CMakeFiles
rm -r ./rtdata/CMakeFiles
rm ./cmake*
rm ./rtengine/cmake*
rm ./rtexif/cmake*
rm ./rtgui/cmake*
rm ./rtdata/cmake*
rm ./Makefile
rm ./rtengine/Makefile
rm ./rtexif/Makefile
rm ./rtgui/Makefile
rm ./rtdata/Makefile
rm ./rtengine/librtengine.so
rm ./rtengine/librtengine.a
rm ./rtgui/rawtherapee
rm ./rtexif/librtexif.so
rm ./rtexif/librtexif.a
exit 0

50
tools/buildRT.bat Normal file
View File

@@ -0,0 +1,50 @@
@echo off
REM 2013-05-14 version 1
SET RT_BUILD_TYPE=Release
SET RT_CACHE_VER=4.0.11
SET PATH=%PATH%;C:\gtkmm64\bin;C:\MinGW64\bin;C:\CMake\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\TortoiseHg\
SET RT_SOURCECODE_PATH=C:\rtrepo
SET RT_BUILD_PATH=C:\rtrepo\build
SET RT_SSE_SUPPORT=
IF EXIST "%RT_BUILD_PATH%" (SET /P clean="Start from scratch? [y/n] ")
IF %clean%==y (GOTO rmbuild)
GOTO continue
:rmbuild
rmdir /S/Q "%RT_BUILD_PATH%"
GOTO continue
:continue
ECHO.
SET
ECHO.
mkdir "%RT_BUILD_PATH%" && cd %RT_BUILD_PATH%
SET /P target="Make a 32-bit or 64-bit build? [32/64] "
IF %target%==32 (GOTO cmake32)
IF %target%==64 (GOTO cmake64)
ECHO Invalid choice
GOTO end
:cmake32
SET /P sse="Compile with SSE support? (Default is no) [y/n] "
IF %sse%==y (SET RT_SSE_SUPPORT="-msse")
ECHO.
cmake -DCMAKE_BUILD_TYPE=%RT_BUILD_TYPE% -DCMAKE_C_FLAGS="-O2 -m32 %RT_SSE_SUPPORT%" -DCMAKE_SHARED_LINKER_FLAGS="-m32" -DCMAKE_EXE_LINKER_FLAGS="-m32" -DCMAKE_RC_FLAGS="-F pe-i386" -DCMAKE_CXX_FLAGS="%CMAKE_C_FLAGS%" -DBUILD_BUNDLE:BOOL="1" -DCACHE_NAME_SUFFIX:STRING="%RT_CACHE_VER%" -G "MinGW Makefiles" -DPROC_TARGET_NUMBER:STRING=2 -C%RT_SOURCECODE_PATH%\Win32CMakeOptions.cmake %RT_SOURCECODE_PATH%
GOTO compile
:cmake64
ECHO.
SET /P sse="Compile with SSE support? (Default is yes) [y/n] "
IF %sse%==n (SET RT_SSE_SUPPORT="-mno-sse")
ECHO.
cmake -DCMAKE_BUILD_TYPE=%RT_BUILD_TYPE% -DCMAKE_C_FLAGS="-O2 %RT_SSE_SUPPORT%" -DCMAKE_CXX_FLAGS="%CMAKE_C_FLAGS%" -DBUILD_BUNDLE:BOOL="1" -DCACHE_NAME_SUFFIX:STRING="%RT_CACHE_VER%" -G "MinGW Makefiles" -DPROC_TARGET_NUMBER:STRING=2 -C%RT_SOURCECODE_PATH%\Win32CMakeOptions.cmake %RT_SOURCECODE_PATH%
GOTO compile
:compile
mingw32-make.exe "MAKE=mingw32-make -j%NUMBER_OF_PROCESSORS%" -j%NUMBER_OF_PROCESSORS% install
GOTO end
:end
cd \

View File

@@ -27,7 +27,7 @@ set(PROC_TARGET_NUMBER 0 CACHE STRING "Target Processor")
#set (PROC_LABEL labelWithoutQuotes CACHE STRING "Target Processor label") #set (PROC_LABEL labelWithoutQuotes CACHE STRING "Target Processor label")
# Important: MinGW-w64 user may need to specify the -m32 or -m64 flag in CMAKE_CXX_FLAGS, # Important: MinGW-w64 user may need to specify the -m32 or -m64 flag in CMAKE_CXX_FLAGS,
# CMAKE_C_FLAGS and CMAKE_EXE_LINKER_FLAGS to selectect between 32/64bit build # CMAKE_C_FLAGS and CMAKE_EXE_LINKER_FLAGS to select between 32/64bit build
set(CMAKE_CXX_FLAGS "-mwin32 -mthreads" CACHE STRING "Compiler options for C++ source files") set(CMAKE_CXX_FLAGS "-mwin32 -mthreads" CACHE STRING "Compiler options for C++ source files")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2" CACHE STRING "Compiler options for C++ source files and Debug target") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2" CACHE STRING "Compiler options for C++ source files and Debug target")
set(CMAKE_CXX_FLAGS_RELEASE "-mwindows -DNDEBUG -O2" CACHE STRING "Compiler options for C++ source files and Release target") set(CMAKE_CXX_FLAGS_RELEASE "-mwindows -DNDEBUG -O2" CACHE STRING "Compiler options for C++ source files and Release target")
@@ -43,7 +43,7 @@ set(CMAKE_C_FLAGS_RELEASE "-mwindows -DNDEBUG -O2" CACHE STRING "Compiler option
set(CMAKE_C_FLAGS_MINSIZEREL "-mwindows -DNDEBUG -Os" CACHE STRING "Compiler options for C source files and MinSizeRel target") set(CMAKE_C_FLAGS_MINSIZEREL "-mwindows -DNDEBUG -Os" CACHE STRING "Compiler options for C source files and MinSizeRel target")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "Compiler options for C source files and RelWithDebInfo target") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "Compiler options for C source files and RelWithDebInfo target")
set(CMAKE_EXE_LINKER_FLAGS "-mwin32 -mthreads -mthread -static-libgcc -static-libstdc++ --large-address-aware" CACHE STRING "Linker options") set(CMAKE_EXE_LINKER_FLAGS "-mwin32 -mthreads -static-libgcc -Wl,--large-address-aware,--verbose" CACHE STRING "Linker options")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-O0" CACHE STRING "Linkage options for the Debug target") set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-O0" CACHE STRING "Linkage options for the Debug target")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-mwindows -s -O2" CACHE STRING "Linkage options for the Release target") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-mwindows -s -O2" CACHE STRING "Linkage options for the Release target")
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "-mwindows -s -Os" CACHE STRING "Linkage options for the MinSizeRel target") set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "-mwindows -s -Os" CACHE STRING "Linkage options for the MinSizeRel target")