@@ -26,22 +26,21 @@ function(
26
26
CARGO_ARGS_OUT
27
27
CARGO_RESULT_DIR_OUT
28
28
WITH_TESTS_OUT
29
+ TESTS_PREFIX_OUT
29
30
FOLDER_OUT
30
31
TARGET_SOURCE_FILES_OUT
31
32
)
32
33
cmake_parse_arguments (
33
34
PARSED_ARGS
34
35
"WITH_TESTS"
35
- "MANIFEST_PATH;FOLDER"
36
+ "MANIFEST_PATH;FOLDER;TESTS_PREFIX "
36
37
""
37
38
${ARGN}
38
39
)
39
40
40
41
foreach (TARGET_SOURCE_FILE ${PARSED_ARGS_UNPARSED_ARGUMENTS} )
41
42
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /${TARGET_SOURCE_FILE} )
42
- message (FATAL_ERROR "Cannot find source file:
43
- ${TARGET_SOURCE_FILE} "
44
- )
43
+ message (FATAL_ERROR "Cannot find source file: ${TARGET_SOURCE_FILE} " )
45
44
endif ()
46
45
endforeach ()
47
46
@@ -110,6 +109,18 @@ function(
110
109
PARENT_SCOPE
111
110
)
112
111
set (${WITH_TESTS_OUT} ${PARSED_ARGS_WITH_TESTS} PARENT_SCOPE )
112
+
113
+ if (PARSED_ARGS_TESTS_PREFIX )
114
+ if (NOT ${PARSED_ARGS_WITH_TESTS} )
115
+ message (FATAL_ERROR "TESTS_PREFIX was specified as ${PARSED_ARGS_TESTS_PREFIX} ,"
116
+ " but WITH_TESTS option is not present!"
117
+ )
118
+ endif ()
119
+ set (${TESTS_PREFIX_OUT} ${PARSED_ARGS_TESTS_PREFIX} PARENT_SCOPE )
120
+ else ()
121
+ set (${TESTS_PREFIX_OUT} "" PARENT_SCOPE )
122
+ endif ()
123
+
113
124
if (PARSED_ARGS_FOLDER )
114
125
set (${FOLDER_OUT} ${PARSED_ARGS_FOLDER} PARENT_SCOPE )
115
126
endif ()
@@ -124,6 +135,7 @@ function(cargo_add_library LIB_NAME)
124
135
CARGO_ARGS
125
136
CARGO_RESULT_DIR
126
137
WITH_TESTS
138
+ TESTS_PREFIX
127
139
FOLDER
128
140
LIB_SOURCE_FILES
129
141
${ARGN}
@@ -205,7 +217,7 @@ function(cargo_add_library LIB_NAME)
205
217
206
218
if (${WITH_TESTS} AND BUILD_TESTING )
207
219
message (STATUS "Adding tests for ${LIB_NAME} library" )
208
- set (TESTS_TARGET_NAME ${LIB_NAME} _tests )
220
+ set (TESTS_TARGET_NAME ${TESTS_PREFIX}${ LIB_NAME} _tests )
209
221
add_test (NAME ${TESTS_TARGET_NAME} COMMAND cargo test ${CARGO_ARGS} )
210
222
endif ()
211
223
@@ -231,6 +243,7 @@ function(
231
243
CARGO_ARGS
232
244
CARGO_RESULT_DIR
233
245
WITH_TESTS
246
+ TESTS_PREFIX
234
247
FOLDER
235
248
TARGET_SOURCE_FILES
236
249
${ARGN}
@@ -261,7 +274,7 @@ function(
261
274
262
275
if (${WITH_TESTS} AND BUILD_TESTING )
263
276
message (STATUS "Adding tests for ${TARGET_NAME_AND_TYPE} " )
264
- add_test (NAME ${TARGET_NAME} _tests COMMAND cargo test ${CARGO_ARGS}
277
+ add_test (NAME ${TESTS_PREFIX}${ TARGET_NAME} _tests COMMAND cargo test ${CARGO_ARGS}
265
278
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
266
279
)
267
280
endif ()
0 commit comments