Files @ r28761:d984b313db3e
Branch filter:

Location: cpp/openttd-patchpack/source/cmake/CreateRegression.cmake

translators
Update: Translations from eints
swedish: 1 change by SpamixOfficial
welsh: 280 changes by Ansbaradigeidfran
vietnamese: 245 changes by myquartz
estonian: 1 change by siimsoni
czech: 64 changes by LubosKolouch, 29 changes by adamek0202
arabic (egypt): 17 changes by AviationGamerX
luxembourgish: 247 changes by phreeze83
hungarian: 9 changes by nemesbala
indonesian: 21 changes by tsaqibfs, 19 changes by K4smun1
italian: 13 changes by AlphaJack
hebrew: 20 changes by Boltyansky
bulgarian: 107 changes by lamarin1
finnish: 4 changes by lanurmi
ukrainian: 18 changes by StepanIvasyn
catalan: 1 change by arnaullv
turkish: 120 changes by metsysma, 43 changes by EndChapter
danish: 23 changes by mamure, 23 changes by bscargo
dutch: 1 change by Jaws3rd
french: 1 change by Lishouuu
portuguese (brazilian): 362 changes by pasantoro
polish: 60 changes by pAter-exe
# 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()