|
7 | 7 | ) |
8 | 8 |
|
9 | 9 | function(packageProject) |
| 10 | + include(CMakePackageConfigHelpers) |
| 11 | + include(GNUInstallDirs) |
10 | 12 |
|
11 | | - cmake_parse_arguments(PROJECT "" "NAME;VERSION;INCLUDE_DIR;INCLUDE_DESTINATION;BINARY_DIR" "DEPENDENCIES" ${ARGN}) |
| 13 | + cmake_parse_arguments(PROJECT "" "NAME;VERSION;INCLUDE_DIR;INCLUDE_DESTINATION;BINARY_DIR;COMPATIBILITY" "DEPENDENCIES" ${ARGN}) |
12 | 14 |
|
13 | | - include(CMakePackageConfigHelpers) |
| 15 | + # handle default arguments |
| 16 | + if (NOT DEFINED PROJECT_COMPATIBILITY) |
| 17 | + set(PROJECT_COMPATIBILITY AnyNewerVersion) |
| 18 | + endif() |
14 | 19 |
|
15 | 20 | write_basic_package_version_file( |
16 | 21 | "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
17 | 22 | VERSION ${PROJECT_VERSION} |
18 | | - COMPATIBILITY AnyNewerVersion |
| 23 | + COMPATIBILITY ${PROJECT_COMPATIBILITY} |
19 | 24 | ) |
20 | 25 |
|
21 | 26 | install( |
22 | 27 | TARGETS ${PROJECT_NAME} |
23 | 28 | 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 | + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}-${PROJECT_VERSION} COMPONENT Runtime |
| 30 | + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}-${PROJECT_VERSION} COMPONENT Development |
| 31 | + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}-${PROJECT_VERSION} COMPONENT Runtime |
| 32 | + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}-${PROJECT_VERSION} COMPONENT Runtime |
| 33 | + PUBLIC_HEADER DESTINATION ${INCLUDE_DESTINATION} COMPONENT Development |
29 | 34 | ) |
30 | 35 |
|
31 | | - include(CMakePackageConfigHelpers) |
32 | | - |
33 | 36 | configure_package_config_file( |
34 | 37 | ${PACKAGE_PROJECT_CONFIG_FILE_PATH} |
35 | 38 | "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
|
0 commit comments