mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
59 lines
2.5 KiB
CMake
59 lines
2.5 KiB
CMake
# Macro which contains all bits and pieces to create the regression tests.
|
|
# This creates both a standalone target 'regression', and it integrates with
|
|
# 'ctest'. The first is prefered, as it is more verbose, and takes care of
|
|
# dependencies correctly.
|
|
#
|
|
# create_regression(file1 ...)
|
|
#
|
|
macro(create_regression)
|
|
set(REGRESSION_SOURCE_FILES ${ARGN})
|
|
|
|
foreach(REGRESSION_SOURCE_FILE IN LISTS REGRESSION_SOURCE_FILES)
|
|
string(REPLACE "${CMAKE_SOURCE_DIR}/regression/" "" REGRESSION_SOURCE_FILE_NAME "${REGRESSION_SOURCE_FILE}")
|
|
string(CONCAT REGRESSION_BINARY_FILE "${CMAKE_BINARY_DIR}/ai/" "${REGRESSION_SOURCE_FILE_NAME}")
|
|
|
|
add_custom_command(OUTPUT ${REGRESSION_BINARY_FILE}
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${REGRESSION_SOURCE_FILE}
|
|
${REGRESSION_BINARY_FILE}
|
|
MAIN_DEPENDENCY ${REGRESSION_SOURCE_FILE}
|
|
COMMENT "Copying ${REGRESSION_SOURCE_FILE_NAME} regression file"
|
|
)
|
|
|
|
list(APPEND REGRESSION_BINARY_FILES ${REGRESSION_BINARY_FILE})
|
|
endforeach()
|
|
|
|
get_filename_component(REGRESSION_TEST_NAME "${CMAKE_CURRENT_SOURCE_DIR}" NAME)
|
|
|
|
# Create a new target which copies regression files
|
|
add_custom_target(regression_${REGRESSION_TEST_NAME}_files
|
|
DEPENDS
|
|
${REGRESSION_BINARY_FILES}
|
|
)
|
|
|
|
add_dependencies(regression_files regression_${REGRESSION_TEST_NAME}_files)
|
|
|
|
add_custom_target(regression_${REGRESSION_TEST_NAME}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
|
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
|
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
|
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
|
DEPENDS openttd regression_${REGRESSION_TEST_NAME}_files
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
COMMENT "Running regression test ${REGRESSION_TEST_NAME}"
|
|
)
|
|
|
|
# Also make sure that 'make test' runs the regression
|
|
add_test(NAME regression_${REGRESSION_TEST_NAME}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
|
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
|
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
|
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
|
|
add_dependencies(regression regression_${REGRESSION_TEST_NAME})
|
|
endmacro()
|