From 46bcd3a10e2b189b53c1ca5d311b11919fb2e21a Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Wed, 23 Jul 2025 19:10:47 +0100 Subject: [PATCH] Only set up CMake install for shared library The static library has a static dependency on libloot-cpp that causes more difficulty, and resolving that isn't a priority since I don't use libloot as a static library. --- cpp/CMakeLists.txt | 92 +++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 2a64f435..2b7eae04 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -252,60 +252,62 @@ endif() add_library(libloot::loot ALIAS loot) -set(LIBLOOT_VERSION "0.27.0") +if(LIBLOOT_BUILD_SHARED) + set(LIBLOOT_VERSION "0.27.0") -set_property(TARGET loot PROPERTY VERSION ${LIBLOOT_VERSION}) -set_property(TARGET loot PROPERTY SOVERSION 0) -set_property(TARGET loot PROPERTY INTERFACE_libloot_MAJOR_VERSION 0) -set_property(TARGET loot APPEND PROPERTY COMPATIBLE_INTERFACE_STRING libloot_MAJOR_VERSION) + set_property(TARGET loot PROPERTY VERSION ${LIBLOOT_VERSION}) + set_property(TARGET loot PROPERTY SOVERSION 0) + set_property(TARGET loot PROPERTY INTERFACE_libloot_MAJOR_VERSION 0) + set_property(TARGET loot APPEND PROPERTY COMPATIBLE_INTERFACE_STRING libloot_MAJOR_VERSION) -configure_package_config_file( - ${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in - "${PROJECT_BINARY_DIR}/liblootConfig.cmake" - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot -) + configure_package_config_file( + ${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in + "${PROJECT_BINARY_DIR}/liblootConfig.cmake" + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot + ) -write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/liblootConfigVersion.cmake" - VERSION "${LIBLOOT_VERSION}" - COMPATIBILITY AnyNewerVersion -) + write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/liblootConfigVersion.cmake" + VERSION "${LIBLOOT_VERSION}" + COMPATIBILITY AnyNewerVersion + ) -install(TARGETS loot - EXPORT liblootTargets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(TARGETS loot + EXPORT liblootTargets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(EXPORT liblootTargets - NAMESPACE libloot:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot) + install(EXPORT liblootTargets + NAMESPACE libloot:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot) -export(TARGETS loot - NAMESPACE libloot:: - FILE "${PROJECT_BINARY_DIR}/liblootTargets.cmake") + export(TARGETS loot + NAMESPACE libloot:: + FILE "${PROJECT_BINARY_DIR}/liblootTargets.cmake") -if(MSVC) - install(FILES $ - DESTINATION ${CMAKE_INSTALL_LIBDIR} - OPTIONAL - CONFIGURATIONS RelWithDebInfo) + if(MSVC) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + OPTIONAL + CONFIGURATIONS RelWithDebInfo) + endif() + + install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + if(LIBLOOT_INSTALL_DOCS) + install(DIRECTORY "${PROJECT_SOURCE_DIR}/../docs/build/html/" + DESTINATION ${CMAKE_INSTALL_DOCDIR}) + endif() + + install(FILES + "${PROJECT_BINARY_DIR}/liblootConfig.cmake" + "${PROJECT_BINARY_DIR}/liblootConfigVersion.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot) endif() -install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -if(LIBLOOT_INSTALL_DOCS) - install(DIRECTORY "${PROJECT_SOURCE_DIR}/../docs/build/html/" - DESTINATION ${CMAKE_INSTALL_DOCDIR}) -endif() - -install(FILES - "${PROJECT_BINARY_DIR}/liblootConfig.cmake" - "${PROJECT_BINARY_DIR}/liblootConfigVersion.cmake" - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libloot) - ######################################## # CPack ########################################