diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a724ef94..9b5d6c848 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,11 +3,9 @@ cmake_minimum_required(VERSION 2.6) # the default target is 'Debug' set (CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel.") -# set the default target processor to 'native', i.e. the one of your own machine. The complete list of targets is in ProcessorTargets.cmake -# you can override the cpu list by setting PROC_TARGET_NUMBER to 0, but you have to provide at least -# the PROC_LABEL value (set to "undefined" by default) in order to provide downloadable builds, -# and evetually provide PROC_FLAGS if you want to manually set the processor specific flags -set (PROC_TARGET_NUMBER 2 CACHE STRING "Selected target processor from the list above (taken from ProcessorTargets.cmake)") +# By default, we don't use specific processor target, so PROC_TARGET_NUMBER is set to 0. If can specify other values to select specific +# processor targets, which list can be found in ProcessorTargets.cmake. +set (PROC_TARGET_NUMBER 0 CACHE STRING "Selected target processor from the list above (taken from ProcessorTargets.cmake)") # The following line set special compilation flags for RTEngine, and will be added to CMAKE_CXX_FLAGS # It were moved away from rtengine/CMakefiles.txt, because some users may want to remove -ffast_math : diff --git a/COMPILE.txt b/COMPILE.txt index cc40b784a..f8a75f354 100644 --- a/COMPILE.txt +++ b/COMPILE.txt @@ -1,6 +1,21 @@ If you have problems with the compilation, please ask on the appropriated RawTherapee forum : http://www.rawtherapee.com/forum/viewforum.php?f=10 +Preamble: +--------- + +Cmake is actually used to create the Makefiles (scripts that handle the build 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 +done in our build script, and may be aoverriden at your own will. The build process also enable 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 +download then have to set the processor label manually (set to 'undefined' by default) with the PROC_FORCED_LABEL cmake's parameter (we assume that you know +how to specify a cmake parameter). + Windows ------- @@ -40,6 +55,15 @@ Windows You have to restart the console to take this new variables into account - Copy the "Win32CMakeOptions-sample.txt" file located in the root directory of RT's source tree, to "cmo.txt" (e.g.) You can edit that copy to change the compilation flags to your needs, but the default values should be fine. + However, 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 set the PROC_TARGET_NUMBER parameter in cmo.txt + to the right target number. + If you choose the 'native' solution, you have to set the processor label manually in cmo.txt, by uncommenting and set the PROC_FORCED_LABEL + parameter. 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, so you'll let PROC_TARGET_NUMBER set to 0, but you have to set the PROC_FORCED_LABEL parameter + in cmo.txt (don't forget to uncomment the line). Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor + frequency if of no use. + Dependancies: @@ -194,6 +218,8 @@ Linux Compile: - Enter the root directory of the RawTherapee source tree - 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_FORCED_LABEL to their processor name, e.g.: + cmake -DPROC_FORCED_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) @@ -214,6 +240,7 @@ Linux Enter root directory of RawTherapee source tree from a terminal window. configure the source for Eclipse with: cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release + See above the comment about PROC_FORCED_LABEL Eclipse does not do 'make install' but only 'make all' so to get the release there are 2 ways. 1. type 'make install' in the console or, @@ -238,6 +265,13 @@ Compile: - Enter root directory of 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: cmake -D OPTION_OMP=false . (to disable OpenMP and use the default compiler) + 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_FORCED_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_FORCED_LABEL parameter (see point 1 righ above) - Type: make install - Type: ./tools/osx/make-app-bundle - 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 diff --git a/Win32CMakeOptions-Sample.txt b/Win32CMakeOptions-Sample.txt index 73a763f51..438826d04 100644 --- a/Win32CMakeOptions-Sample.txt +++ b/Win32CMakeOptions-Sample.txt @@ -19,7 +19,7 @@ set(OPTION_OMP ON CACHE BOOL "Use OpenMP to speedup the preview and batch proces set(WITH_MYFILE_MMAP ON CACHE BOOL "Use the MMAP mechanism to speedup thumbnail creations") # This line will let you chose the target number, and the associated processor -set (PROC_TARGET_NUMBER 2 CACHE STRING "Target Processor") +set (PROC_TARGET_NUMBER 0 CACHE STRING "Target Processor") # If you want to force the target processor name, uncomment the next line, and replace labelWithoutQuotes by its value #set (PROC_FORCED_LABEL labelWithoutQuotes CACHE STRING "Target Processor label")