1+
2+ set (
3+ PACKAGE_PROJECT_CONFIG_FILE_PATH
4+ "${CMAKE_CURRENT_LIST_DIR} /Config.cmake.in"
5+ CACHE INTERNAL
6+ "The config template for the packageProject script"
7+ )
8+
9+ function (packageProject )
10+
11+ cmake_parse_arguments (PROJECT "" "NAME;VERSION;INCLUDE_DIR;INCLUDE_DESTINATION;BINARY_DIR" "" ${ARGN} )
12+
13+ include (CMakePackageConfigHelpers )
14+
15+ write_basic_package_version_file (
16+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
17+ VERSION ${PROJECT_VERSION}
18+ COMPATIBILITY AnyNewerVersion
19+ )
20+
21+ install (
22+ TARGETS ${PROJECT_NAME}
23+ EXPORT ${PROJECT_NAME} Targets
24+ LIBRARY DESTINATION lib/${PROJECT_NAME} -${PROJECT_VERSION} COMPONENT Runtime
25+ ARCHIVE DESTINATION lib/${PROJECT_NAME} -${PROJECT_VERSION} COMPONENT Development
26+ RUNTIME DESTINATION bin/${PROJECT_NAME} -${PROJECT_VERSION} COMPONENT Runtime
27+ PUBLIC_HEADER DESTINATION include/${PROJECT_NAME} -${PROJECT_VERSION} COMPONENT Development
28+ BUNDLE DESTINATION bin COMPONENT Runtime
29+ )
30+
31+ include (CMakePackageConfigHelpers )
32+
33+ configure_package_config_file (
34+ ${PACKAGE_PROJECT_CONFIG_FILE_PATH}
35+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
36+ INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}-${PROJECT_VERSION}
37+ )
38+
39+ install (
40+ EXPORT ${PROJECT_NAME} Targets
41+ DESTINATION lib/cmake/${PROJECT_NAME} -${PROJECT_VERSION}
42+ )
43+
44+ install (
45+ FILES
46+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
47+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
48+ DESTINATION
49+ lib/cmake/${PROJECT_NAME} -${PROJECT_VERSION}
50+ )
51+
52+ install (
53+ DIRECTORY ${PROJECT_INCLUDE_DIR} /
54+ DESTINATION ${PROJECT_INCLUDE_DESTINATION}
55+ )
56+
57+ endfunction ()
0 commit comments