Merge with e190c52ab7861c68762aaa552f3dc0f59fe2e225 from default

This revision compiles and runs on Win7x64- but further evaluation is necessary.
There may be an issue with cmake step -After cmake I had to copy rtgui/version.h & config.h into out of source build /rtgui folder.
Additional notes:
- ImProcFunctions::hsv2rgb01   -> this likely need to be added to color.h & color.cc
- Use of array2D should be verified in NR code
- compilation warning for rtengine::RawImageSource::isWBProviderReady()
This commit is contained in:
michael
2012-07-03 23:15:07 -04:00
parent 78d4f80875
commit 3a4100e710
374 changed files with 47381 additions and 39387 deletions

View File

@@ -1,29 +0,0 @@
# cmakefile executed within a makefile target
# we look for the hg command in this paths by order of preference
find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin")
find_file(HG_CMD hg)
# the hg command is looked for again, at build time
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(FATAL_ERROR "hg command not found!")
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(STATUS "hg command found: ${HG_CMD}")
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
set (OUT_FILE "${SRC_DIR}/AboutThisBuild.txt")
set (SHELL "/bin/bash")
# there should be a better way of getting the compiler + compiler version, not restrained to Gcc
execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R ${SRC_DIR} branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE)
if (CACHE_NAME_SUFFIX STREQUAL "")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
# build version.h from template
configure_file (${SRC_DIR}/rtgui/version.h.in ${SRC_DIR}/rtgui/version.h)
# build AboutThisBuild.txt from template
configure_file (${SRC_DIR}/AboutThisBuild.txt.in ${SRC_DIR}/AboutThisBuild.txt)

View File

@@ -1,29 +0,0 @@
# cmakefile executed within a makefile target
# we look for the hg command in this paths by order of preference
find_file(HG_CMD hg)
# the hg command is looked for again, at build time
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(FATAL_ERROR "hg command not found!")
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(STATUS "hg command found: ${HG_CMD}")
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
set (OUT_FILE "${SRC_DIR}/AboutThisBuild.txt")
set (SHELL "/bin/bash")
# there should be a better way of getting the compiler + compiler version, not restrained to Gcc
execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R ${SRC_DIR} branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE)
if (CACHE_NAME_SUFFIX STREQUAL "")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
# build version.h from template
configure_file (${SRC_DIR}/rtgui/version.h.in ${SRC_DIR}/rtgui/version.h)
# build AboutThisBuild.txt from template
configure_file (${SRC_DIR}/AboutThisBuild.txt.in ${SRC_DIR}/AboutThisBuild.txt)

View File

@@ -1,29 +0,0 @@
# cmakefile executed within a makefile target
# we look for the hg command in this paths by order of preference
find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../)
# the hg command is looked for again, at build time
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(FATAL_ERROR "hg command not found!")
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(STATUS "hg command found: ${HG_CMD}")
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
set (OUT_FILE "${SRC_DIR}/AboutThisBuild.txt")
# there should be a better way of getting the compiler + compiler version, not restrained to Gcc
execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R ${SRC_DIR} branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE)
if (CACHE_NAME_SUFFIX STREQUAL "")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag} WORKING_DIRECTORY ${SRC_DIR} OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
# build version.h from template
configure_file (${SRC_DIR}/rtgui/version.h.in ${SRC_DIR}/rtgui/version.h)
# build AboutThisBuild.txt from template
configure_file (${SRC_DIR}/AboutThisBuild.txt.in ${SRC_DIR}/AboutThisBuild.txt)

39
AboutThisBuild.cmake Normal file
View File

@@ -0,0 +1,39 @@
# cmakefile executed within a makefile target
# If we find ReleaseInfo.cmake we use the info from there and don't need Mercurial to be installed
find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH)
if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
# we look for the hg command in this paths by order of preference
if (WIN32)
find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../)
elseif (APPLE)
find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin")
find_file(HG_CMD hg)
set (SHELL "/bin/bash")
else (WIN32) # Linux
find_file(HG_CMD hg)
set (SHELL "/bin/bash")
endif (WIN32)
# Fail if Mercurial is not installed
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(FATAL_ERROR "hg command not found!")
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(STATUS "hg command found: ${HG_CMD}")
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={node|short} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE)
if (CACHE_NAME_SUFFIX STREQUAL "")
execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
endif (CACHE_NAME_SUFFIX STREQUAL "")
else (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake")
endif (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
# build version.h from template
configure_file ("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h")
# build AboutThisBuild.txt from template
configure_file ("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt")

View File

@@ -1,7 +1,7 @@
Branch: ${HG_BRANCH}
Version: ${HG_VERSION}
Changeset: ${HG_CHANGESET}
Compiler: GCC ${GCC_VERSION}
Compiler: ${COMPILER_INFO}
Processor: ${PROC_LABEL}
System: ${SYSTEM}
Bit depth: ${PROC_BIT_DEPTH}

View File

@@ -5,6 +5,8 @@ else (WIN32)
cmake_minimum_required(VERSION 2.6)
endif (WIN32)
PROJECT(RawTherapee)
# the default target is 'Debug'
if (CMAKE_BUILD_TYPE STREQUAL "")
set (CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
@@ -64,69 +66,99 @@ if (APPLE)
SET (CMAKE_OSX_DEPLOYMENT_TARGET "10.5")
endif (APPLE)
option(USE_CLANG "Build rawtherapee with clang" OFF)
option (AUTOMATED_BUILD_SYSTEM "TRUE if built by an automate" OFF)
option(USE_EXPERIMENTAL_LANG_VERSIONS "Build RT with -std=c++0x" OFF)
option (BUILD_SHARED "Build rawtherapee with shared libraries" OFF)
option (WITH_RAWZOR "Build with Rawzor support" OFF)
option (WITH_BZIP "Build with Bzip2 support" ON)
option (WITH_MYFILE_MMAP "Build using memory mapped file" ON)
option (OPTION_OMP "Build with OpenMP support" ON)
option (BUILD_BUNDLE "Self-contained build" OFF)
# set install directories
if (NOT DEFINED DATADIR)
if (WIN32 OR APPLE)
set (DATADIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
else (WIN32 OR APPLE)
set (DATADIR ${CMAKE_INSTALL_PREFIX}/share/rawtherapee)
endif (WIN32 OR APPLE)
endif (NOT DEFINED DATADIR)
if (WIN32 OR APPLE)
set (BUILD_BUNDLE ON FORCE)
endif(WIN32 OR APPLE)
if (NOT DEFINED BUNDLE_BASE_INSTALL_DIR)
set (BUNDLE_BASE_INSTALL_DIR "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
endif (NOT DEFINED BUNDLE_BASE_INSTALL_DIR)
if (BUILD_BUNDLE)
set (BINDIR .)
set (CMAKE_INSTALL_PREFIX "${BUNDLE_BASE_INSTALL_DIR}")
endif (BUILD_BUNDLE)
if (NOT DEFINED BINDIR)
if (WIN32 OR APPLE)
set (BINDIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
else (WIN32 OR APPLE)
set (BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
endif (WIN32 OR APPLE)
set (BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
endif (NOT DEFINED BINDIR)
if (NOT DEFINED DATADIR)
if (BUILD_BUNDLE)
set (DATADIR .)
else (BUILD_BUNDLE)
set (DATADIR "${CMAKE_INSTALL_PREFIX}/share/rawtherapee")
endif (BUILD_BUNDLE)
endif (NOT DEFINED DATADIR)
if (NOT DEFINED LIBDIR)
if (WIN32 OR APPLE)
set (LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
else (WIN32 OR APPLE)
if (BUILD_BUNDLE)
set (LIBDIR .)
else (BUILD_BUNDLE)
# Respect CMAKE_INSTALL_LIBDIR if set
if (DEFINED CMAKE_INSTALL_LIBDIR)
set (LIBDIR ${CMAKE_INSTALL_LIBDIR})
if (IS_ABSOLUTE "${LIBDIR}")
set (LIBDIR "${CMAKE_INSTALL_LIBDIR}")
else (IS_ABSOLUTE "${LIBDIR}")
set (LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
endif (IS_ABSOLUTE "${LIBDIR}")
else (DEFINED CMAKE_INSTALL_LIBDIR)
set (LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
set (LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
endif (DEFINED CMAKE_INSTALL_LIBDIR)
endif (WIN32 OR APPLE)
endif (BUILD_BUNDLE)
endif (NOT DEFINED LIBDIR)
if (NOT DEFINED DOCDIR)
if (WIN32 OR APPLE)
set (DOCDIR ${CMAKE_CURRENT_SOURCE_DIR}/release/doc)
else (WIN32 OR APPLE)
set (DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc)
endif (WIN32 OR APPLE)
if (BUILD_BUNDLE)
set (DOCDIR ./doc)
else (BUILD_BUNDLE)
set (DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee")
endif (BUILD_BUNDLE)
endif (NOT DEFINED DOCDIR)
if (NOT DEFINED CREDITSDIR)
if (WIN32 OR APPLE)
set (CREDITSDIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
else (WIN32 OR APPLE)
set (CREDITSDIR ${CMAKE_INSTALL_PREFIX}/share/doc)
endif (WIN32 OR APPLE)
if (BUILD_BUNDLE)
set (CREDITSDIR .)
else (BUILD_BUNDLE)
set (CREDITSDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee")
endif (BUILD_BUNDLE)
endif (NOT DEFINED CREDITSDIR)
if (NOT DEFINED LICENCEDIR)
if (WIN32 OR APPLE)
set (LICENCEDIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
else (WIN32 OR APPLE)
set (LICENCEDIR ${CMAKE_INSTALL_PREFIX}/share/doc)
endif (WIN32 OR APPLE)
if (BUILD_BUNDLE)
set (LICENCEDIR .)
else (BUILD_BUNDLE)
set (LICENCEDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee")
endif (BUILD_BUNDLE)
endif (NOT DEFINED LICENCEDIR)
if (NOT DEFINED DESKTOPDIR)
if (UNIX)
set (DESKTOPDIR "${CMAKE_INSTALL_PREFIX}/share/applications")
endif (UNIX)
endif (NOT DEFINED DESKTOPDIR)
if (NOT DEFINED ICONSDIR)
if (UNIX)
set (ICONSDIR "${CMAKE_INSTALL_PREFIX}/share/icons")
endif (UNIX)
endif (NOT DEFINED ICONSDIR)
# non-bundle builds has to use absolute paths
if (NOT BUILD_BUNDLE AND
NOT (IS_ABSOLUTE "${BINDIR}" AND IS_ABSOLUTE "${DATADIR}" AND IS_ABSOLUTE "${LIBDIR}" AND
IS_ABSOLUTE "${DOCDIR}" AND IS_ABSOLUTE "${CREDITSDIR}" AND IS_ABSOLUTE "${LICENCEDIR}"))
message (FATAL_ERROR "The paths has to be absolute or use -DBUILD_BUNDLE=ON")
endif ()
# check for libraries
find_package(PkgConfig)
pkg_check_modules (GTK REQUIRED gtk+-2.0>=2.12)
@@ -150,6 +182,7 @@ if (WIN32)
endif (WIN32)
# you may need lcms v1.xx for older version : pkg_check_modules (LCMS REQUIRED lcms<=1.99)
pkg_check_modules (LCMS REQUIRED lcms2)
find_package (EXPAT REQUIRED expat>=2.0)
pkg_check_modules (FFTW3F REQUIRED fftw3f)
pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
pkg_check_modules(FFTW3 fftw3)
@@ -158,151 +191,6 @@ find_package (PNG REQUIRED)
find_package (TIFF REQUIRED)
find_package (ZLIB REQUIRED)
if (AUTOMATED_BUILD_SYSTEM)
message(WARNING "Automated build system mode! You have to make sure that AboutThisBuild.txt and rtgui/version.h are up-to-date by building RT at least one time with AUTOMATED_BUILD_SYSTEM=OFF.")
# Checking for the presence of AboutThisBuild.txt
find_file(ABOUT_FILE AboutThisBuild.txt PATHS "${CMAKE_CURRENT_SOURCE_DIR}" NO_DEFAULT_PATH)
if (ABOUT_FILE STREQUAL ABOUT_FILE-NOTFOUND)
message(FATAL_ERROR "AboutThisBuild.txt not found! You have to build RT at least one time with AUTOMATED_BUILD_SYSTEM=OFF to generate this file.")
endif (ABOUT_FILE STREQUAL ABOUT_FILE-NOTFOUND)
# Checking for the presence of version.h
find_file(VERSION_FILE version.h PATHS "${CMAKE_CURRENT_SOURCE_DIR}/rtgui" NO_DEFAULT_PATH)
if (VERSION_FILE STREQUAL VERSION_FILE-NOTFOUND)
message(FATAL_ERROR "rtgui/version.h not found! You have to build RT at least one time with AUTOMATED_BUILD_SYSTEM=OFF to generate this file.")
endif (VERSION_FILE STREQUAL VERSION_FILE-NOTFOUND)
else (AUTOMATED_BUILD_SYSTEM)
# set the bit number information of the platform
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set(PROC_BIT_DEPTH 32 bits)
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(PROC_BIT_DEPTH 64 bits)
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
#generating AboutThisBuild.txt
if (WIN32)
add_custom_target (AboutFile ALL
COMMAND ${CMAKE_COMMAND}
-DSRC_DIR:STRING=${CMAKE_CURRENT_SOURCE_DIR}
-DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}
-DSYSTEM:STRING=Windows
-DPROC_LABEL:STRING=\"${PROC_LABEL}\"
-DPROC_BIT_DEPTH:STRING=\"${PROC_BIT_DEPTH}\"
-DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DGTKMM_VERSION:STRING=${GTKMM_VERSION}
-DCXX_FLAGS:STRING=\"${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}\"
-DLFLAGS:STRING=\"${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}\"
-DOPTION_OMP:STRING=${OPTION_OMP}
-DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP}
-DWITH_RAWZOR:STRING=${WITH_RAWZOR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/About-Windows.cmake
COMMENT "Creating the about file"
)
find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../)
elseif (APPLE)
add_custom_target (AboutFile ALL
COMMAND ${CMAKE_COMMAND}
-DSRC_DIR:STRING=${CMAKE_CURRENT_SOURCE_DIR}
-DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}
-DSYSTEM:STRING=Apple
-DPROC_LABEL:STRING=\"${PROC_LABEL}\"
-DPROC_BIT_DEPTH:STRING=\"${PROC_BIT_DEPTH}\"
-DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DGTKMM_VERSION:STRING=${GTKMM_VERSION}
-DCXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}
-DLFLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}
-DOPTION_OMP:STRING=${OPTION_OMP}
-DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP}
-DWITH_RAWZOR:STRING=${WITH_RAWZOR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/About-Apple.cmake
COMMENT "Creating the about file"
)
find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin")
find_file(HG_CMD hg)
else (WIN32)
add_custom_target (AboutFile ALL
COMMAND ${CMAKE_COMMAND}
-DSRC_DIR:STRING=${CMAKE_CURRENT_SOURCE_DIR}
-DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}
-DSYSTEM:STRING=Linux
-DPROC_LABEL:STRING=\"${PROC_LABEL}\"
-DPROC_BIT_DEPTH:STRING=\"${PROC_BIT_DEPTH}\"
-DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DGTKMM_VERSION:STRING=${GTKMM_VERSION}
-DCXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}
-DLFLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}
-DOPTION_OMP:STRING=${OPTION_OMP}
-DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP}
-DWITH_RAWZOR:STRING=${WITH_RAWZOR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/About-Linux.cmake
COMMENT "Creating the about file"
)
find_file(HG_CMD hg)
endif (WIN32)
add_dependencies(AboutFile Debug Release MinSizeRel RelWithDebInfo)
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(FATAL_ERROR "hg command not found!")
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
message(STATUS "hg command found: ${HG_CMD}")
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
endif (AUTOMATED_BUILD_SYSTEM)
# link rawzor
if (WITH_RAWZOR)
set (EXTRA_INCDIR ${EXTRA_INCDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor")
add_definitions (-DRAWZOR_SUPPORT)
if (WIN32)
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/win32")
set (EXTRA_LIB ${EXTRA_LIB} "rwz_sdk.lib")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/win32/rwz_sdk.dll DESTINATION ${BINDIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/win64")
set (EXTRA_LIB ${EXTRA_LIB} "rwz_sdk.lib")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/win64/rwz_sdk.dll DESTINATION ${BINDIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
elseif (APPLE)
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/mac32")
set (EXTRA_LIB "-lrwz_sdk")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/mac32/rwz_sdk.dylib DESTINATION ${LIBDIR}
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/mac64")
set (EXTRA_LIB "-lrwz_sdk_64")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/mac64/rwz_sdk_64.dylib DESTINATION ${LIBDIR}
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
else (WIN32)
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/lin32")
set (EXTRA_LIB ${EXTRA_LIB} "-lrwz_sdk")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/lin32/librwz_sdk.so DESTINATION ${LIBDIR}
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk.so)
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor/lin64")
set (EXTRA_LIB ${EXTRA_LIB} "-lrwz_sdk")
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor/lin64/librwz_sdk.so DESTINATION ${LIBDIR}
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk.so)
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
endif (WIN32)
endif (WITH_RAWZOR)
# link witz bzip
if (WITH_BZIP)
find_package(BZip2)
@@ -324,44 +212,106 @@ if (OPTION_OMP)
endif (OPENMP_FOUND)
endif (OPTION_OMP)
if(USE_CLANG)
find_file(CLANG_CMD clang)
find_file(CLANGPP_CMD clang++)
if(USE_EXPERIMENTAL_LANG_VERSIONS)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu1x")
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
endif (USE_EXPERIMENTAL_LANG_VERSIONS)
if ((CLANG_CMD STREQUAL CLANG_CMD-NOTFOUND) OR (CLANGPP_CMD STREQUAL CLANGPP_CMD-NOTFOUND))
message(FATAL_ERROR "clang not found! auto-disabling option USE_CLANG")
else ((CLANG_CMD STREQUAL CLANG_CMD-NOTFOUND) OR (CLANGPP_CMD STREQUAL CLANGPP_CMD-NOTFOUND))
message(STATUS "clang found: ${CLANG_CMD}")
message(STATUS "clang++ found: ${CLANGPP_CMD}")
# find out whether we are building out of source
get_filename_component(ABS_SOURCE_DIR "${PROJECT_SOURCE_DIR}" ABSOLUTE)
get_filename_component(ABS_BINARY_DIR "${CMAKE_BINARY_DIR}" ABSOLUTE)
set (OUT_OF_SOURCE_BUILD TRUE)
if (ABS_SOURCE_DIR STREQUAL ABS_BINARY_DIR)
set (OUT_OF_SOURCE_BUILD FALSE)
message (WARNING "You are performing an in-source build. This is discouraged. Please refer e.g. to http://www.cmake.org/Wiki/CMake_FAQ#What_is_an_.22out-of-source.22_build.3F for advantages of o ut of source builds.")
endif ()
SET (CMAKE_C_COMPILER ${CLANG_CMD})
SET (CMAKE_C_FLAGS "") #-Wall
SET (CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET (CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
# XXX remove files triggering the below check to prevent every developer from
# needing manual manual work. We will remove this after some time to have a
# clean build system without file modifications in the source tree again.
set(OOSB_FILES "${PROJECT_SOURCE_DIR}/rtdata/rawtherapee.desktop" "${PROJECT_SOURCE_DIR}/rtgui/version.h" "${PROJECT_SOURCE_DIR}/rtgui/config.h" "${PROJECT_SOURCE_DIR}/AboutThisBuild.txt")
if (OUT_OF_SOURCE_BUILD)
foreach(f ${OOSB_FILES})
file (REMOVE "${f}")
endforeach(f)
endif ()
SET (CMAKE_CXX_COMPILER ${CLANGPP_CMD})
SET (CMAKE_CXX_FLAGS "") #-Wall
SET (CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
endif ((CLANG_CMD STREQUAL CLANG_CMD-NOTFOUND) OR (CLANGPP_CMD STREQUAL CLANGPP_CMD-NOTFOUND))
# check for generated files in the source tree which should not be there when
# doing out of source builds. Without checking for this it might happen that old
# versions are used for the compilation
if (OUT_OF_SOURCE_BUILD)
foreach(f ${OOSB_FILES})
if (EXISTS "${f}")
message (SEND_ERROR "Generated \"${f}\" found inside the source tree. Please remove it as it is a relic of the old build system and prevents valid compilation now.")
endif ()
endforeach(f)
endif ()
find_file(LDGOLD_CMD ld.gold)
if (LDGOLD_CMD STREQUAL LDGOLD_CMD-NOTFOUND)
message(FATAL_ERROR "ld.gold not found! using standard linker")
else (LDGOLD_CMD STREQUAL LDGOLD_CMD-NOTFOUND)
message(STATUS "ld.gold found: ${LDGOLD_CMD}")
SET (CMAKE_LINKER LDGOLD_CMD)
endif (LDGOLD_CMD STREQUAL LDGOLD_CMD-NOTFOUND)
endif(USE_CLANG)
## BEGIN: Generating AboutThisBuild.txt
# set the bit number information of the platform
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set(PROC_BIT_DEPTH 32 bits)
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(PROC_BIT_DEPTH 64 bits)
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
install (FILES AUTHORS.txt DESTINATION ${CREDITSDIR})
install (FILES LICENSE.txt DESTINATION ${LICENCEDIR})
install (FILES AboutThisBuild.txt DESTINATION ${CREDITSDIR})
install (FILES RELEASE_NOTES.txt DESTINATION ${CREDITSDIR} OPTIONAL)
# Get comiler name and version
# only cmake > 2.8.7 knows CMAKE_*_COMPILER_VERSION
if (CMAKE_VERSION VERSION_GREATER 2.8.7)
get_filename_component(COMPILER_INFO ${CMAKE_C_COMPILER} NAME_WE)
set(COMPILER_INFO "${COMPILER_INFO} ${CMAKE_C_COMPILER_VERSION}")
else ()
execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
set(COMPILER_INFO "gcc ${GCC_VERSION}")
endif ()
# Get c++ and linker flags
set(CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}")
set(LFLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}")
set(ABOUT_COMMAND_WITH_ARGS ${CMAKE_COMMAND}
-DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR}
-DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}
-DPROC_LABEL:STRING="${PROC_LABEL}"
-DPROC_BIT_DEPTH:STRING="${PROC_BIT_DEPTH}"
-DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DGTKMM_VERSION:STRING=${GTKMM_VERSION}
-DOPTION_OMP:STRING=${OPTION_OMP}
-DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP})
if (WIN32)
list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Windows
-DCXX_FLAGS:STRING="${CXX_FLAGS}"
-DLFLAGS:STRING="${LFLAGS}"
-DCOMPILER_INFO:STRING="${COMPILER_INFO}")
elseif (APPLE)
list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Apple
-DCXX_FLAGS:STRING=${CXX_FLAGS}
-DLFLAGS:STRING=${LFLAGS}
-DCOMPILER_INFO:STRING=${COMPILER_INFO})
else (WIN32)
list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Linux
-DCXX_FLAGS:STRING=${CXX_FLAGS}
-DLFLAGS:STRING=${LFLAGS}
-DCOMPILER_INFO:STRING=${COMPILER_INFO})
endif (WIN32)
list(APPEND ABOUT_COMMAND_WITH_ARGS -P "${PROJECT_SOURCE_DIR}/AboutThisBuild.cmake")
add_custom_target(AboutFile ALL
COMMAND ${ABOUT_COMMAND_WITH_ARGS}
COMMENT "Creating the about file")
add_dependencies(AboutFile Debug Release MinSizeRel RelWithDebInfo)
## END: Generating AboutThisBuild.txt
install (FILES AUTHORS.txt DESTINATION "${CREDITSDIR}")
install (FILES LICENSE.txt DESTINATION "${LICENCEDIR}")
install (FILES "${CMAKE_BINARY_DIR}/AboutThisBuild.txt" DESTINATION "${CREDITSDIR}")
install (FILES RELEASE_NOTES.txt DESTINATION "${CREDITSDIR}" OPTIONAL)
if (UNIX)
install (FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1")
endif (UNIX)
add_subdirectory (rtexif)
add_subdirectory (rtengine)

View File

@@ -1,308 +1,434 @@
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 overridden 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_LABEL cmake's parameter (we assume that you know
how to specify a cmake parameter).
Note for developers that handle an automated build system : Mercurial is requested in order to produce the build information file, but you build system will
certainly only use the source code without any access to a Mercurial repository. In this case, you have to first build RT like explained below to generates
the build information files, then you can tell your build system to run cmake with the following additionnal parameter : -D AUTOMATED_BUILD_SYSTEM:BOOL=ON.
Cmake will then pass the files creation step, but will check the presence of the requested files and stop if they're not there.
Windows
-------
The toolchain:
There is 2 method to compile RawTherapee, and they each rely on different and common packages. They are
now referred to METHOD 1 and METHOD 2.
Of course, you'll have to install the package for the build method explained later in this document.
The rest of this document assumes that you've installed MinGW, MSYS and Gtkmm respectively to "C:\mingw",
"C:\msys" and "C:\gtkmm".
This tutorial assume that you've installed the packages in paths THAT DOES NOT CONTAIN SPACES.
METHOD 1:
- MinGW64-TDM (Bundle or On-Demand installer from http://tdm-gcc.tdragon.net/download)
Make sure you use the current 4.5.2 or better, and install MinGW64 (not MinGW32)
MinGW64 is more comprehensive, plus it runs AND compiles both 32bit and 64bit Windows.
Old Mingw32 version miss some required header files, so some Windows functions will be disabled though it will compile.
However MinGW64 does not fully support 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.4 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:
- MinGW-TDM (Bundle or On-Demand insteller from http://tdm-gcc.tdragon.net/download)
- CMake (http://www.cmake.org/cmake/resources/software.html)
- 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/)
Additionnal 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's 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 this new variables into account
- On Windows, set 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" (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_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_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)...
specifying the processor frequency in it is useless.
Dependancies:
RawTherapee rely on libraries that may not be part of the Gtkmm or MinGW package. There is two ways of installing
thoses libraries.
The simple way:
For your convenience, those 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.
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 MSYS package is required to build the libraries. See above for the download link.
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:
If you have Gtkmm2.22 installed, you should skip this section
- download: http://zlib.net/
- how to build:
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):
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
libpng:
If you have Gtkmm2.22 installed, you should skip this section
- 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:
Make sure that the lcms.pc and libiptcdata.pc files located in the pkgconfig dir has 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) :
-- checking for module 'libiptcdata'
-- found libiptcdata, version 1.0.4
-- checking for module 'lcms<=1.99'
-- found lcms, version 1.19
-- Found JPEG: C:/mingw/lib/libjpeg.dll.a
-- Found ZLIB: C:/gtkmm/lib/libz.dll.a
-- Found PNG: C:/gtkmm/lib/libpng.lib
-- 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 the root directory of the RawTherapee source tree (type: cd "/C/Absolute/Path/To/RawTherapee_sourceTree")
- Type: 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:
Requirements:
- MinGW-TDM (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download)
- 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 line interface (WIN + "R" -> "cmd")
- Enter the root directory of the RawTherapee source tree (type: cd C:\Absolute\Path\To\RawTherapee_sourceTree)
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)
- 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
-----
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:
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
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_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).
Using Eclipse under Linux:
Eclipse mercurial plugin:
click Help -> Install new Software.
The Eclipse Update Site for MercurialEclipse is available at this URL:
http://cbes.javaforge.com/update
Import the rawtherapee mercurial repository:
File->new->'other'->mercurial->Clone existing repository
fill in URL: https://rawtherapee.googlecode.com/hg
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
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.
1. type 'make install' in the console or,
2. in 'Project'->'properties'->'C/C++ Make Project'->'Build (incremental build)' change 'all' to 'install'
OSX
---
Requirements:
- 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:
- 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_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)
- 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
architecture requirements you specified in variants.conf earlier.
For any bugs or patches to the OSX build, please contact Wyatt <wyatt@digitalcave.ca>
If you have problems with the compilation, please ask on the appropriate
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.
RawTherapee'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 overridden at your own will. The
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
machine's processor. You can specify that the build is to be made for a
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: Mercurial is
required in order to produce the build information file, but your build system
will certainly only use the source code without any access to a Mercurial
repository. To generate the needed information, run the sript
./tools/generateReleaseInfo. After that you can delete .hg* and continue with
the normal compile instructions without the need for mercurial.
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"
The build system especially encourages to perform out-of-source builds. This
means that the CMake project is generated in a folder which is not in the
source tree of RawTherapee. This way the source tree stays clean all the time
and multiple different compilation settings can be maintained in parallel
using different binary folders. Further information about out-of-source builds
can be found here:
http://www.cmake.org/Wiki/CMake_FAQ#What_is_an_.22out-of-source.22_build.3F
If an in-source build is performed, the CMake logic now warns about this but
does not fail. Especially important for clean out-of-source builds is that the
CMake code does not generate files inside the source tree, e.g. when using
configure_file. Please keep this in mind when altering the CMake files.
Windows
-------
The toolchain:
There are two methods of compiling RawTherapee in Windows, and they each
rely on different and common packages. They will be referred to as METHOD 1
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", "C:\msys" and "C:\gtkmm". This tutorial
assume that you've installed the packages in paths that DO NOT CONTAIN
SPACES.
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
- 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
- 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.
Dependancies:
RawTherapee relies on libraries that may not be part of the gtkmm or MinGW
packages. There are two ways of installing these libraries.
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.
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.
Open an MSYS console, that will create a Linux environment, and compile
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
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 zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib
cp -iv libzdll.a /mingw/lib/libz.dll.a
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
Then build and install:
make
make install
libjpeg:
- 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
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 these lines, remove "iptc", then:
make
make install
lcms:
- Download lcms1 for RawTherapee-3.0 or lcms2 for RawTherapee-3.1 and
newer http://sourceforge.net/projects/lcms/files/
- How to build (suitable for both version):
./configure --prefix=/mingw
make
make install
IMPORTANT:
Make sure that the lcms.pc and libiptcdata.pc files located in the
pkgconfig dir have the first line like this:
prefix=/mingw
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'
-- found libiptcdata, version 1.0.4
-- checking for module 'lcms2'
-- found lcms2, version 2.3
-- Found JPEG: C:/mingw/lib/libjpeg.dll.a
-- Found ZLIB: C:/gtkmm/lib/libz.dll.a
-- Found PNG: C:/gtkmm/lib/libpng.lib
-- 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).
Linux
-----
Requirements:
PACKAGE GENTOO DEBIAN/UBUNTU URL
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/
On Ubuntu/Debian the requirements can be installed by running:
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:
- Create and enter a new empty folder outside RawTherapee's source directory:
mkdir ~/rt-build
cd ~/rt-build
- Type:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. <path to source directory>
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=. <path to source directory>
- 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:
Eclipse mercurial plugin: Click "Help > Install new Software".
The Eclipse Update Site for MercurialEclipse is available at this URL:
http://cbes.javaforge.com/update
Import the rawtherapee mercurial repository:
"File > new > other > mercurial > Clone existing repository"
Enter this URL:
https://rawtherapee.googlecode.com/hg
Create and enter a new empty folder outside RawTherapee's source directory.
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>
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,
2. in "Project > properties > C/C++ Make Project > Build (incremental
build)" change 'all' to 'install'.
OS X
----
Requirements:
- 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 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:
- 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 <path to source directory>
OR to disable OpenMP and use the default compiler, type:
cmake -D OPTION_OMP=false <path to source directory>
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>

View File

@@ -1,58 +1,38 @@
RAWTHERAPEE 4.0.7 RELEASE NOTES
RAWTHERAPEE 4.0.9 RELEASE NOTES
-------------------------------
NEW FEATURES
------------
- Support for Adobe LCP lens correction profiles
- Program plugger for Windows, to automatically find and be able to
open right-clicked photos with popular photography programs.
- Support of Dual illuminant DCP profiles
- Support for new cameras in addition to those already supported by dcraw:
- Nikon D800
- Canon EOS 5D Mark III
- New camera DCP profiles:
- Nikon D5100
- Nikon D7000
Most commits focused on squashing bugs and speeding up processing.
CAVEATS
-------
- Risk of PP3 data loss - beware when running multiple RT versions
RawTherapee cleans up obsolete or invalid tags from active PP3 files. This process is run in three situations:
1- When you affect the PP3 file in any way, e.g. by tagging a photo,
2- When you select another folder in the File Browser tab
3- When you exit RawTherapee (equivalent to leaving the open album)
This means that a more recent version of RawTherapee will delete obsolete tags which may have been used by an older version, and vice versa - if you use an old version of RawTherapee to browse photos edited with a newer version, it will delete the tags introduced in the new version. This issue is being worked on, and future versions of RawTherapee will support XMP sidecar files with concurrent embedded profile versions.
http://code.google.com/p/rawtherapee/issues/detail?id=1335
- Memory requirements
Please read http://rawtherapee.com/blog/maximizing-memory-efficiency
- Differences between the preview and the output image
The color-managed preview in RawTherapee is (and has always been) based on image data in the Working Space profile. Although the actual preview is rendered using a monitor profile (or sRGB profile, if the monitor profile is not specified), it does not reflect the Output Profile & Output Gamma settings. This can lead to a slightly different output rendering when Working Space profile and Output Space profiles are not the same. A workaround is to set them to the same values to ensure the preview accurately reflects the final rendered output.
For generic use in an sRGB workflow when the output target is web-based image display, it is recommended to use the default values of the Color/ICM toolset (Working Profile = sRGB, Output Profile = RT_sRGB).
Future releases of RawTherapee are planned to support a more comprehensive color-managed preview that will allow proofing with accurate visualization of the final output render based not only on the working space and monitor profiles, but also on the user-selected Output Profile and Output Gamma.
- Auto Levels behavior has changed
The new algorithm drives the following parameters:
Exposure compensation,
Highlight recovery amount & threshold,
Black level & shadow compression,
RGB brightness,
RGB contrast.
The profiles supplied with RawTherapee were changed to be compatible with the new Auto Levels logic, as in older profiles RGB contrast and brightness were preset to a fixed value. Old Tuned-# profiles have been removed.
- The new Exposure Compensation tag in thumbnail captions and in the file browser filter requires clearing of Rawtherapee's thumbnail cache (see Preferences > File Browser). If the thumbnail cache is not cleared, exposure compensation values will not be displayed in captions or recognized in filtering *for previously browsed images only*.
NEW FEATURES
------------
- New RGB curves,
- New white balance presets for specific spectra,
- New preview modes: red, green, blue, luminosity and Focus Mask (see which areas are in focus),
- New Export Panel with Fast Export Options,
- DCRAW updated to 9.12
Support added for these cameras:
Canon PowerShot S100
Fujifilm X10
Leica V-Lux 3
Nikon 1
Panasonic DMC-FZ4
Panasonic DMC-GX1
Samsung NX
Samsung NX200
Sony NEX-7
- Enhanced color matrices and RT-specific input ICC profiles for the following cameras:
Canon EOS 5D
Canon PowerShot G10
Nikon D3100
- Additional crop ratios,
- Additional output ICC profiles,
- 1-click neutral setting for exposure values,
- Exposure Compensation thumbnail caption and filter option in the file browser metadata filter,
- Automatic display of this RELEASE_NOTES.txt file on the first run after a RawTherapee upgrade (e.g. 4.0.6 > 4.0.7)
DOCUMENTATION
-------------
@@ -78,394 +58,218 @@ REVISION HISTORY
The complete change log is available at
http://code.google.com/p/rawtherapee/source/list
Changes since version 4.0.6:
changeset: 1757:0d7bf6ba4a29
tag: tip
user: Hombre
date: Tue Jan 31 00:46:04 2012 +0100
description: Updated french strings and ben_pcc added to the Authors
list (without his complete name as requested)
changeset: 1756:70397c2dea1c
user: Michael Ezra
date: Mon Jan 30 08:19:06 2012 -0500
description: Fixing spelling errors in the release notes
changeset: 1755:4dc3126bca36
user: Michael Ezra
date: Sun Jan 29 16:25:27 2012 -0500
description: Changes to ICM panel tooltips (see issue 1220)
changeset: 1754:6345b81b1d3d
user: Michael Ezra
date: Sun Jan 29 16:15:26 2012 -0500
description: New feature: Export panel with Fast Export options.
Fast Export options provide overrides to bypass time and
resource consuming development settings and to run queue
processing using the fast export settings instead. This
method is recommended for quicker generation of lower
resolution images when speed is a priority or when resized
output is desired for one or many images without making
modifications to their saved development parameters.
changeset: 1753:295cdd4f2329
user: Michael Ezra
date: Sun Jan 29 10:58:49 2012 -0500
description: Fix for correctly reflecting Input Profile option in the UI.
If auto-matched camera-specific ICC profile is not found
Editor UI falls back to reflect "Camera standard" option.
changeset: 1752:68c38e327c03
user: Michael Ezra
date: Fri Jan 27 11:18:10 2012 -0500
description: Monospace formatting for license and release notes in the
splash screen.
changeset: 1751:fc727c21dbb3
user: Michael Ezra
date: Thu Jan 26 21:57:23 2012 -0500
description: Renaming Caveats to Release Notes, adding text margins to
the splash screen
changeset: 1749:1782f47ae9c9
user: Hombre
date: Wed Jan 25 23:14:59 2012 +0100
description: CAVEATS file now word-wrapped in the Text area.
changeset: 1748:d4a2ae08dad5
user: DrSlony
date: Tue Jan 24 20:53:13 2012 +0000
description: Fixed a problem where the CAVEATS.txt file was not copied
into the compiled dir in Linux. Wrong capitalization in
CMakeLists.txt. Issue 1206
changeset: 1746:f0dd4ae23d76
user: Michael Ezra
date: Wed Jan 25 22:47:18 2012 -0500
description: Renaming profile Tuned-1 to Highkey-1
changeset: 1745:78318196e0de
user: Hombre
date: Wed Jan 18 00:20:19 2012 +0100
description: Solving issue 1206: "Caveats file handling". May also solve
issue 1089: "About RT: version window disappears". This
patch also cleanup the Gamma tool a little bite. The
CAVEATS.txt is optional and may be deleted in future
release.
changeset: 1743:f55d097357ec
user: Hombre
date: Mon Jan 16 02:16:09 2012 +0100
description: Fix a bug in the Adjuster class that were causing system
Beep when reaching the limits, or at each move when the
limits where below 1.0 (like for Distortion). Also fix the
bug of the too small spin button (displaying not enough
digits).
changeset: 1741:a51f811a74a9
user: MichaelEzra
date: Sun Jan 15 15:54:24 2012 -0500
description: Preview modes (RGBLF) - adding icons and code optimization
changeset: 1740:357fb2cd4855
user: Philippe Hupe
date: Sun Jan 15 21:11:09 2012 +0100
description: gtk-paste and gtk-copy icons were missing for both Dark and
Light theme. They have been added.
changeset: 1739:0f2d5a79b325
user: jdc
date: Sun Jan 15 18:36:20 2012 +0100
description: little correction for tags Output profiles
changeset: 1738:51f334300825
user: jdc
date: Sun Jan 15 18:32:37 2012 +0100
description: modification of LUT of Output-profiles Output-gamma
Free-Gamma, suppression of discontinuity
changeset: 1737:82d31eab71b1
user: DrSlony
date: Sat Jan 14 03:22:07 2012 +0000
description: Updated Polish translations
changeset: 1736:2be56e1f68e1
user: DrSlony
date: Sat Jan 14 03:20:03 2012 +0000
description: Modified the generateTranslationDiffs.sh file, runs ~34%
faster
changeset: 1735:43ae4752ef6e
user: Hombre
date: Fri Jan 13 00:33:40 2012 +0100
description: Updated french strings + added localisation for the "RGB
Curves" tool
changeset: 1734:abfe22ba9400
user: Hombre
date: Wed Jan 11 02:06:23 2012 +0100
description: Solving issue 1001: "Auto WB is saved as Custom in profile
files" and 929: "Crash on image open with WB method = Auto"
with a different workaround
changeset: 1733:03d19f04768d
user: Hombre
date: Wed Jan 11 01:50:10 2012 +0100
description: Solving issue 1196: "Strange blown highlights with control
cage tone curve in 32 bit release builds"
changeset: 1732:d25652ca80b3
user: DrSlony
date: Sun Jan 08 18:29:38 2012 +0000
description: Set InputProfile=(CameraICC), WorkingProfile=sRGB,
OutputProfile=RT_sRGB, GammaValue=2.22 and GammaSlope=4.5
in all pp3 files.
changeset: 1731:6e231b0019ee
user: DrSlony
date: Sun Jan 08 17:35:33 2012 +0000
description: Code cleanup: size() vs empty(), possible memleaks,
initialization list order. On behalf of lebedev.ri, see
issue 1195
changeset: 1730:d91fe5efdbb2
user: DrSlony
date: Mon Jan 02 15:00:48 2012 +0000
description: Code cleanup: removal of unnessesary backslashes, committed
on behalf of lebedev.ri, issue 1162
changeset: 1729:d267c081df9d
user: DrSlony
date: Mon Jan 02 13:53:27 2012 +0000
description: Updated German translation on behalf of maweso, issue 1164
changeset: 1728:d14be2436fef
user: DrSlony
date: Mon Jan 02 13:44:44 2012 +0000
description: Updated Czech translation on behalf of mkyral, issue 1180
changeset: 1727:1620adfa76ca
user: Michael Ezra
date: Mon Jan 02 00:10:55 2012 -0500
description: Focus Mask (beta) and shortcuts for preview modes (issue
1172)
Preview Red channel: r
Preview Blue channel: b
Preview Green channel: g
Preview Luminosity: v
Preview Focus Mask: Shift-F
Before-After: changed to Shift-B
changeset: 1726:513c6326fcdc
user: Oliver Duis
date: Sun Jan 01 20:37:34 2012 +0100
description: New camera color profiles: Canon 5D, G10, Nikon D3100;
DCRAW cleanups
see issue 1186
changeset: 1725:2c1afe0fd883
user: Oliver Duis
date: Fri Dec 30 11:57:11 2011 +0100
description: Update to DCRAW 9.12, adding new cameras
see issue 1179
changeset: 1724:d14df629a92d
user: DrSlony
date: Wed Dec 28 19:05:15 2011 +0000
description: Set all tools to SET by default in Preferences - Batch
Processing, issue 1154
changeset: 1723:264a8634e1b3
user: Hombre
date: Wed Dec 28 12:23:56 2011 +0100
description: Solving issue 1096: "Infinite loop when switching to
before/after view"
changeset: 1722:449d8192217c
user: DrSlony
date: Tue Dec 27 20:00:47 2011 +0000
description: Updated Nederlands translation on behalf of Paul
Matthijsse, issue 1129, and ran generateTranslationDiffs
changeset: 1721:8478428eeb2e
user: Hombre
date: Mon Dec 26 14:24:33 2011 +0100
description: Solving issue 1175: "Pls add the [Nikon's] file extension
nrw to the "Parsed Extensions" list by default".
changeset: 1720:0c4018b036a8
user: jdc
date: Mon Dec 26 06:18:19 2011 +0100
description: Change with ICC files
changeset: 1719:eb5b9a526b93
user: jdc
date: Sun Dec 25 09:11:26 2011 +0100
description: suppress RT_Middle_gsRGB.icc
changeset: 1716:d6976838a524
user: jdc
date: Sun Dec 25 07:57:59 2011 +0100
description: New Output Profiles see #issue1166
changeset: 1713:8ed4c2edc88f
user: MichaelEzra
date: Sat Dec 24 12:12:01 2011 -0500
description: Fix for typo in comment
changeset: 1711:d3d4f7b28576
user: MichaelEzra
date: Sat Dec 24 12:04:22 2011 -0500
description: Preview modes: R,B,G channels and Luminosity (issue 1167)
changeset: 1709:f3eea179e4de
user: Hombre
date: Sat Dec 24 15:57:48 2011 +0100
description: Adding 2 lines forgotten in the previous WB patch: the LED
profiles wasn't applied.
changeset: 1707:136288db1b0b
user: DrSlony
date: Mon Dec 19 20:48:54 2011 +0000
description: Re-tagging 4.0.6, hopefully fixing the screwed up tag and
aligning the latesttagdistance back with what it should be
changeset: 1705:40958891b202
user: MichaelEzra
date: Sun Dec 18 19:12:47 2011 -0500
description: Neutral Levels & tooltips (issue 1161)
changeset: 1703:dca21e324066
user: MichaelEzra
date: Sat Dec 17 12:14:44 2011 -0500
description: Major rework of headers inclusion style Part2 on behalf of
lebedev.ri (issue 1079)
changeset: 1701:bc56188f39df
user: MichaelEzra
date: Sat Dec 17 12:08:57 2011 -0500
description: Major rework of headers inclusion style on behalf of
lebedev.ri (issue 1079)
changeset: 1699:d40209c8298b
user: Emil Martinec
date: Fri Dec 16 11:25:46 2011 -0600
description: Bugfix :) for flat field correction bugfix :(
changeset: 1697:1a4d9d0f95fb
user: Hombre
date: Fri Dec 16 01:37:22 2011 +0100
description: Patch from issue 1131: "Predefined White Balance values".
changeset: 1695:29639856f89a
user: DrSlony
date: Thu Dec 15 23:05:19 2011 +0000
description: Removed rtstart reference from CMakeLists.txt, see issue
1160
changeset: 1693:0afb790abada
user: Emil Martinec
date: Thu Dec 15 09:43:22 2011 -0600
description: Implementing RGB curves.
changeset: 1691:218eac5d3a3b
user: Emil Martinec
date: Wed Dec 14 15:10:00 2011 -0600
description: Bugfix for flatfield correction tool.
changeset: 1689:f08ce67af335
user: Michael Ezra
date: Mon Dec 12 15:58:20 2011 -0500
description: Crop ratios: new values, code optimization (issue 1153)
changeset: 1687:2bfb4b5255a7
user: Michael Ezra
date: Fri Dec 09 21:17:37 2011 -0500
description: Thumbnail Exif string: append exposure compensation (see
issue 1150)
In order for this option to work on previously browsed
thumbs the cache must be cleared.
(Please be sure to add to the build release notes)
changeset: 1685:78fee2fd065b
user: Philippe Hupe
date: Wed Dec 07 20:45:06 2011 +0100
description: lock-off.png and lock-on.png icon were trimmed, the header
height has been increased from 15 to 17 (issue 1116)
changeset: 1683:69b8bd8bb944
user: MichaelEzra
date: Tue Dec 06 19:33:37 2011 -0500
description: File browser filter: Exposure Compensation (see issue 1003)
In order to use this new filter with previously browsed
thumbnails there are 2 options:
Option 1. Global fix: clear cache/data folder
Option 2. Local Fix: select thumbs, right click, Cache
/Clear from cache - partial
reload folder in file browser
changeset: 1681:c7337c4732d3
user: DrSlony
date: Sun Dec 04 10:40:24 2011 +0000
description: Updated Japanese translation on behalf of a3novy, issue 1145
changeset: 1678:eda4134c4a2b
user: Hombre
date: Sat Dec 03 19:10:34 2011 +0100
description: Solving issue 1084 (please confirm): "White rectangles
appear in the final image file". See also issue 1112,
comment 150.
changeset: 1676:643dcde3c0a2
user: DrSlony
date: Thu Dec 01 00:53:19 2011 +0000
description: - language file changes,
- profile changes,
- tagged 4.0.6 (tag was lost)
- line endings normalized to CR+LF in language files and
postprocessing profiles
- fixed capitalization of "raw"
- patched generateTranslationDiffs.sh to properly sort
numbered entries, e.g. 113 should be after 11 and 12, not
between. Small change - now comments appear before the
"!!!!!" section. Not worth worrying about imho. Also used
sort's -unique capabilities to not unnecessarily spawn
another process. See
http://code.google.com/p/rawtherapee/source/detail?r=71bb39a
b934e2e8654b35c1e36dcc1a572a26f03
changeset: 1667:112fc99c7186
user: Emil Martinec
date: Wed Nov 30 15:06:33 2011 -0600
description: More fixes
changeset: 1653:5fc887f050d5
user: DrSlony
date: Tue Nov 29 20:06:42 2011 +0000
description: Changed OutputProfile from 'No ICM: sRGB output' to
'RT_sRGB'. Issue 1102, comments 34 onwards.
changeset: 1652:286a06753099
user: MichaelEzra
date: Mon Nov 28 21:40:22 2011 -0500
description: Small fix to partialpaste/tone mapper
changeset: 1651:0032d73774a1
user: DrSlony
date: Tue Nov 29 00:42:56 2011 +0000
description: Updated default and Polish translations with missing
HISTORY_MSG_162, and updated all profiles to
AppVersion=4.0.6
changeset: 1650:c13a0b4316f5
user: DrSlony
date: Mon Nov 28 23:50:28 2011 +0000
description: Added tag 4.0.6 for changeset 71bb39ab934e
changeset: 1649:71bb39ab934e
tag: 4.0.6
user: DrSlony
date: Mon Nov 28 23:49:05 2011 +0000
description: Removed WindowsEnvironmentSetup.html Issue 1112 comments
125 onwards.
CHANGELOG for 4.0.9
-------------------
 DATE | CHANGESET | COMMITTER
 --------------|---------------|-------------------------------------
> 2012-06-03 | 599d1e925de0 | Hombre
 Updated French strings
> 2012-06-03 | 2be4bff3f09b | DrSlony
 Updated PDF manual to 4.0.9
> 2012-06-03 | 687bf6272b3a | DrSlony
 One more markup fix, this one's in the file deletion dialog,
 rtgui/filecatalog.cc +724-5
> 2012-06-03 | 7660fe581dee | DrSlony
 Final update and consistency check of language files and processing
 profiles for 4.0.9
> 2012-06-03 | cc280dac0c73 | DrSlony
 Added markup to popups when default raw and non-raw profiles are not
 found
> 2012-06-03 | f64a4ff5432f | DrSlony
 Fixes markup in Load/save/copy/paste Profile button tooltips, issue
 1388
> 2012-06-02 | 99de92c3b1f5 | DrSlony
 Absolute paste of rotation value when using partial paste, issue
 1386 committed on behalf of Dr.Hombre
> 2012-06-02 | dbf84afb54af | Hombre
 Solving issue 872: "RT file-open/save windows should remember last
 used dir", on behalf of Johannes Wienke
> 2012-06-02 | df7d6e0cee30 | Hombre
 Patch from issue 1384: "Speedup enhancement of the thumbnails'
 browser"
> 2012-06-01 | 758d8788f668 | Gyurkó M. 'Dualon' Dávid
 Updated Hungarian translation: enabling it + some minor
 enhancements.
> 2012-06-01 | f83f1f2d4d11 | Gyurkó M. 'Dualon' Dávid
 Update of Hungarian translation.
> 2012-06-01 | f34c9eaf01d9 | DrSlony
 Updated the default language file and merged in the corrections,
 then ran generateTranslationDiffs to get the English file and ran
 both through unix2dos to unify line endings. Issue 920
> 2012-05-31 | 9388f97ec767 | DrSlony
 Committed Dutch language file on behalf of Willem Termeer and Paul
 Matthijsse, issue 1367
> 2012-05-31 | fdaf908f66a8 | Oliver Duis
 LCP engine v3 see issue 1375
> 2012-05-29 | 28e942b60ba2 | Joker
 Updated Sony EXIF metadata (added new lenses)
> 2012-05-28 | 15d96aaa0ed2 | Oliver Duis
 Base color profiles for Nikon D800 and Canon 5D Mark III see issue
 1378
> 2012-05-28 | 9404032dd479 | Philip Rinn
 Unify generation of AboutThisBuild.txt and rtgui/version.h. See
 issue 1377.
> 2012-05-26 | fe160aa7d0a6 | Michael Ezra
 Fix for crash when using "Auto distortion correction" (on behalf of
 lebedev, see issue 1338)
> 2012-05-25 | 94c0419149e1 | Hombre
 Solving bug reported in issue 1341: "PP3 file cleanup"
 ...application's crash if the default raw or image profile didn't
 exist
> 2012-05-23 | ea7275d3e647 | Oliver Duis
 LCP engine v2 see issue 1343
> 2012-05-20 | 506dd02c3789 | Michael Ezra
 Enhancement: Placement of buttons below the curves (on behalf of
 Wolfgang) see issue 227 (# 47)
> 2012-05-18 | be1e798c7530 | Oliver Duis
 DCP profile for Nikon D5100 thanks Glacort!
> 2012-05-18 | c52ab1597ab4 | Oliver Duis
 Fixed compilation issues on Ubuntu Linux see issue 1343
> 2012-05-18 | 9c4e2b7c4273 | Oliver Duis
 Two files missing from last commit
> 2012-05-17 | 0a86d2537c55 | Oliver Duis
 LCP (Lens Correction Profile) support see issue 1343
> 2012-05-17 | 6a0b40e2223f | Oliver Duis
 Removed warning for external program support see issue 1365
> 2012-05-14 | b30fcbdfaa69 | DrSlony
 Updated the RELEASE_NOTES.txt
> 2012-05-14 | 6115629f57e4 | Hombre
 Solving issue 607: Auto Crop disabled if Auto Fill off
> 2012-05-12 | a42648a2f87f | Michael Ezra
 Enhancements: parsing for Leaf exif data & Phase One orientation;
 Fix for Time in reading exif:DateTimeOriginal - REQUIRES CLEARING
 CACHE to take an effect on images prviously viewed in RT;
- on behalf of Torger (issue 766)
> 2012-05-08 | 9925deee5045 | Emil Martinec
 Minor bugfix for AutoExposure
> 2012-05-06 | 099cdb136980 | Oliver Duis
 Backed out changeset: 159f9e7014f8
> 2012-05-06 | 159f9e7014f8 | Oliver Duis
 Code cleanups on behalf of Lebedev, see issue 1355
> 2012-05-05 | eea2f14d863f | Emil Martinec
 Bugfix for autoexposure on blackframes.
> 2012-05-05 | 957c5df1ac24 | Michael Ezra
 Fix for thumbnail rotation for Leaf, Mamiya and Phase One (Thanks
 Torger!); issue 766
> 2012-05-04 | d22bf9288e6c | DrSlony
 Updates and fixes to benchmarkRT
> 2012-05-02 | 8f7f3036f427 | Oliver Duis
 Fix for Canon 5D Mark III on behalf Lebedev, issue 1347
> 2012-05-01 | bfffc520de3e | DrSlony
 PP3 files updated (full) and changes to options.cc, issue 1341
> 2012-04-29 | 08ef56d5b65d | DrSlony
 Updated Czech language file on behalf of mkyral, issue 1344.
> 2012-04-29 | 207d8d272a91 | DrSlony
 Updated German language file on behalf of maweso, issue 1348.
> 2012-04-26 | 62cefcb38a24 | Oliver Duis
 Nikon D7000 camera color profile in DCP format
> 2012-04-23 | c13a7add87ba | Oliver Duis
 DCP dual illuminant support see issue 1336
> 2012-04-22 | 4ee4f75e86ac | Oliver Duis
 Code cleanups on behalf of Lebedev, see issue 1332
> 2012-04-21 | 8a8a15242c21 | Hombre
 The "Blend" HL recovery method was not remembered when modified in
 the Batch Tool Panel editor
> 2012-04-21 | cc18bd2e902b | Oliver Duis
 Fixed Leaf .mos files wrong orientation and colors on behalf of
 Torger, see issue 1327
> 2012-04-21 | 2b0fe3871615 | Oliver Duis
 ICC camera and output profile speedups, cleanup see issue 1329
> 2012-04-20 | 704069c8877c | Oliver Duis
 Fixed compilation on 32bit Windows, cleanups see issue 1333
> 2012-04-19 | 2db6dae32b17 | Oliver Duis
 Fixed auto profile detection in some cases see issue 1312
> 2012-04-16 | ca7c7f52ff04 | Oliver Duis
 Forgot to commit the added files (sorry)
> 2012-04-16 | 9cab197f142f | Oliver Duis
 External programs plugger see issue 1323
> 2012-04-16 | 8e448d936bd7 | Oliver Duis
 Fixed BitsPerSample tag in TIFF output header see issue 1311
> 2012-04-14 | 545f45f0e12b | Jacques Desmis
 Fix bug output gamma
> 2012-04-13 | 0a2016c66e5b | Oliver Duis
 Fixed NoICM would generate incompatible output image see issue 1320
> 2012-04-10 | 5569030d30b2 | Oliver Duis
 Fixed two crashes in DCP color engine see issue 1317
> 2012-04-09 | 2493dd00b9f3 | Emil Martinec
 Code cleanup for min/max functions. Committed on behalf of
 lebedev.ri (thanks!).
> 2012-04-07 | 952a99e79816 | Oliver Duis
 Fixed auto DCP detection did not work with some camera makers see
 issue 1312
> 2012-04-07 | 766e816228fc | Oliver Duis
 Performance improvements, espc. using monitor profiles see issue
 1310
> 2012-04-04 | 273d4edbff73 | Oliver Duis
 Updated Japanese translation on behalf of a3novy, see issue 1302
> 2012-04-03 | 03d965613b60 | Michael Ezra
 Fixes for packahed profiles. Addition of neutral-UnchangedTransforms
 profile.
> 2012-04-03 | be07005cd8ac | Oliver Duis
 Added renamed color profiles (US specific name)
> 2012-04-02 | 08422f013749 | DrSlony
 Added tag 4.0.8 for changeset 4072ea5c0abd
> 2012-04-02 | 4072ea5c0abd | DrSlony
 RELEASE_NOTES.txt for RawTherapee-4.0.8

41
clean
View File

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

View File

@@ -1,17 +1,27 @@
del CMakeCache.txt
del install_manifest.txt
del ./CMakeFiles
del ./rtengine/CMakeFiles
rm -R ./rtexif/CMakeFiles
rm -R ./rtgui/CMakeFiles
rm ./cmake*
rm ./rtengine/cmake*
rm ./rtexif/cmake*
rm ./rtgui/cmake*
rm ./Makefile
rm ./rtengine/Makefile
rm ./rtexif/Makefile
rm ./rtgui/Makefile
rm ./rtengine/librtengine.so
rm ./rtgui/rth
rm ./rtexif/librtexif.a
@echo off
del .\CMakeCache.txt
del .\install_manifest.txt
rmdir /s /q .\CMakeFiles
rmdir /s /q .\rtengine\CMakeFiles
rmdir /s /q .\rtexif\CMakeFiles
rmdir /s /q .\rtgui\CMakeFiles
rmdir /s /q .\rtdata\CMakeFiles
del .\cmake_*
del .\rtengine\cmake_*
del .\rtexif\cmake_*
del .\rtgui\cmake_*
del .\rtdata\cmake_*
del .\Makefile
del .\rtengine\Makefile
del .\rtexif\Makefile
del .\rtgui\Makefile
del .\rtdata\Makefile
del .\rtengine\librtengine.so
del .\rtengine\librtengine.a
del .\rtgui\rawtherapee
del .\rtexif\librtexif.so
del .\rtexif\librtexif.a

View File

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

Binary file not shown.

81
doc/manpage/rawtherapee.1 Normal file
View File

@@ -0,0 +1,81 @@
.TH RAWTHERAPEE 1 "June 14, 2012"
.SH NAME
rawtherapee \- Free RAW converter and digital photo processing software
.SH SYNOPSIS
\fBrawtherapee\fP [directory|image\-file]
.br
\fBrawtherapee\fP [\-o|\-O <output>] [\-s|\-S] [\-p <file>] [\-d]
[\-j<1\-100>|\-t|\-t1|\-n] [\-Y] \-c <input>
.SH DESCRIPTION
\fBRawTherapee\fP is used to adjust some of the most often changed parameters
when optimizing digital images. A normal user often just wants to adjust the
white balance or brightness of a photo he took. Instead of using a big and
expensive image editor you could use a small and fast (specialized) tool like
\fBRawTherapee\fP.
.br
More and more cameras also support RAW formats. RAW files usually offer higher
color depth than JPGs (JPG is limited to 8 Bit per color). So the adjustments are
done with the high color depth and then afterwards converted to or saved as JPGs.
RawTherapee supports JPG (8 bit), PNG (8 or 16 bit) and TIFF (8 or 16 bit). All
image processing is done in 16 bit/channel mode.
.br
Different to other RAW converters it can use EAHD as demosaicing algorithm. The
RAW loading engine of \fBRawTherapee\fP is based on dcraw.
.SH OPTIONS
.TP
\-o <outputFile>|<outputDir>
select output directory
.TP
\-O <outputFile>|<outputDir>
select output dir and copy pp3 file into it
.TP
\-s
include the pp3 file next to the input file (with same name) to build the image's
parameters, eg: for IMG001.NEF there should be IMG001.NEF.pp3 in the same dir if
absent use default
.TP
\-S
like \-s but skip if pp3 file not found
.TP
\-p
specify pp3 file to be used for all conversions. You can specify as many \-p
options as you like (see note below)
.TP
\-d
use the default RAW or Image pp3 file to build the image's parameters
.TP
\-j<1\-100>
specify output to be jpeg (default)
.TP
\-t
specify output to be uncompressed tiff
.TP
\-t1
specify output to be compressed tiff.
.TP
\-n
specify output to be png.
.TP
\-Y
overwrite output if present.
.P
.B Note:
.br
Your pp3 files can be incomplete, \fBRawTherapee\fP will set the values like that:
the pp3 file is built with internal default values; then overridden by those
found in the default RAW or Image pp3 file (if \-d has been set); then overridden
by those found in the pp3 files provided by \-p, each one overriding the previous
values; then overridden by the sidecar file if \-s is set and if the file exists;
the time where the sidecar file is used depend of the position of the \-s switch
in the command line regarding to the \-p parameters
(e.g. "\-p first.pp3 \-p second.pp3 -s \-p fourth.pp3").
.SH SEE ALSO
the included help
.br
http://www.rawtherapee.com
.SH AUTHOR
\fBRawTherapee\fP was written by Gabor Horvath and others.
.PP
This manual page was written by Philip Rinn <rinni@gmx.net>.

View File

@@ -4,6 +4,7 @@ file (GLOB LANGUAGEFILES "languages/*")
file (GLOB SOUNDFILES "sounds/*")
file (GLOB INPUTICCFILES "iccprofiles/input/*")
file (GLOB OUTPUTICCFILES "iccprofiles/output/*")
file (GLOB DCPFILES "dcpprofiles/*")
# THEMEDIR includes subfolders for image resources for some themes; doing the normal glob won't work.
set (THEMEDIR "themes")
set (IMAGESDIR "images")
@@ -16,15 +17,25 @@ else (WIN32)
set(OPTIONSFILE "options/options.lin")
endif (WIN32)
if (UNIX)
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/icons/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop")
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR})
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi16-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi24-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi32-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi48-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi128-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi256-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png)
endif (UNIX)
install (FILES ${IMAGEFILES} DESTINATION ${DATADIR}/images)
install (FILES ${LANGUAGEFILES} DESTINATION ${DATADIR}/languages)
install (FILES ${PROFILEFILES} DESTINATION ${DATADIR}/profiles)
install (FILES ${SOUNDFILES} DESTINATION ${DATADIR}/sounds)
install (FILES ${INPUTICCFILES} DESTINATION ${DATADIR}/iccprofiles/input)
install (FILES ${OUTPUTICCFILES} DESTINATION ${DATADIR}/iccprofiles/output)
install (DIRECTORY ${THEMEDIR} DESTINATION ${DATADIR})
install (DIRECTORY ${IMAGESDIR} DESTINATION ${DATADIR} FILES_MATCHING PATTERN "index.theme")
install (DIRECTORY ${IMAGESDIR} DESTINATION ${DATADIR} FILES_MATCHING PATTERN "*.png")
install (FILES ${OPTIONSFILE} DESTINATION ${DATADIR} PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME options)
install (FILES ${IMAGEFILES} DESTINATION "${DATADIR}/images")
install (FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages")
install (FILES ${PROFILEFILES} DESTINATION "${DATADIR}/profiles")
install (FILES ${SOUNDFILES} DESTINATION "${DATADIR}/sounds")
install (FILES ${INPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/input")
install (FILES ${OUTPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/output")
install (FILES ${DCPFILES} DESTINATION "${DATADIR}/dcpprofiles")
install (DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}")
install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "index.theme")
install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.png")
install (FILES ${OPTIONSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME options)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More