@@ -125,23 +125,42 @@ if(BUILD_TESTING)
125125 endif ()
126126endif ()
127127
128- if (BUILD_TESTING)
129- # add_python_test()
130- # CMake function to generate and build python test.
131- # Parameters:
132- # the python filename
133- # e.g.:
134- # add_python_test(foo.py)
135- function (add_python_test FILE_NAME)
136- message (STATUS "Configuring test ${FILE_NAME} ..." )
137- get_filename_component (TEST_NAME ${FILE_NAME} NAME_WE )
138- add_test (
139- NAME python_test_${TEST_NAME}
140- COMMAND ${VENV_Python3_EXECUTABLE} -m pytest ${FILE_NAME}
141- WORKING_DIRECTORY ${VENV_DIR} )
142- message (STATUS "Configuring test ${FILE_NAME} done" )
143- endfunction ()
144- endif ()
128+ # add_python_test()
129+ # CMake function to generate and build python test.
130+ # Parameters:
131+ # FILE_NAME: the python filename
132+ # e.g.:
133+ # add_python_test(
134+ # FILE_NAME
135+ # foo.py
136+ # )
137+ function (add_python_test)
138+ if (NOT BUILD_TESTING)
139+ return ()
140+ endif ()
141+
142+ set (options "" )
143+ set (oneValueArgs FILE_NAME)
144+ set (multiValueArgs "" )
145+ cmake_parse_arguments (TEST
146+ "${options} "
147+ "${oneValueArgs} "
148+ "${multiValueArgs} "
149+ ${ARGN}
150+ )
151+ if (NOT TEST_FILE_NAME)
152+ message (FATAL_ERROR "no FILE_NAME provided" )
153+ endif ()
154+ get_filename_component (TEST_NAME ${TEST_FILE_NAME} NAME_WE )
155+
156+ message (STATUS "Configuring test ${TEST_FILE_NAME} ..." )
157+
158+ add_test (
159+ NAME python_test_${TEST_NAME}
160+ COMMAND ${VENV_Python3_EXECUTABLE} -m pytest ${TEST_FILE_NAME}
161+ WORKING_DIRECTORY ${VENV_DIR} )
162+ message (STATUS "Configuring test ${TEST_FILE_NAME} ...DONE" )
163+ endfunction ()
145164
146165#######################
147166## PYTHON WRAPPERS ##
@@ -184,7 +203,7 @@ file(GENERATE
184203# COMMAND ${CMAKE_COMMAND} -E copy setup.py setup.py
185204# WORKING_DIRECTORY python)
186205
187- # Look for python modules
206+ # Look for required python modules
188207search_python_module(
189208 NAME setuptools
190209 PACKAGE setuptools)
@@ -262,18 +281,36 @@ endif()
262281# add_python_example()
263282# CMake function to generate and build python example.
264283# Parameters:
265- # the python filename
284+ # FILE_NAME: the Python filename
266285# e.g.:
267- # add_python_example(foo.py)
268- function (add_python_example FILE_NAME)
269- message (STATUS "Configuring example ${FILE_NAME} ..." )
270- get_filename_component (EXAMPLE_NAME ${FILE_NAME} NAME_WE )
286+ # add_python_example(
287+ # FILE_NAME
288+ # foo.py
289+ # )
290+ function (add_python_example)
291+ if (NOT BUILD_TESTING)
292+ return ()
293+ endif ()
271294
272- if (BUILD_TESTING)
273- add_test (
274- NAME python_example_${EXAMPLE_NAME}
275- COMMAND ${VENV_Python3_EXECUTABLE} ${FILE_NAME}
276- WORKING_DIRECTORY ${VENV_DIR} )
295+ set (options "" )
296+ set (oneValueArgs FILE_NAME)
297+ set (multiValueArgs "" )
298+ cmake_parse_arguments (EXAMPLE
299+ "${options} "
300+ "${oneValueArgs} "
301+ "${multiValueArgs} "
302+ ${ARGN}
303+ )
304+ if (NOT EXAMPLE_FILE_NAME)
305+ message (FATAL_ERROR "no FILE_NAME provided" )
277306 endif ()
278- message (STATUS "Configuring example ${FILE_NAME} done" )
307+ get_filename_component (EXAMPLE_NAME ${EXAMPLE_FILE_NAME} NAME_WE )
308+
309+ message (STATUS "Configuring example ${EXAMPLE_FILE_NAME} ..." )
310+
311+ add_test (
312+ NAME python_example_${EXAMPLE_NAME}
313+ COMMAND ${VENV_Python3_EXECUTABLE} ${EXAMPLE_FILE_NAME}
314+ WORKING_DIRECTORY ${VENV_DIR} )
315+ message (STATUS "Configuring example ${EXAMPLE_FILE_NAME} ...DONE" )
279316endfunction ()
0 commit comments