cmake_minimum_required(VERSION 3.15) project(XCEngine_ScriptingTests) set(SCRIPTING_TEST_SOURCES test_script_field_storage.cpp test_script_component.cpp test_script_engine.cpp ) if(XCENGINE_ENABLE_MONO_SCRIPTING) list(APPEND SCRIPTING_TEST_SOURCES test_mono_script_runtime.cpp ) endif() add_executable(scripting_tests ${SCRIPTING_TEST_SOURCES}) if(MSVC) set_target_properties(scripting_tests PROPERTIES LINK_FLAGS "/NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:libcmt.lib" ) endif() target_link_libraries(scripting_tests PRIVATE XCEngine GTest::gtest GTest::gtest_main ) target_include_directories(scripting_tests PRIVATE ${CMAKE_SOURCE_DIR}/engine/include ) if(TARGET xcengine_managed_assemblies) add_dependencies(scripting_tests xcengine_managed_assemblies) file(TO_CMAKE_PATH "${XCENGINE_MANAGED_OUTPUT_DIR}" XCENGINE_MANAGED_OUTPUT_DIR_CMAKE) file(TO_CMAKE_PATH "${XCENGINE_SCRIPT_CORE_DLL}" XCENGINE_SCRIPT_CORE_DLL_CMAKE) file(TO_CMAKE_PATH "${XCENGINE_GAME_SCRIPTS_DLL}" XCENGINE_GAME_SCRIPTS_DLL_CMAKE) target_compile_definitions(scripting_tests PRIVATE XCENGINE_TEST_MANAGED_OUTPUT_DIR=\"${XCENGINE_MANAGED_OUTPUT_DIR_CMAKE}\" XCENGINE_TEST_SCRIPT_CORE_DLL=\"${XCENGINE_SCRIPT_CORE_DLL_CMAKE}\" XCENGINE_TEST_GAME_SCRIPTS_DLL=\"${XCENGINE_GAME_SCRIPTS_DLL_CMAKE}\" ) endif() if(WIN32 AND EXISTS "${CMAKE_SOURCE_DIR}/engine/third_party/assimp/bin/assimp-vc143-mt.dll") add_custom_command(TARGET scripting_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/engine/third_party/assimp/bin/assimp-vc143-mt.dll $/assimp-vc143-mt.dll ) endif() include(GoogleTest) gtest_discover_tests(scripting_tests)