135 lines
5.7 KiB
CMake
135 lines
5.7 KiB
CMake
cmake_minimum_required(VERSION 2.6)
|
|
|
|
set (CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel.")
|
|
|
|
if (APPLE)
|
|
# SET (CMAKE_OSX_ARCHITECTURES "i386;x86_64;" )
|
|
# SET (CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "i386;x86_64;" )
|
|
SET (CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk")
|
|
SET (CMAKE_OSX_DEPLOYMENT_TARGET "10.5")
|
|
endif (APPLE)
|
|
|
|
option (BUILD_SHARED "Build rawtherapee with shared libraries" OFF)
|
|
option (WITH_RAWZOR "Build with Rawzor support" OFF)
|
|
option (OPTION_OMP "Build with OpenMP support" ON)
|
|
|
|
# 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 (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)
|
|
endif (NOT DEFINED BINDIR)
|
|
|
|
if (NOT DEFINED LIBDIR)
|
|
if (WIN32 OR APPLE)
|
|
set (LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/release)
|
|
else (WIN32 OR APPLE)
|
|
set (LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
|
|
endif (WIN32 OR APPLE)
|
|
endif (NOT DEFINED LIBDIR)
|
|
|
|
# check for libraries
|
|
find_package(PkgConfig)
|
|
pkg_check_modules (GTK REQUIRED gtk+-2.0>=2.12)
|
|
pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.16)
|
|
pkg_check_modules (GLIBMM REQUIRED glibmm-2.4>=2.16)
|
|
pkg_check_modules (GTKMM REQUIRED gtkmm-2.4>=2.12)
|
|
pkg_check_modules (GIO REQUIRED gio-2.0>=2.16)
|
|
pkg_check_modules (GIOMM REQUIRED giomm-2.4>=2.12)
|
|
pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.16)
|
|
pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.16)
|
|
pkg_check_modules (SIGC REQUIRED sigc++-2.0)
|
|
# NOTE: dependencies should be handled by pkg_check_modules and FIND_PACKAGE
|
|
# on windows too but I don't want to break current build chain
|
|
if (WIN32)
|
|
set (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/lib")
|
|
set (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/winclude")
|
|
set (EXTRA_LIB "ws2_32")
|
|
set (IPTCDATA_LIBRARIES iptcdata)
|
|
set (LCMS_LIBRARIES liblcms.a)
|
|
set (JPEG_LIBRARIES libjpeg.a)
|
|
set (PNG_LIBRARIES libpng.a)
|
|
set (TIFF_LIBRARIES libtiff.a)
|
|
set (ZLIB_LIBRARIES libz.a)
|
|
else (WIN32)
|
|
pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
|
|
pkg_check_modules (LCMS REQUIRED lcms)
|
|
find_package (JPEG REQUIRED)
|
|
find_package (PNG REQUIRED)
|
|
find_package (TIFF REQUIRED)
|
|
find_package (ZLIB REQUIRED)
|
|
endif (WIN32)
|
|
|
|
# link rawzor
|
|
if (WITH_RAWZOR)
|
|
if (WIN32)
|
|
set (EXTRA_INCDIR ${EXTRA_INCDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_win")
|
|
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_win")
|
|
set (EXTRA_LIB ${EXTRA_LIB} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_win/rwz_sdk_s.a")
|
|
add_definitions (-DRAWZOR_SUPPORT)
|
|
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor_win/rwz_sdk_s.dll DESTINATION ${BINDIR}
|
|
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
|
|
elseif (APPLE)
|
|
set (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_mac")
|
|
set (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_mac")
|
|
set (EXTRA_LIB "-lrwz_sdk_64")
|
|
add_definitions (-DRAWZOR_SUPPORT)
|
|
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor_mac/librwz_sdk_64.dylib DESTINATION ${BINDIR}
|
|
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk_64.dylib)
|
|
if (BUILD_SHARED)
|
|
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor_mac/librwz_sdk_64.dylib DESTINATION ${LIBDIR}
|
|
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk_64.dylib)
|
|
endif (BUILD_SHARED)
|
|
else (WIN32)
|
|
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
set (EXTRA_INCDIR ${EXTRA_INCDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin32")
|
|
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin32")
|
|
set (EXTRA_LIB ${EXTRA_LIB} "-lrwz_sdk")
|
|
add_definitions (-DRAWZOR_SUPPORT)
|
|
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin32/librwz_sdk.so DESTINATION ${BINDIR}
|
|
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk.so)
|
|
if (BUILD_SHARED)
|
|
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)
|
|
endif (BUILD_SHARED)
|
|
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
set (EXTRA_INCDIR ${EXTRA_INCDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin64")
|
|
set (EXTRA_LIBDIR ${EXTRA_LIBDIR} "${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin64")
|
|
set (EXTRA_LIB ${EXTRA_LIB} "-lrwz_sdk")
|
|
add_definitions (-DRAWZOR_SUPPORT)
|
|
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rawzor_lin64/librwz_sdk.so DESTINATION ${BINDIR}
|
|
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME rwz_sdk.so)
|
|
if (BUILD_SHARED)
|
|
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 (BUILD_SHARED)
|
|
endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
endif (WIN32)
|
|
endif (WITH_RAWZOR)
|
|
|
|
if (OPTION_OMP)
|
|
find_package(OpenMP)
|
|
if (OPENMP_FOUND)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
|
endif (OPENMP_FOUND)
|
|
endif (OPTION_OMP)
|
|
|
|
if (UNIX)
|
|
install (PROGRAMS rtstart DESTINATION ${BINDIR})
|
|
endif (UNIX)
|
|
|
|
add_subdirectory (rtexif)
|
|
add_subdirectory (rtengine)
|
|
add_subdirectory (rtgui)
|
|
add_subdirectory (rtdata)
|