summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorEric Huff <eric.huff@ihsmarkit.com>2020-05-28 23:53:56 +0000
committerAlan Antonuk <alan.antonuk@gmail.com>2020-05-31 19:51:59 -0700
commitd416b8b16d196085106cfe137a0ff6919a9f6752 (patch)
treee691c25e52c8605f2bbc9d36b7fae84d13e82782 /CMakeLists.txt
parent9ee7b7b2c655392ac0f76f0bef488aaea1d89da8 (diff)
downloadrabbitmq-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.txt39
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