You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- # 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/" )
- Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" )
- EndIf ( )
-
- # Project #########################################################################################
-
- # Version
- Set ( LIBHELLOWORLD_VERSION_MAJOR 1 )
- Set ( LIBHELLOWORLD_VERSION_MINOR 0 )
- Set ( LIBHELLOWORLD_VERSION_PATCH 0 )
- Set ( LIBHELLOWORLD_VERSION_BUILD 0 )
- Set ( LIBHELLOWORLD_VERSION_SHORT "${LIBHELLOWORLD_VERSION_MAJOR}.${LIBHELLOWORLD_VERSION_MINOR}" )
- Set ( LIBHELLOWORLD_VERSION "${LIBHELLOWORLD_VERSION_SHORT}.${LIBHELLOWORLD_VERSION_PATCH}.${LIBHELLOWORLD_VERSION_BUILD}" )
- Set ( LIBHELLOWORLD_NAME "libhelloworld-${LIBHELLOWORLD_VERSION_SHORT}" )
-
- # Install directories
- Set ( LIBHELLOWORLD_INSTALL_DIR_INCLUDE "include/${LIBHELLOWORLD_NAME}" )
- Set ( LIBHELLOWORLD_INSTALL_DIR_LIB "lib/${LIBHELLOWORLD_NAME}" )
- Set ( LIBHELLOWORLD_INSTALL_DIR_SHARE "share/${LIBHELLOWORLD_NAME}" )
-
- # Project
- Project ( libhelloworld
- DESCRIPTION "A simple library"
- VERSION "${LIBHELLOWORLD_VERSION}" )
- Include ( CTest )
-
- # C Standard
- Set ( CMAKE_C_STANDARD 11 )
- Set ( CMAKE_CXX_STANDARD 17 )
- Set ( CMAKE_C_STANDARD_REQUIRED ON )
- Set ( CMAKE_CXX_STANDARD_REQUIRED ON )
-
- # Subdirectories
- Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
- Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test )
-
- # Install
- Include ( CMakePackageConfigHelpers )
- Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/libhelloworld-config-version.cmake"
- VERSION ${LIBHELLOWORLD_VERSION}
- COMPATIBILITY AnyNewerVersion )
- Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libhelloworld-config.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake/libhelloworld-config.cmake"
- @ONLY )
-
- Set ( ConfigPackageLocation "${LIBHELLOWORLD_INSTALL_DIR_SHARE}/cmake" )
- Install ( EXPORT libhelloworld
- DESTINATION ${ConfigPackageLocation} )
- Install ( FILES
- "${CMAKE_CURRENT_BINARY_DIR}/cmake/libhelloworld-config.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake/libhelloworld-config-version.cmake"
- DESTINATION
- ${ConfigPackageLocation}
- COMPONENT
- Devel )
|