CMAKE: allow to install lua script files from src package for tests

master
Martin Gerhardy 2022-03-30 19:28:35 +02:00
parent 04455319fe
commit 672a3e89c7
1 changed files with 22 additions and 0 deletions

View File

@ -22,6 +22,8 @@ function(gtest_suite_begin name)
message(FATAL_ERROR "gtest_suite_begin(): called with invalid args '${${name}_UNPARSED_ARGUMENTS}'")
endif()
set_property(GLOBAL PROPERTY ${name}_Sources "")
set_property(GLOBAL PROPERTY ${name}_Files "")
set_property(GLOBAL PROPERTY ${name}_LUAFiles "")
set_property(GLOBAL PROPERTY ${name}_Deps "")
set_property(GLOBAL PROPERTY ${name}_EXECUTABLE True)
set_property(GLOBAL PROPERTY ${name}_INSTALL False)
@ -72,6 +74,18 @@ function(gtest_suite_files name)
endif()
endfunction()
function(gtest_suite_lua_sources name)
if (UNITTESTS)
set(ARG_LIST ${ARGV})
list(REMOVE_AT ARG_LIST 0)
get_property(list GLOBAL PROPERTY ${name}_LUAFiles)
foreach(entry ${ARG_LIST})
list(APPEND list ${entry})
endforeach()
set_property(GLOBAL PROPERTY ${name}_LUAFiles ${list})
endif()
endfunction()
function(gtest_suite_deps name)
if (UNITTESTS)
set(ARG_LIST ${ARGV})
@ -121,6 +135,14 @@ function(gtest_suite_end name)
get_filename_component(filename ${target_datafile} NAME)
configure_file(${DATA_DIR}/${datafile} ${CMAKE_BINARY_DIR}/${name}/${datafiledir}/${filename} COPYONLY)
endforeach()
get_property(luafiles GLOBAL PROPERTY ${name}_LUAFiles)
foreach (luafile ${luafiles})
get_filename_component(luafiledir ${luafile} DIRECTORY)
get_filename_component(filename ${luafile} NAME)
configure_file(lua/${luafile} ${CMAKE_BINARY_DIR}/${name}/${luafiledir}/${filename} COPYONLY)
endforeach()
engine_target_link_libraries(TARGET ${name} DEPENDENCIES ${deps})
set_target_properties(${name} PROPERTIES FOLDER ${name})
add_test(NAME ${name} COMMAND $<TARGET_FILE:${name}> --gtest_output=xml:${CMAKE_BINARY_DIR}/${name}.xml WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/${name}")