diff options
author | Eric Huff <eric.huff@ihsmarkit.com> | 2020-05-28 23:53:56 +0000 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2020-05-31 19:51:59 -0700 |
commit | d416b8b16d196085106cfe137a0ff6919a9f6752 (patch) | |
tree | e691c25e52c8605f2bbc9d36b7fae84d13e82782 /CMakeLists.txt | |
parent | 9ee7b7b2c655392ac0f76f0bef488aaea1d89da8 (diff) | |
download | rabbitmq-c-d416b8b16d196085106cfe137a0ff6919a9f6752.tar.gz |
Add rabbitmq-c-config.cmake generation
Generating a -config.cmake or Config.cmake lets rabbitmq-c be
discoverable via cmake's `find_package`, and allows easier use in the
vcpkg ecosystem.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a39645f..a58679a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -272,6 +272,8 @@ if (NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS) message(FATAL_ERROR "One or both of BUILD_SHARED_LIBS or BUILD_STATIC_LIBS must be set to ON to build") endif() +set(targets_export_name rabbitmq-targets) + add_subdirectory(librabbitmq) if (BUILD_EXAMPLES) @@ -329,6 +331,43 @@ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") configure_file(cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/librabbitmq/config.h) configure_file(librabbitmq.pc.in ${CMAKE_CURRENT_BINARY_DIR}/librabbitmq.pc @ONLY) + +include(CMakePackageConfigHelpers) +set(RMQ_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/rabbitmq-c) +set(project_config "${CMAKE_CURRENT_BINARY_DIR}/rabbitmq-c-config.cmake") +set(version_config "${CMAKE_CURRENT_BINARY_DIR}/rabbitmq-c-config-version.cmake") + +write_basic_package_version_file( + "${version_config}" + VERSION ${RMQ_VERSION} + COMPATIBILITY AnyNewerVersion) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rabbitmq-c-config.cmake.in" + "${project_config}" + INSTALL_DESTINATION "${RMQ_CMAKE_DIR}") + + +if(BUILD_SHARED_LIBS) + list(APPEND INSTALL_TARGETS rabbitmq) +endif() +if(BUILD_STATIC_LIBS) + list(APPEND INSTALL_TARGETS rabbitmq-static) +endif() + +export(TARGETS ${INSTALL_TARGETS} + NAMESPACE rabbitmq:: + FILE ${PROJECT_BINARY_DIR}/${targets_export_name}.cmake) + +install(FILES ${project_config} ${version_config} + DESTINATION ${RMQ_CMAKE_DIR} + ) + +install(EXPORT ${targets_export_name} + DESTINATION ${RMQ_CMAKE_DIR} + NAMESPACE rabbitmq:: + ) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/librabbitmq.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig |