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