1-
2- set (
3- PACKAGE_PROJECT_ROOT_PATH
4- "${CMAKE_CURRENT_LIST_DIR} "
5- CACHE INTERNAL
6- "The path to the PackageProject directory"
1+ set (PACKAGE_PROJECT_ROOT_PATH
2+ "${CMAKE_CURRENT_LIST_DIR} "
3+ CACHE INTERNAL "The path to the PackageProject directory"
74)
85
96function (packageProject )
107 include (CMakePackageConfigHelpers )
118 include (GNUInstallDirs )
129
1310 cmake_parse_arguments (
14- PROJECT
15- "NO_VERSION_SUFFIX"
11+ PROJECT "NO_VERSION_SUFFIX"
1612 "NAME;VERSION;INCLUDE_DIR;INCLUDE_DESTINATION;BINARY_DIR;COMPATIBILITY;VERSION_HEADER;NAMESPACE"
17- "DEPENDENCIES"
18- ${ARGN}
13+ "DEPENDENCIES" ${ARGN}
1914 )
2015
2116 if (DEFINED PROJECT_NO_VERSION_SUFFIX)
22- unset (_PROJECT_VERSION_SUFFIX )
17+ unset (PROJECT_VERSION_SUFFIX )
2318 else ()
24- set (_PROJECT_VERSION_SUFFIX -${PROJECT_VERSION} )
19+ set (PROJECT_VERSION_SUFFIX -${PROJECT_VERSION} )
2520 endif ()
2621
2722 # handle default arguments
2823 if (NOT DEFINED PROJECT_COMPATIBILITY)
2924 set (PROJECT_COMPATIBILITY AnyNewerVersion)
3025 endif ()
3126
32- # we wanto to automatically add :: to our namespace, so only append if a namespace was given in the first place
33- # we also provide an alias to ensure that local and installed versions have the same name
27+ # we wanto to automatically add :: to our namespace, so only append if a namespace was given in
28+ # the first place we also provide an alias to ensure that local and installed versions have the
29+ # same name
3430 if (DEFINED PROJECT_NAMESPACE)
3531 set (PROJECT_NAMESPACE ${PROJECT_NAMESPACE} ::)
3632 add_library (${PROJECT_NAMESPACE}${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
@@ -41,8 +37,7 @@ function(packageProject)
4137 string (TOUPPER ${PROJECT_NAME} UPPERCASE_PROJECT_NAME)
4238 configure_file (
4339 ${PACKAGE_PROJECT_ROOT_PATH} /version.h.in
44- ${PROJECT_VERSION_INCLUDE_DIR} /${PROJECT_VERSION_HEADER}
45- @ONLY
40+ ${PROJECT_VERSION_INCLUDE_DIR} /${PROJECT_VERSION_HEADER} @ONLY
4641 )
4742
4843 get_target_property (target_type ${PROJECT_NAME} TYPE )
@@ -51,11 +46,10 @@ function(packageProject)
5146 else ()
5247 set (VISIBILITY PUBLIC)
5348 endif ()
54- target_include_directories (${PROJECT_NAME} ${VISIBILITY} "$<BUILD_INTERFACE :${PROJECT_VERSION_INCLUDE_DIR} >" )
55- install (
56- DIRECTORY ${PROJECT_VERSION_INCLUDE_DIR} /
57- DESTINATION ${PROJECT_INCLUDE_DESTINATION}
49+ target_include_directories (
50+ ${PROJECT_NAME} ${VISIBILITY} "$<BUILD_INTERFACE :${PROJECT_VERSION_INCLUDE_DIR} >"
5851 )
52+ install (DIRECTORY ${PROJECT_VERSION_INCLUDE_DIR} / DESTINATION ${PROJECT_INCLUDE_DESTINATION} )
5953 endif ()
6054
6155 write_basic_package_version_file (
@@ -67,37 +61,37 @@ function(packageProject)
6761 install (
6862 TARGETS ${PROJECT_NAME}
6963 EXPORT ${PROJECT_NAME} Targets
70- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX} COMPONENT Runtime
71- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX} COMPONENT Development
72- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} /${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX} COMPONENT Runtime
73- BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} /${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX} COMPONENT Runtime
64+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
65+ COMPONENT Runtime
66+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} /${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
67+ COMPONENT Development
68+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} /${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
69+ COMPONENT Runtime
70+ BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} /${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
71+ COMPONENT Runtime
7472 PUBLIC_HEADER DESTINATION ${PROJECT_INCLUDE_DESTINATION} COMPONENT Development
7573 )
7674
7775 configure_package_config_file (
78- ${PACKAGE_PROJECT_ROOT_PATH} /Config.cmake.in
79- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
80- INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX}
76+ ${PACKAGE_PROJECT_ROOT_PATH} /Config.cmake.in "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
77+ INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
8178 )
8279
8380 install (
8481 EXPORT ${PROJECT_NAME} Targets
85- DESTINATION lib/cmake/${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX }
82+ DESTINATION lib/cmake/${PROJECT_NAME}${PROJECT_VERSION_SUFFIX }
8683 NAMESPACE ${PROJECT_NAMESPACE}
8784 )
8885
89- install (
90- FILES
91- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
92- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
93- DESTINATION
94- lib/cmake/${PROJECT_NAME}${_PROJECT_VERSION_SUFFIX}
86+ install (FILES "${PROJECT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
87+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
88+ DESTINATION lib/cmake/${PROJECT_NAME}${PROJECT_VERSION_SUFFIX}
9589 )
9690
97- install (
98- DIRECTORY ${PROJECT_INCLUDE_DIR} /
99- DESTINATION ${PROJECT_INCLUDE_DESTINATION}
100- )
91+ install (DIRECTORY ${PROJECT_INCLUDE_DIR} / DESTINATION ${PROJECT_INCLUDE_DESTINATION} )
10192
102- set (${PROJECT_NAME} _VERSION ${PROJECT_VERSION} CACHE INTERNAL "" )
93+ set (${PROJECT_NAME} _VERSION
94+ ${PROJECT_VERSION}
95+ CACHE INTERNAL ""
96+ )
10397endfunction ()
0 commit comments