mirror of https://github.com/CGAL/cgal
Correctly handle `.cmd` files
The trick to use the CMake command `separate_arguments` to interpret the lines of the `.cmd` file.
This commit is contained in:
parent
0f1999f1bf
commit
c30560143b
|
|
@ -19,25 +19,36 @@ function(create_single_source_cgal_program firstfile )
|
||||||
add_executable(${exe_name} ${all})
|
add_executable(${exe_name} ${all})
|
||||||
|
|
||||||
if(BUILD_TESTING)
|
if(BUILD_TESTING)
|
||||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin")
|
set(cin_file "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin")
|
||||||
|
if(EXISTS ${cin_file})
|
||||||
add_test(NAME ${exe_name}
|
add_test(NAME ${exe_name}
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
-DCMD:STRING=$<TARGET_FILE:${exe_name}>
|
-DCMD:STRING=$<TARGET_FILE:${exe_name}>
|
||||||
-DCIN:STRING=${exe_name}.cin
|
-DCIN:STRING=${cin_file}
|
||||||
-P ${CGAL_MODULES_DIR}/run_test_with_cin.cmake
|
-P "${CGAL_MODULES_DIR}/run_test_with_cin.cmake")
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
# message(STATUS "add test: ${exe_name} < ${cin_file}")
|
||||||
message(STATUS "add test: ${exe_name} < ${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin")
|
|
||||||
else()
|
else()
|
||||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cmd")
|
# TODO: deal with shell globbing; if the `cmd` file contains
|
||||||
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cmd" ARGS)
|
# a `*`, then interprete the command using bash.
|
||||||
|
set(cmd_file "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cmd")
|
||||||
|
if(EXISTS ${cmd_file})
|
||||||
|
file(STRINGS "${cmd_file}" CMD_LINES)
|
||||||
|
set(ARGS)
|
||||||
|
# message(STATUS "DEBUG test ${exe_name}")
|
||||||
|
foreach(CMD_LINE ${CMD_LINES})
|
||||||
|
# message(STATUS " command line: ${CMD_LINE}")
|
||||||
|
separate_arguments(CMD_LINE_ARGS UNIX_COMMAND ${CMD_LINE})
|
||||||
|
# message(STATUS " args: ${CMD_LINE_ARGS}")
|
||||||
|
list(APPEND ARGS ${CMD_LINE_ARGS})
|
||||||
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "add test: ${exe_name} ${ARGS}")
|
# message(STATUS "add test: ${exe_name} ${ARGS}")
|
||||||
add_test(NAME ${exe_name}
|
add_test(NAME ${exe_name} COMMAND ${exe_name} ${ARGS})
|
||||||
COMMAND ${exe_name} ${ARGS}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
endif()
|
endif()
|
||||||
set_property(TEST "${exe_name}"
|
set_property(TEST "${exe_name}"
|
||||||
APPEND PROPERTY LABELS "${PROJECT_NAME}")
|
APPEND PROPERTY LABELS "${PROJECT_NAME}")
|
||||||
|
set_property(TEST "${exe_name}"
|
||||||
|
PROPERTY WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
endif(BUILD_TESTING)
|
endif(BUILD_TESTING)
|
||||||
|
|
||||||
add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${exe_name} )
|
add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${exe_name} )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue