diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c3879e..a78b993 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED (VERSION 2.6.2) +CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) PROJECT (OpenICC) @@ -35,6 +35,16 @@ SET( REVERSE_DOMAIN org.openicc ) SET( ${PROJECT_NAME}_VERSION_MAJORMINOR "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}" ) +include(GNUInstallDirs) + +option(ENABLE_TESTS "Build tests (requires static libs)" ON) +option(ENABLE_TOOLS "Build tools (currently openicc-device)" ON) +option(ENABLE_STATIC_LIBS "Build static libs" ON) + +IF( ENABLE_TESTS ) + SET(ENABLE_STATIC_LIBS ON) +ENDIF() + IF( ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") SET(PLATFORM "OSX") ELSEIF( ${CMAKE_SYSTEM_NAME} MATCHES "Linux") diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 950d3dc..0a89aea 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -16,13 +16,13 @@ SET (TARGET_CMAKE_FOLDER SET (TARGET_PLUGIN_FOLDER "openicc" CACHE STRING - "Optional folder below system library folder where to install openicc plugins. LIB_SUFFIX is honored." + "Optional folder below system library folder where to install openicc plugins." ) SET (TARGET_PKGCONFIG_FOLDER "pkgconfig" CACHE STRING - "The folder below system library folder where to install pkgconfig files. LIB_SUFFIX is honored." + "The folder below system library folder where to install pkgconfig files." ) SET (TARGET_DOCUMENTATION_FOLDER @@ -36,10 +36,6 @@ SET (TARGET_DOCUMENTATION_FOLDER # Misc. # -SET (LIB_SUFFIX "" - CACHE STRING - "Optional suffix to use on lib folders (e.g. 64 for lib64)" - ) #cmake settings for use by find_package CONFIGURE_FILE ( "${CMAKE_CURRENT_SOURCE_DIR}/OpenIccConfig.cmake.in" @@ -49,6 +45,6 @@ CONFIGURE_FILE ( INSTALL ( FILES "${CMAKE_CURRENT_BINARY_DIR}/OpenIccConfig.cmake" - DESTINATION lib${LIB_SUFFIX}/cmake/openicc COMPONENT dev + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/openicc COMPONENT dev ) diff --git a/cmake/OpenIccConfig.cmake.in b/cmake/OpenIccConfig.cmake.in index 46dc1ba..373190f 100644 --- a/cmake/OpenIccConfig.cmake.in +++ b/cmake/OpenIccConfig.cmake.in @@ -16,7 +16,7 @@ # Set path to the header file. FIND_PATH(OPENICC_INCLUDE_DIR NAMES openicc_version.h - PATHS @CMAKE_INSTALL_PREFIX@/include/@TARGET_INCLUDE_FOLDER@ + PATHS @CMAKE_INSTALL_FULL_INCLUDEDIR@/@TARGET_INCLUDE_FOLDER@ NO_DEFAULT_PATH ) MARK_AS_ADVANCED(OPENICC_INCLUDE_DIR) @@ -25,7 +25,7 @@ MARK_AS_ADVANCED(OPENICC_INCLUDE_DIR) # Set path to the library. FIND_LIBRARY(OPENICC_LIBRARY NAMES OpenICC openicc-static - PATHS @CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX@ + PATHS @CMAKE_INSTALL_FULL_LIBDIR@ NO_DEFAULT_PATH ) MARK_AS_ADVANCED(OPENICC_LIBRARY) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index a60698a..57cf57f 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -19,5 +19,5 @@ IF( DOXYGEN_FOUND ) ADD_CUSTOM_TARGET( docu ALL DEPENDS html ) - INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/${PACKAGE_NAME} ) + INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR} ) ENDIF() diff --git a/extras/CMakeLists.txt b/extras/CMakeLists.txt index ee939a5..8289b32 100644 --- a/extras/CMakeLists.txt +++ b/extras/CMakeLists.txt @@ -13,6 +13,6 @@ CONFIGURE_FILE( INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}.pc" - DESTINATION lib${LIB_SUFFIX}/${TARGET_PKGCONFIG_FOLDER} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${TARGET_PKGCONFIG_FOLDER} ) diff --git a/extras/openicc.pc.in b/extras/openicc.pc.in index 8680344..826a3d0 100644 --- a/extras/openicc.pc.in +++ b/extras/openicc.pc.in @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix}/bin -libdir=${prefix}/lib@LIB_SUFFIX@ -includedir=${prefix}/include/@TARGET_INCLUDE_FOLDER@ +exec_prefix=${prefix}/@CMAKE_INSTALL_BINDIR@ +libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@TARGET_INCLUDE_FOLDER@ Name: @PACKAGE_NAME@ Description: @PACKAGE_DESCRIPTION@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09c6c05..d61f533 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -94,7 +94,7 @@ FIND_PACKAGE( GetText ) MESSAGE( "GetText: ${GETTEXT_FOUND}" ) IF( GETTEXT_FOUND ) SET( USE_GETTEXT TRUE ) - SET( OI_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale" ) + SET( OI_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}" ) ENDIF() # debug @@ -106,9 +106,13 @@ ADD_SUBDIRECTORY( include ) ADD_SUBDIRECTORY( libopenicc ) -ADD_SUBDIRECTORY( tests ) +IF( ENABLE_TESTS ) + ADD_SUBDIRECTORY( tests ) +ENDIF() -ADD_SUBDIRECTORY( tools ) +IF( ENABLE_TOOLS ) + ADD_SUBDIRECTORY( tools ) +ENDIF() ADD_SUBDIRECTORY( examples ) diff --git a/src/include/CMakeLists.txt b/src/include/CMakeLists.txt index 082eaf8..c37d987 100644 --- a/src/include/CMakeLists.txt +++ b/src/include/CMakeLists.txt @@ -16,4 +16,4 @@ SET( CHEADERS_OBJECT_CONFIG_PUBLIC INSTALL( FILES ${CHEADERS_OBJECT_CONFIG_PUBLIC} "${CMAKE_BINARY_DIR}/src/include/openicc_version.h" - DESTINATION include/${PROJECT_DOWN_NAME}) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_DOWN_NAME}) diff --git a/src/include/openicc_version.h.in b/src/include/openicc_version.h.in index 627bd3b..b0b9927 100644 --- a/src/include/openicc_version.h.in +++ b/src/include/openicc_version.h.in @@ -8,10 +8,10 @@ #define OPENICC_VERSION (OPENICC_VERSION_A * 10000 + OPENICC_VERSION_B * 100 + OPENICC_VERSION_C) /**< version variable */ #define OPENICC_PREFIX "@CMAKE_INSTALL_PREFIX@" /**< install variable */ -#define OPENICC_BINDIR "@CMAKE_INSTALL_PREFIX@/bin" /**< install variable */ -#define OPENICC_DATADIR "@CMAKE_INSTALL_PREFIX@/share" /**< install variable */ -#define OPENICC_LIBDIR "@CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX@" /**< install variable */ -#define OPENICC_DATADIR "@CMAKE_INSTALL_PREFIX@/share" /**< install variable */ +#define OPENICC_BINDIR "@CMAKE_INSTALL_FULL_BINDIR@" /**< install variable */ +#define OPENICC_DATADIR "@CMAKE_INSTALL_FULL_DATAROOTDIR@" /**< install variable */ +#define OPENICC_LIBDIR "@CMAKE_INSTALL_FULL_LIBDIR@/" /**< install variable */ +#define OPENICC_DATADIR "@CMAKE_INSTALL_FULL_DATAROOTDIR@" /**< install variable */ #define OPENICC_SYSCOLORDIR OPENICC_DATADIR "/color" /**< install variable */ #define OPENICC_LOCALEDIR "@OI_LOCALEDIR@" #define OPENICC_CMMSUBPATH "@OI_CMMSUBPATH@" /**< install variable */ diff --git a/src/libopenicc/CMakeLists.txt b/src/libopenicc/CMakeLists.txt index 1db9b0e..b4e7994 100644 --- a/src/libopenicc/CMakeLists.txt +++ b/src/libopenicc/CMakeLists.txt @@ -36,14 +36,20 @@ ADD_LIBRARY( OpenICC SHARED ${SOURCES} ) TARGET_LINK_LIBRARIES ( OpenICC ${EXTRA_LIBS} ${EXTRA_LIBS_CS} ) -ADD_LIBRARY( openicc-static STATIC ${SOURCES} ) -TARGET_LINK_LIBRARIES ( - openicc-static - ${EXTRA_LIBS} ${EXTRA_LIBS_CS} ) -INSTALL( TARGETS OpenICC openicc-static - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} ) +INSTALL( TARGETS OpenICC + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +IF(ENABLE_STATIC_LIBS) + ADD_LIBRARY( openicc-static STATIC ${SOURCES} ) + TARGET_LINK_LIBRARIES ( + openicc-static + ${EXTRA_LIBS} ${EXTRA_LIBS_CS} ) + INSTALL( TARGETS openicc-static + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +ENDIF() diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index 8792328..4bb1602 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -1,5 +1,5 @@ # Device listing ADD_EXECUTABLE( openicc-device "${CMAKE_CURRENT_SOURCE_DIR}/openicc_device.c" ) TARGET_LINK_LIBRARIES( openicc-device OpenICC ${EXTRA_LIBS} ) -INSTALL (TARGETS openicc-device DESTINATION bin) +INSTALL (TARGETS openicc-device DESTINATION ${CMAKE_INSTALL_BINDIR})