11cmake_minimum_required (VERSION 3.10)
22
3- set (BUILD_VERSION 1.1.0.2)
4-
53project (slick_queue
6- VERSION ${BUILD_VERSION}
4+ VERSION 1.1.1
75 DESCRIPTION "A C++ Lock-Free MPMC queue"
86 LANGUAGES CXX)
97
108set (CMAKE_CXX_STANDARD 20)
119
1210add_library (slick_queue INTERFACE )
13- target_include_directories (slick_queue INTERFACE include )
11+ target_include_directories (slick_queue INTERFACE
12+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
13+ $<INSTALL_INTERFACE:include >
14+ )
1415
1516if (UNIX AND NOT APPLE )
1617 target_link_libraries (slick_queue INTERFACE rt atomic)
@@ -28,7 +29,43 @@ endif()
2829# Installation rules
2930install (DIRECTORY include / DESTINATION include )
3031
31- message (STATUS "slick_queue: ${BUILD_VERSION} " )
32+ # Generate and install CMake config files for vcpkg compatibility
33+ include (CMakePackageConfigHelpers)
34+
35+ # Create the config file
36+ configure_package_config_file(
37+ "${CMAKE_CURRENT_SOURCE_DIR} /cmake/slick_queueConfig.cmake.in"
38+ "${CMAKE_CURRENT_BINARY_DIR} /slick_queueConfig.cmake"
39+ INSTALL_DESTINATION lib/cmake/slick_queue
40+ )
41+
42+ # Create the version file
43+ write_basic_package_version_file(
44+ "${CMAKE_CURRENT_BINARY_DIR} /slick_queueConfigVersion.cmake"
45+ VERSION ${PROJECT_VERSION}
46+ COMPATIBILITY SameMajorVersion
47+ )
48+
49+ # Install the config files
50+ install (FILES
51+ "${CMAKE_CURRENT_BINARY_DIR} /slick_queueConfig.cmake"
52+ "${CMAKE_CURRENT_BINARY_DIR} /slick_queueConfigVersion.cmake"
53+ DESTINATION lib/cmake/slick_queue
54+ )
55+
56+ # Install the target
57+ install (TARGETS slick_queue
58+ EXPORT slick_queueTargets
59+ )
60+
61+ # Install the export set
62+ install (EXPORT slick_queueTargets
63+ FILE slick_queueTargets.cmake
64+ NAMESPACE slick::
65+ DESTINATION lib/cmake/slick_queue
66+ )
67+
68+ message (STATUS "slick_queue: ${PROJECT_VERSION} " )
3269
3370# Automatically run install after build in Release mode
3471if (CMAKE_BUILD_TYPE STREQUAL "Release" )
@@ -46,7 +83,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
4683
4784 if (PROJECT_IS_TOP_LEVEL)
4885 add_custom_target (package_slick_queue ALL
49- COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${CMAKE_BINARY_DIR} /dist/slick_queue_${BUILD_VERSION } .zip" --format=zip "${CMAKE_CURRENT_SOURCE_DIR} /include"
86+ COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${CMAKE_BINARY_DIR} /dist/slick_queue_${PROJECT_VERSION } .zip" --format=zip "${CMAKE_CURRENT_SOURCE_DIR} /include"
5087 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} "
5188 COMMENT "Creating zip archive"
5289 )
0 commit comments