# # sciqlop_params : Define compilation parameters # # Debug or release # # As the "NMake Makefiles" forces by default the CMAKE_BUILD_TYPE variable to Debug, SCIQLOP_BUILD_TYPE variable is used to be sure that the debug mode is a user choice #SET(SCIQLOP_BUILD_TYPE "Release" CACHE STRING "Choose to compile in Debug or Release mode") IF(CMAKE_BUILD_TYPE MATCHES "Debug") SET (DEBUG_SUFFIX "d") ELSE() MESSAGE (STATUS "Build in Release") SET (DEBUG_SUFFIX "") ENDIF() # # Need to compile tests? # OPTION (BUILD_TESTS "Build the tests" OFF) ENABLE_TESTING(${BUILD_TESTS}) # # Path to the folder for sciqlop's extern libraries. # # When looking for an external library in sciqlop, we look to the following # folders: # - The specific folder for the library (generally of the form _ROOT_DIR # - The global Sciqlop extern folder # - The system folders. # # If a dependency is found in the global extern folder or a specific folder for # the library, then it is installed with the sciqlop libraries. If it is found # in the system folders, it is not. This behavior can be overriden with the # _COPY_SHARED_LIBRARIES flag. # set(SCIQLOP_EXTERN_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/extern" CACHE PATH "Path to the folder for sciqlop's extern libraries") option(SCIQLOP_FORCE_UPDATE_EXT_ROOT_DIR "Force the _ROOT_DIR to be updated to the global sciqlop extern folder" OFF) if (SCIQLOP_FORCE_UPDATE_EXT_ROOT_DIR) set(libRootDirForceValue FORCE) else() set(libRootDirForceValue) endif() # # Sciqlop_modules.cmake # # Set ouptut directories # IF (UNIX) # 32 or 64 bits compiler IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) SET(defaultLib "lib64/sciqlop") ELSE() SET(defaultLib "lib/sciqlop") ENDIF() SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin) SET (CONFIG_OUTPUT_PATH $ENV{HOME}/.config/QtProject) SET (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${defaultLib}) ELSEIF(WIN32) SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist) SET (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist) SET (CONFIG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist/app/QtProject) ELSE() SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist) SET (CONFIG_OUTPUT_PATH $ENV{HOME}/.config/QtProject) SET (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist) ENDIF() # # Static or shared libraries # OPTION (BUILD_SHARED_LIBS "Build the shared libraries" ON) # Generate position independant code (-fPIC) SET(CMAKE_POSITION_INDEPENDENT_CODE TRUE) # Configuration for make install set(PROJECT_PLUGIN_PREFIX "SciQlop") IF (UNIX) SET(CMAKE_INSTALL_PREFIX "/usr/local/${PROJECT_PLUGIN_PREFIX}") SET(defaultBin "bin") SET(defaultInc "include/sciqlop") # 32 or 64 bits compiler IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) SET(defaultLib "lib64") SET(defaultPluginsLib "lib64/${PROJECT_PLUGIN_PREFIX}") ELSE() SET(defaultLib "lib/") SET(defaultPluginsLib "lib/${PROJECT_PLUGIN_PREFIX}") ENDIF() SET(defaultDoc "share/docs/${PROJECT_PLUGIN_PREFIX}") ELSE() SET(defaultBin "bin") SET(defaultInc "include/${PROJECT_PLUGIN_PREFIX}") SET(defaultLib "lib") SET(defaultPluginsLib "lib/${PROJECT_PLUGIN_PREFIX}") SET(defaultDoc "docs/${PROJECT_PLUGIN_PREFIX}") ENDIF() SET(INSTALL_BINARY_DIR "${defaultBin}" CACHE STRING "Installation directory for binaries") SET(INSTALL_LIBRARY_DIR "${defaultLib}" CACHE STRING "Installation directory for libraries") SET(INSTALL_PLUGINS_LIBRARY_DIR "${defaultPluginsLib}" CACHE STRING "Installation directory for libraries") SET(INSTALL_INCLUDE_DIR "${defaultInc}" CACHE STRING "Installation directory for headers") SET(INSTALL_DOCUMENTATION_DIR "${defaultDoc}" CACHE STRING "Installation directory for documentations") # Set the rpath when installing SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${INSTALL_LIBRARY_DIR}") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) message("Install RPATH: ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIBRARY_DIR}")