| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # This CMakeLists.txt is part of the subproject B (ExternalProject_Add).
- cmake_minimum_required(VERSION 3.20)
- project(shared_lib_project VERSION 2.3.4 LANGUAGES CXX)
- include(GNUInstallDirs)
- add_library(the_shared_lib SHARED
- "include/shared_lib.h"
- "src/shared_lib.cpp"
- )
- set_target_properties(the_shared_lib
- PROPERTIES
- VERSION "${PROJECT_VERSION}"
- SOVERSION "${PROJECT_VERSION}"
- )
- target_include_directories(the_shared_lib PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
- )
- install(
- DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/"
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
- )
- install(
- TARGETS
- the_shared_lib
- EXPORT main
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- )
- set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
- include(CMakePackageConfigHelpers)
- configure_package_config_file(
- "cmake/PackageConfig.cmake.in"
- "${PROJECT_NAME}Config.cmake"
- INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}"
- PATH_VARS
- CMAKE_INSTALL_INCLUDEDIR
- CMAKE_INSTALL_LIBDIR
- )
- write_basic_package_version_file("${PROJECT_NAME}Version.cmake"
- VERSION "${PROJECT_VERSION}"
- COMPATIBILITY SameMajorVersion
- )
- install(
- EXPORT main
- FILE "${PROJECT_NAME}Targets.cmake"
- DESTINATION "${INSTALL_CMAKE_DIR}"
- )
- install(
- FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Version.cmake"
- DESTINATION "${INSTALL_CMAKE_DIR}"
- )
|