diff --git a/cmake/googletest.cmake b/cmake/googletest.cmake index 4a438b21a..bc6faabf7 100644 --- a/cmake/googletest.cmake +++ b/cmake/googletest.cmake @@ -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 $ --gtest_output=xml:${CMAKE_BINARY_DIR}/${name}.xml WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/${name}")