@@ -2,11 +2,73 @@ cmake_minimum_required(VERSION 3.9)
2
2
project (concurrentqueue VERSION 1.0.0)
3
3
4
4
include (GNUInstallDirs)
5
+ include (CMakePackageConfigHelpers)
5
6
6
7
add_library (${PROJECT_NAME} INTERFACE )
7
8
8
- target_include_directories (concurrentqueue INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
9
+ target_include_directories (${PROJECT_NAME}
10
+ INTERFACE
11
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} >
12
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME} />
13
+ )
9
14
10
- install (FILES blockingconcurrentqueue.h concurrentqueue.h lightweightsemaphore.h LICENSE.md
11
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME} )
15
+ install (TARGETS ${PROJECT_NAME}
16
+ EXPORT ${PROJECT_NAME} Targets
17
+ )
12
18
19
+ write_basic_package_version_file(
20
+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake
21
+ VERSION
22
+ ${PROJECT_VERSION}
23
+ COMPATIBILITY AnyNewerVersion
24
+ )
25
+
26
+ configure_package_config_file(${PROJECT_NAME} Config.cmake.in
27
+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake
28
+ INSTALL_DESTINATION
29
+ ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} /
30
+ )
31
+
32
+ install (EXPORT
33
+ ${PROJECT_NAME} Targets
34
+ FILE
35
+ ${PROJECT_NAME} Targets.cmake
36
+ NAMESPACE
37
+ "${PROJECT_NAME} ::"
38
+ DESTINATION
39
+ ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
40
+ COMPONENT
41
+ Devel
42
+ )
43
+
44
+ install (
45
+ FILES
46
+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake
47
+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake
48
+ DESTINATION
49
+ ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
50
+ COMPONENT
51
+ Devel
52
+ )
53
+
54
+ install (
55
+ FILES
56
+ blockingconcurrentqueue.h
57
+ concurrentqueue.h
58
+ lightweightsemaphore.h
59
+ LICENSE.md
60
+ DESTINATION
61
+ ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME} /moodycamel
62
+ )
63
+
64
+ set (CPACK_PACKAGE_NAME ${PROJECT_NAME} )
65
+ set (CPACK_PACKAGE_VENDOR
"Cameron Desrochers <[email protected] >" )
66
+ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "An industrial-strength lock-free queue for C++." )
67
+ set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION} " )
68
+ set (CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR} " )
69
+ set (CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR} " )
70
+ set (CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH} " )
71
+ set (CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR} )
72
+ set (CPACK_GENERATOR "RPM;DEB" )
73
+
74
+ include (CPack)
0 commit comments