# Initialize CMake ################################################################################ CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR ) # Set CMAKE_BUILD_TYPE If ( NOT CMAKE_BUILD_TYPE ) Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) EndIf ( NOT CMAKE_BUILD_TYPE ) Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel ) # Set CMAKE_MODULE_PATH If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) EndIf ( ) If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" ) Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" ) EndIf ( ) # Project ######################################################################################### Include ( GNUInstallDirs ) Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-options.cmake ) Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-const.cmake ) Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-var.cmake ) Project ( ${CPPMP_PROJECT_NAME} DESCRIPTION "${CPPMP_PROJECT_DESCRIPTION}" VERSION "${CPPMP_VERSION}" ) Include ( CTest ) # Subdirectories Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) # Install If ( NOT CPPMP_HAS_EXPORT OR NOT CPPMP_INSTALL_PACKAGE ) Return ( ) EndIf ( ) Include ( CMakePackageConfigHelpers ) Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" VERSION ${CPPMP_VERSION} COMPATIBILITY AnyNewerVersion ) Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config.cmake" @ONLY ) Set ( ConfigPackageLocation "${CPPMP_INSTALL_DIR_SHARE}/cmake" ) Install ( EXPORT cppmp NAMESPACE cppmp:: DESTINATION ${ConfigPackageLocation} ) Install ( FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" DESTINATION ${ConfigPackageLocation} COMPONENT Devel )