cmake_minimum_required(VERSION 3.15) project(MathFunctions) # make cache variables for install destinations include(GNUInstallDirs) # specify the C++ standard set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) # create library add_library(MathFunctions STATIC MathFunctions.cxx) # add include directories target_include_directories(MathFunctions PUBLIC "$" "$" ) # install the target and create export-set install(TARGETS MathFunctions EXPORT MathFunctionsTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) # install header file install(FILES MathFunctions.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # generate and install export file install(EXPORT MathFunctionsTargets FILE MathFunctionsTargets.cmake NAMESPACE MathFunctions:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions ) # include CMakePackageConfigHelpers macro include(CMakePackageConfigHelpers) # set version set(version 3.4.1) set_property(TARGET MathFunctions PROPERTY VERSION ${version}) set_property(TARGET MathFunctions PROPERTY SOVERSION 3) set_property(TARGET MathFunctions PROPERTY INTERFACE_MathFunctions_MAJOR_VERSION 3) set_property(TARGET MathFunctions APPEND PROPERTY COMPATIBLE_INTERFACE_STRING MathFunctions_MAJOR_VERSION ) # generate the version file for the config file write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake" VERSION "${version}" COMPATIBILITY AnyNewerVersion ) # create config file configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions ) # install config files install(FILES "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions ) # generate the export targets for the build tree export(EXPORT MathFunctionsTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/MathFunctionsTargets.cmake" NAMESPACE MathFunctions:: )