Skip to content

Commit f416a0e

Browse files
committed
use gnu install dirs and add COMPATIBILITY argument
1 parent ee3ec31 commit f416a0e

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

CMakeLists.txt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,32 @@ set(
77
)
88

99
function(packageProject)
10+
include(CMakePackageConfigHelpers)
11+
include(GNUInstallDirs)
1012

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})
1214

13-
include(CMakePackageConfigHelpers)
15+
# handle default arguments
16+
if (NOT DEFINED PROJECT_COMPATIBILITY)
17+
set(PROJECT_COMPATIBILITY AnyNewerVersion)
18+
endif()
1419

1520
write_basic_package_version_file(
1621
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
1722
VERSION ${PROJECT_VERSION}
18-
COMPATIBILITY AnyNewerVersion
23+
COMPATIBILITY ${PROJECT_COMPATIBILITY}
1924
)
2025

2126
install(
2227
TARGETS ${PROJECT_NAME}
2328
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
2934
)
3035

31-
include(CMakePackageConfigHelpers)
32-
3336
configure_package_config_file(
3437
${PACKAGE_PROJECT_CONFIG_FILE_PATH}
3538
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"

0 commit comments

Comments
 (0)