From d52db59490b8e4a2a313bad7662fdebd1631765e Mon Sep 17 00:00:00 2001 From: Oliver Old Date: Mon, 12 Oct 2026 17:35:20 +0200 Subject: [PATCH] Add COMPONENT to install targets This is based on the recommendation in Professional CMake: A Practical Guide (section Installing Project Targets). One can install the runtime dependencies by requesting the `Runtime` component when installing, the development files when the `Development` component is requested, or all files when no component is given to the `cmake --install` command. Fixes #361. --- CMakeLists.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9f1542..46d6ae3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,17 +47,20 @@ set_target_properties (utf8proc PROPERTIES if (UTF8PROC_INSTALL) include(GNUInstallDirs) - install(FILES utf8proc.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + install(FILES utf8proc.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT Development) install(TARGETS utf8proc EXPORT utf8proc-targets - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" NAMELINK_SKIP COMPONENT Runtime + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime + ) + install(TARGETS utf8proc + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" NAMELINK_ONLY COMPONENT Development ) configure_file(libutf8proc.pc.cmakein libutf8proc.pc @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libutf8proc.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libutf8proc.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT Development) # Install CMake targets file. - install(EXPORT utf8proc-targets FILE utf8proc-targets.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/utf8proc" NAMESPACE utf8proc::) + install(EXPORT utf8proc-targets FILE utf8proc-targets.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/utf8proc" COMPONENT Development NAMESPACE utf8proc::) include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/utf8proc-config.cmake.in" @@ -73,6 +76,7 @@ if (UTF8PROC_INSTALL) "${CMAKE_CURRENT_BINARY_DIR}/utf8proc-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/utf8proc-config-version.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/utf8proc" + COMPONENT Development ) endif()