diff options
author | Alexander Mitin <Alexander.Mitin@gmail.com> | 2023-08-31 11:58:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-31 10:58:45 +0200 |
commit | 52874f0ced67058dd4d3c76d93bc135e9916c689 (patch) | |
tree | 5ca5631fa0ef14b854e8434e5339e042f9a715a2 | |
parent | 2a3ef547013cf4eb9d34d4051f57d42ab1d8514e (diff) | |
download | cpu_features-52874f0ced67058dd4d3c76d93bc135e9916c689.tar.gz |
Add BUILD_INSTALL option to manage 'install' target (#325)
-rw-r--r-- | CMakeLists.txt | 84 |
1 files changed, 49 insertions, 35 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ca31423..42c964c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,20 @@ if(NOT CMAKE_BUILD_TYPE) endif(NOT CMAKE_BUILD_TYPE) # An option to enable/disable the executable target list_cpu_features. -option(BUILD_EXECUTABLE "Build list_cpu_features executable." ON) +# Disable it by default if the project is included as a subproject. +if(NOT CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + option(BUILD_EXECUTABLE "Build list_cpu_features executable." OFF) +else() + option(BUILD_EXECUTABLE "Build list_cpu_features executable." ON) +endif() + +# An option which allows to switch off install steps. Useful for embedding. +# Disable it by default if the project is included as a subproject. +if(NOT CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + option(ENABLE_INSTALL "Enable install targets" OFF) +else() + option(ENABLE_INSTALL "Enable install targets" ON) +endif() # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make # it prominent in the GUI. @@ -243,18 +256,9 @@ endif() # # Install cpu_features and list_cpu_features # - -include(GNUInstallDirs) -install(TARGETS cpu_features - EXPORT CpuFeaturesTargets - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} -) -if(BUILD_EXECUTABLE) - install(TARGETS list_cpu_features +if(ENABLE_INSTALL) + include(GNUInstallDirs) + install(TARGETS cpu_features EXPORT CpuFeaturesTargets PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -262,27 +266,37 @@ if(BUILD_EXECUTABLE) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} ) -endif() -install(EXPORT CpuFeaturesTargets - NAMESPACE CpuFeatures:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures - COMPONENT Devel -) -include(CMakePackageConfigHelpers) -configure_package_config_file(cmake/CpuFeaturesConfig.cmake.in - "${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" - NO_SET_AND_CHECK_MACRO - NO_CHECK_REQUIRED_COMPONENTS_MACRO -) -write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake" - COMPATIBILITY SameMajorVersion -) -install( - FILES + if(BUILD_EXECUTABLE) + install(TARGETS list_cpu_features + EXPORT CpuFeaturesTargets + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + endif() + install(EXPORT CpuFeaturesTargets + NAMESPACE CpuFeatures:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures + COMPONENT Devel + ) + include(CMakePackageConfigHelpers) + configure_package_config_file(cmake/CpuFeaturesConfig.cmake.in "${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + write_basic_package_version_file( "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" - COMPONENT Devel -) + COMPATIBILITY SameMajorVersion + ) + install( + FILES + "${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake" + "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" + COMPONENT Devel + ) +endif() |