1
0
mirror of https://github.com/google/cpu_features.git synced 2025-04-27 23:22:31 +02:00

Add BUILD_INSTALL option to manage 'install' target (#325)

This commit is contained in:
Alexander Mitin 2023-08-31 11:58:45 +03:00 committed by GitHub
parent 2a3ef54701
commit 52874f0ced
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,7 +26,20 @@ if(NOT CMAKE_BUILD_TYPE)
endif(NOT CMAKE_BUILD_TYPE) endif(NOT CMAKE_BUILD_TYPE)
# An option to enable/disable the executable target list_cpu_features. # 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 # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make
# it prominent in the GUI. # it prominent in the GUI.
@ -243,18 +256,9 @@ endif()
# #
# Install cpu_features and list_cpu_features # Install cpu_features and list_cpu_features
# #
if(ENABLE_INSTALL)
include(GNUInstallDirs) include(GNUInstallDirs)
install(TARGETS cpu_features 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
EXPORT CpuFeaturesTargets EXPORT CpuFeaturesTargets
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@ -262,27 +266,37 @@ if(BUILD_EXECUTABLE)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
) )
endif() if(BUILD_EXECUTABLE)
install(EXPORT CpuFeaturesTargets install(TARGETS list_cpu_features
NAMESPACE CpuFeatures:: EXPORT CpuFeaturesTargets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features
COMPONENT Devel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
include(CMakePackageConfigHelpers) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
configure_package_config_file(cmake/CpuFeaturesConfig.cmake.in BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
"${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake" )
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" endif()
NO_SET_AND_CHECK_MACRO install(EXPORT CpuFeaturesTargets
NO_CHECK_REQUIRED_COMPONENTS_MACRO NAMESPACE CpuFeatures::
) DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures
write_basic_package_version_file( COMPONENT Devel
"${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake" )
COMPATIBILITY SameMajorVersion include(CMakePackageConfigHelpers)
) configure_package_config_file(cmake/CpuFeaturesConfig.cmake.in
install(
FILES
"${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake" "${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" "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures" COMPATIBILITY SameMajorVersion
COMPONENT Devel )
) install(
FILES
"${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake"
"${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures"
COMPONENT Devel
)
endif()