Path: blob/master/Help/guide/importing-exporting/MathFunctions/CMakeLists.txt
5017 views
cmake_minimum_required(VERSION 3.15)1project(MathFunctions)23# make cache variables for install destinations4include(GNUInstallDirs)56# specify the C++ standard7set(CMAKE_CXX_STANDARD 11)8set(CMAKE_CXX_STANDARD_REQUIRED True)910# create library11add_library(MathFunctions STATIC MathFunctions.cxx)1213# add include directories14target_include_directories(MathFunctions15PUBLIC16"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"17"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"18)1920# install the target and create export-set21install(TARGETS MathFunctions22EXPORT MathFunctionsTargets23LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}24ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}25RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}26INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}27)2829# install header file30install(FILES MathFunctions.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})3132# generate and install export file33install(EXPORT MathFunctionsTargets34FILE MathFunctionsTargets.cmake35NAMESPACE MathFunctions::36DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions37)3839# include CMakePackageConfigHelpers macro40include(CMakePackageConfigHelpers)4142# set version43set(version 3.4.1)4445set_property(TARGET MathFunctions PROPERTY VERSION ${version})46set_property(TARGET MathFunctions PROPERTY SOVERSION 3)47set_property(TARGET MathFunctions PROPERTY48INTERFACE_MathFunctions_MAJOR_VERSION 3)49set_property(TARGET MathFunctions APPEND PROPERTY50COMPATIBLE_INTERFACE_STRING MathFunctions_MAJOR_VERSION51)5253# generate the version file for the config file54write_basic_package_version_file(55"${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake"56VERSION "${version}"57COMPATIBILITY AnyNewerVersion58)5960# create config file61configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in62"${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake"63INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions64)6566# install config files67install(FILES68"${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake"69"${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake"70DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/MathFunctions71)7273# generate the export targets for the build tree74export(EXPORT MathFunctionsTargets75FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/MathFunctionsTargets.cmake"76NAMESPACE MathFunctions::77)787980