From 153f8a4228e3dfc9e3ae8c6f0e352bd66fde1453 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 15:03:13 -0500 Subject: [PATCH] move export(), install() to src/CMakelists.txt from ./CMakelists.txt --- CMakeLists.txt | 51 ++++++---------------------------------------- src/CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4be18444..1530e5ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,12 @@ project(QSkinny VERSION 0.8.0) set(QSK_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) +set(QSK_CMAKE_DIR ${QSK_SOURCE_DIR}/cmake) +# packaging +set(PACKAGE_NAME ${PROJECT_NAME}) +set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) +set(PACKAGE_NAMESPACE ${PROJECT_NAME}) +set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) qsk_setup_options() @@ -119,48 +125,3 @@ endif() if(BUILD_PLAYGROUND) add_subdirectory(playground) endif() - -# packaging -set(PACKAGE_NAME ${PROJECT_NAME}) -set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE ${PROJECT_NAME}) -set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) - -install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets - LIBRARY DESTINATION ${QSK_INSTALL_LIBS} - ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} - RUNTIME DESTINATION ${QSK_INSTALL_LIBS} - INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} - PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) - -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake - VERSION ${PACKAGE_VERSION} - COMPATIBILITY AnyNewerVersion) - -export(EXPORT ${PACKAGE_NAME}Targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake - NAMESPACE ${PACKAGE_NAMESPACE}::) - -configure_file(cmake/${PACKAGE_NAME}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake - COPYONLY) - -install(EXPORT ${PACKAGE_NAME}Targets - FILE - ${PACKAGE_NAME}Targets.cmake - NAMESPACE - ${PACKAGE_NAMESPACE}:: - DESTINATION - ${PACKAGE_LOCATION}) - -install( - FILES - cmake/${PACKAGE_NAME}Config.cmake - cmake/QskTools.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake - DESTINATION - ${PACKAGE_LOCATION} - COMPONENT - Devel) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 80ed914a..b528ce6a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -515,5 +515,41 @@ set_target_properties(${target} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) -# Set the library destination to ensure an organized library + plugins dir -install(TARGETS ${target}) +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion) + +install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets + LIBRARY DESTINATION ${QSK_INSTALL_LIBS} + ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} + RUNTIME DESTINATION ${QSK_INSTALL_LIBS} + INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} + PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) + +export(EXPORT ${PACKAGE_NAME}Targets + FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Targets.cmake + NAMESPACE ${PACKAGE_NAMESPACE}::) + +configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake + COPYONLY) + +install(EXPORT ${PACKAGE_NAME}Targets + FILE + ${PACKAGE_NAME}Targets.cmake + NAMESPACE + ${PACKAGE_NAMESPACE}:: + DESTINATION + ${PACKAGE_LOCATION}) + +install( + FILES + ${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake + ${QSK_CMAKE_DIR}/QskTools.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake + DESTINATION + ${PACKAGE_LOCATION} + COMPONENT + Devel)