79 lines
2.7 KiB
CMake
79 lines
2.7 KiB
CMake
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
|
|
)
|
|
|
|
if(TARGET xcengine_project_managed_assemblies)
|
|
list(APPEND SCRIPTING_TEST_SOURCES
|
|
test_project_script_assembly.cpp
|
|
)
|
|
endif()
|
|
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(TARGET xcengine_project_managed_assemblies)
|
|
add_dependencies(scripting_tests xcengine_project_managed_assemblies)
|
|
|
|
file(TO_CMAKE_PATH "${XCENGINE_PROJECT_MANAGED_OUTPUT_DIR}" XCENGINE_PROJECT_MANAGED_OUTPUT_DIR_CMAKE)
|
|
file(TO_CMAKE_PATH "${XCENGINE_PROJECT_SCRIPT_CORE_DLL}" XCENGINE_PROJECT_SCRIPT_CORE_DLL_CMAKE)
|
|
file(TO_CMAKE_PATH "${XCENGINE_PROJECT_GAME_SCRIPTS_DLL}" XCENGINE_PROJECT_GAME_SCRIPTS_DLL_CMAKE)
|
|
|
|
target_compile_definitions(scripting_tests PRIVATE
|
|
XCENGINE_TEST_PROJECT_MANAGED_OUTPUT_DIR=\"${XCENGINE_PROJECT_MANAGED_OUTPUT_DIR_CMAKE}\"
|
|
XCENGINE_TEST_PROJECT_SCRIPT_CORE_DLL=\"${XCENGINE_PROJECT_SCRIPT_CORE_DLL_CMAKE}\"
|
|
XCENGINE_TEST_PROJECT_GAME_SCRIPTS_DLL=\"${XCENGINE_PROJECT_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
|
|
$<TARGET_FILE_DIR:scripting_tests>/assimp-vc143-mt.dll
|
|
)
|
|
endif()
|
|
|
|
include(GoogleTest)
|
|
gtest_discover_tests(scripting_tests)
|