@@ -4,11 +4,11 @@ include(CMakePackageConfigHelpers)
44# arguments are stored in variables prefixed with `ARG_<NAME>`.
55#
66# @param {string[]} REQUIRED_ARG_NAMES
7- macro (require_argument_values REQUIRED_ARG_NAMES )
8- set (_REQUIRED_ARGS "${REQUIRED_ARG_NAMES} " )
9- foreach (_REQUIRED_ARG IN LISTS _REQUIRED_ARGS )
10- if (NOT DEFINED ARG_${_REQUIRED_ARG } OR ARG_${_REQUIRED_ARG } STREQUAL "" )
11- message (FATAL_ERROR "Empty value for argument: '${_REQUIRED_ARG } '" )
7+ macro (check_required_arguments_exist REQUIRED_ARG_NAMES )
8+ set (_NAMES "${REQUIRED_ARG_NAMES} " )
9+ foreach (_NAME IN LISTS _NAMES )
10+ if (NOT DEFINED ARG_${_NAME } OR ARG_${_NAME } STREQUAL "" )
11+ message (FATAL_ERROR "Empty value for argument: '${_NAME } '" )
1212 endif ()
1313 endforeach ()
1414endmacro ()
@@ -60,7 +60,7 @@ function(add_cpp_library)
6060 PUBLIC_HEADERS
6161 )
6262 cmake_parse_arguments (ARG "" "${SINGLE_VALUE_ARGS} " "${MULTI_VALUE_ARGS} " ${ARGN} )
63- require_argument_values ("${REQUIRED_ARGS} " )
63+ check_required_arguments_exist ("${REQUIRED_ARGS} " )
6464
6565 if (NOT DEFINED ARG_BUILD_INCLUDE_DIRS)
6666 set (ARG_BUILD_INCLUDE_DIRS "${PROJECT_SOURCE_DIR } /src" )
@@ -139,7 +139,7 @@ function(add_catch2_tests)
139139 SOURCES
140140 )
141141 cmake_parse_arguments (ARG "" "${SINGLE_VALUE_ARGS} " "${MULTI_VALUE_ARGS} " ${ARGN} )
142- require_argument_values ("${REQUIRED_ARGS} " )
142+ check_required_arguments_exist ("${REQUIRED_ARGS} " )
143143
144144 set (ALIAS_TARGET "${ARG_NAMESPACE} ::${ARG_NAME} " )
145145 set (UNIT_TEST_TARGET "unit-test-${ARG_NAME} " )
@@ -150,8 +150,8 @@ function(add_catch2_tests)
150150 ${UNIT_TEST_TARGET}
151151 PRIVATE
152152 Catch2::Catch2WithMain
153- ${ALIAS_TARGET}
154153 ${ARG_LINK_LIBRARIES}
154+ ${ALIAS_TARGET}
155155 )
156156 target_compile_features (${UNIT_TEST_TARGET} PRIVATE cxx_std_20 )
157157 set_property (
@@ -167,8 +167,8 @@ function(add_catch2_tests)
167167 target_link_libraries (
168168 ${ARG_UNIFIED_TEST_TARGET}
169169 PRIVATE
170- ${ALIAS_TARGET}
171170 ${ARG_LINK_LIBRARIES}
171+ ${ALIAS_TARGET}
172172 )
173173 endif ()
174174endfunction ()
@@ -177,12 +177,12 @@ endfunction()
177177#
178178# @param {string} NAME
179179# @param {string} NAMESPACE
180- # @param {string} [CONFIG_DEST_DIR] Destination to install the generated config file
181- # (`NAME-config.cmake`).
182- # @param {string} [CONFIG_INPUT_DIR] `configure_package_config_file` input file
183- # (`NAME-config.cmake.in`).
184- # @param {string} [CONFIG_OUTPUT_DIR] `configure_package_config_file` output file
185- # (`NAME-config.cmake`).
180+ # @param {string} [CONFIG_DEST_DIR="${CMAKE_INSTALL_LIBDIR}/cmake/${ARG_NAMESPACE}/libs"]
181+ # Destination to install the generated config file (`NAME-config.cmake`).
182+ # @param {string} [CONFIG_INPUT_DIR="${PROJECT_SOURCE_DIR}/cmake/libs"]
183+ # `configure_package_config_file` input file (`NAME-config.cmake.in`).
184+ # @param {string} [CONFIG_OUTPUT_DIR="${CMAKE_CURRENT_BINARY_DIR}" ] `configure_package_config_file`
185+ # output file (`NAME-config.cmake`).
186186function (install_library )
187187 set (SINGLE_VALUE_ARGS
188188 NAME
@@ -196,7 +196,7 @@ function(install_library)
196196 NAMESPACE
197197 )
198198 cmake_parse_arguments (ARG "" "${SINGLE_VALUE_ARGS} " "" ${ARGN} )
199- require_argument_values ("${REQUIRED_ARGS} " )
199+ check_required_arguments_exist ("${REQUIRED_ARGS} " )
200200
201201 if (NOT DEFINED ARG_CONFIG_DEST_DIR)
202202 set (ARG_CONFIG_DEST_DIR "${CMAKE_INSTALL_LIBDIR} /cmake/${ARG_NAMESPACE} /libs" )
@@ -219,15 +219,13 @@ function(install_library)
219219 NAMESPACE "${ARG_NAMESPACE} ::"
220220 )
221221
222+ set (CONFIG_FILE_NAME "${ARG_NAME} -config.cmake" )
223+ set (CONFIG_OUTPUT_PATH "${ARG_CONFIG_OUTPUT_DIR} /${CONFIG_FILE_NAME} " )
222224 configure_package_config_file (
223- ${ARG_CONFIG_INPUT_DIR} /${ARG_NAME}-config.cmake.in
224- ${ARG_CONFIG_OUTPUT_DIR} /${ARG_NAME}-config.cmake
225- INSTALL_DESTINATION ${ARG_CONFIG_DEST_DIR}
225+ " ${ARG_CONFIG_INPUT_DIR} /${CONFIG_FILE_NAME} .in"
226+ " ${CONFIG_OUTPUT_PATH} "
227+ INSTALL_DESTINATION " ${ARG_CONFIG_DEST_DIR} "
226228 )
227229
228- install (
229- FILES
230- ${ARG_CONFIG_OUTPUT_DIR} /${ARG_NAME} -config.cmake
231- DESTINATION ${ARG_CONFIG_DEST_DIR}
232- )
230+ install (FILES "${CONFIG_OUTPUT_PATH} " DESTINATION "${ARG_CONFIG_DEST_DIR} " )
233231endfunction ()
0 commit comments