Skip to content

Commit b3c200b

Browse files
committed
Refactor, use requires_arguments() for ensuring args are defined
1 parent 02d7909 commit b3c200b

File tree

4 files changed

+15
-80
lines changed

4 files changed

+15
-80
lines changed

cmake/rsp/cache.cmake

Lines changed: 8 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ include_guard(GLOBAL)
77
# Debug
88
message(VERBOSE "rsp/cache module included")
99

10+
include("rsp/helpers")
11+
1012
if (NOT DEFINED RSP_CACHE_EXPIRES_AT_KEY_AFFIX)
1113
set(RSP_CACHE_EXPIRES_AT_KEY_AFFIX "[rsp@expires_at]")
1214
endif ()
@@ -37,14 +39,7 @@ if (NOT COMMAND "cache_set")
3739
set(multiValueArgs "") # N/A
3840

3941
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
40-
41-
# Ensure required arguments are defined
42-
set(requiredArgs "KEY;VALUE")
43-
foreach (name ${requiredArgs})
44-
if (NOT DEFINED INPUT_${name})
45-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
46-
endif ()
47-
endforeach ()
42+
requires_arguments(INPUT "KEY;VALUE")
4843

4944
# Resolve optional arguments
5045
if (NOT DEFINED INPUT_TYPE)
@@ -104,14 +99,7 @@ if (NOT COMMAND "cache_get")
10499
set(multiValueArgs "") # N/A
105100

106101
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
107-
108-
# Ensure required arguments are defined
109-
set(requiredArgs "KEY")
110-
foreach (name ${requiredArgs})
111-
if (NOT DEFINED INPUT_${name})
112-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
113-
endif ()
114-
endforeach ()
102+
requires_arguments(INPUT "KEY")
115103

116104
# Resolve optional arguments
117105
if (NOT DEFINED INPUT_DEFAULT)
@@ -160,14 +148,7 @@ if (NOT COMMAND "cache_has")
160148
set(multiValueArgs "") # N/A
161149

162150
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
163-
164-
# Ensure required arguments are defined
165-
set(requiredArgs "KEY;OUTPUT")
166-
foreach (name ${requiredArgs})
167-
if (NOT DEFINED INPUT_${name})
168-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
169-
endif ()
170-
endforeach ()
151+
requires_arguments(INPUT "KEY;OUTPUT")
171152

172153
# Determine if entry exists in cache
173154
if (DEFINED CACHE{${INPUT_KEY}})
@@ -227,14 +208,7 @@ if (NOT COMMAND "cache_forget")
227208
set(multiValueArgs "") # N/A
228209

229210
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
230-
231-
# Ensure required arguments are defined
232-
set(requiredArgs "KEY")
233-
foreach (name ${requiredArgs})
234-
if (NOT DEFINED INPUT_${name})
235-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
236-
endif ()
237-
endforeach ()
211+
requires_arguments(INPUT "KEY")
238212

239213
# Remove entry if it exists
240214
if (DEFINED CACHE{${INPUT_KEY}})
@@ -305,14 +279,7 @@ if (NOT COMMAND "cache_remember")
305279
set(multiValueArgs "") # N/A
306280

307281
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
308-
309-
# Ensure required arguments are defined
310-
set(requiredArgs "KEY;CALLBACK")
311-
foreach (name ${requiredArgs})
312-
if (NOT DEFINED INPUT_${name})
313-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
314-
endif ()
315-
endforeach ()
282+
requires_arguments(INPUT "KEY;CALLBACK")
316283

317284
# Ensure that callback exists
318285
if (NOT COMMAND ${INPUT_CALLBACK})
@@ -389,14 +356,7 @@ if (NOT COMMAND "cache_has_expired")
389356
set(multiValueArgs "") # N/A
390357

391358
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
392-
393-
# Ensure required arguments are defined
394-
set(requiredArgs "KEY;OUTPUT")
395-
foreach (name ${requiredArgs})
396-
if (NOT DEFINED INPUT_${name})
397-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
398-
endif ()
399-
endforeach ()
359+
requires_arguments(INPUT "KEY;OUTPUT")
400360

401361
# Make expires at key...
402362
cache_make_expires_at_key(EXPIRES_AT_KEY INPUT_KEY)

cmake/rsp/git.cmake

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ include_guard(GLOBAL)
77
# Debug
88
message(VERBOSE "rsp/git module included")
99

10+
include("rsp/helpers")
11+
1012
# Ensure that git is available or this module will not work
1113
find_package(Git REQUIRED)
1214

@@ -40,14 +42,7 @@ if (NOT COMMAND "git_find_version_tag")
4042
set(multiValueArgs "") # N/A
4143

4244
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
43-
44-
# Ensure required arguments are defined
45-
set(requiredArgs "OUTPUT;WORKING_DIRECTORY")
46-
foreach (name ${requiredArgs})
47-
if (NOT DEFINED INPUT_${name})
48-
message(FATAL_ERROR "${name} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
49-
endif ()
50-
endforeach ()
45+
requires_arguments(INPUT "OUTPUT;WORKING_DIRECTORY")
5146

5247
# Resolve optional arguments
5348
if (NOT DEFINED INPUT_MATCH_PATTERN)

cmake/rsp/helpers.cmake

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,7 @@ if (NOT COMMAND "safeguard_properties")
100100
set(multiValueArgs PROPERTIES)
101101

102102
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
103-
104-
# Ensure required arguments are defined
105-
set(requiredArgs "CALLBACK;PROPERTIES")
106-
foreach (arg ${requiredArgs})
107-
if (NOT DEFINED INPUT_${arg})
108-
message(FATAL_ERROR "${arg} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
109-
endif ()
110-
endforeach ()
103+
requires_arguments(INPUT "CALLBACK;PROPERTIES")
111104

112105
# ---------------------------------------------------------------------------------------------- #
113106

cmake/rsp/testing.cmake

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ include_guard(GLOBAL)
77
# Debug
88
message(VERBOSE "rsp/testing module included")
99

10+
include("rsp/helpers")
1011
include("rsp/cache")
1112
include("rsp/testing/asserts")
1213

@@ -90,14 +91,7 @@ if (NOT COMMAND "define_test_suite")
9091
set(multiValueArgs "") # N/A
9192

9293
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
93-
94-
# Ensure required arguments are defined
95-
set(requiredArgs "DIRECTORY")
96-
foreach (arg ${requiredArgs})
97-
if (NOT DEFINED INPUT_${arg})
98-
message(FATAL_ERROR "${arg} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
99-
endif ()
100-
endforeach ()
94+
requires_arguments(INPUT "DIRECTORY")
10195

10296
# ---------------------------------------------------------------------------------------------- #
10397

@@ -450,14 +444,7 @@ if (NOT COMMAND "add_ctest_using_executor")
450444
set(multiValueArgs LABELS CALLBACK_ARG) # N/A
451445

452446
cmake_parse_arguments(INPUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
453-
454-
# Ensure required arguments are defined
455-
set(requiredArgs "NAME;CALLBACK;TEST_CASE")
456-
foreach (arg ${requiredArgs})
457-
if (NOT DEFINED INPUT_${arg})
458-
message(FATAL_ERROR "${arg} argument is missing, for ${CMAKE_CURRENT_FUNCTION}()")
459-
endif ()
460-
endforeach ()
447+
requires_arguments(INPUT "NAME;CALLBACK;TEST_CASE")
461448

462449
# ---------------------------------------------------------------------------------------------- #
463450
# Resolve optional arguments

0 commit comments

Comments
 (0)