@@ -2,11 +2,73 @@ cmake_minimum_required(VERSION 3.9)
22project (concurrentqueue VERSION 1.0.0)
33
44include (GNUInstallDirs )
5+ include (CMakePackageConfigHelpers )
56
67add_library (${PROJECT_NAME } INTERFACE )
78
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+ )
914
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+ )
1218
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 <cameron@moodycamel.com>" )
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