############################################################################## # Unit Tests ############################################################################## find_package(Boost COMPONENTS filesystem unit_test_framework system REQUIRED) set(TEST_SOURCES main.cpp test_globals.cpp test_animation.cpp test_archive.cpp test_buoyancy.cpp test_character.cpp test_chase.cpp test_cutscene.cpp test_config.cpp test_data.cpp test_FileIndex.cpp test_GameData.cpp test_GameWorld.cpp test_globals.hpp test_items.cpp test_Input.cpp test_lifetime.cpp test_loaderdff.cpp test_LoaderIPL.cpp test_Logger.cpp test_menu.cpp test_object.cpp test_object_data.cpp test_pickup.cpp test_renderer.cpp test_rwbstream.cpp test_SaveGame.cpp test_scriptmachine.cpp test_state.cpp test_text.cpp test_trafficdirector.cpp test_vehicle.cpp test_VisualFX.cpp test_weapon.cpp test_world.cpp test_ZoneData.cpp # Hack in rwgame sources until there's a per-target test suite "${CMAKE_SOURCE_DIR}/rwgame/GameConfig.cpp" "${CMAKE_SOURCE_DIR}/rwgame/GameWindow.cpp" "${CMAKE_SOURCE_DIR}/rwgame/GameInput.cpp" ) add_executable(run_tests ${TEST_SOURCES}) target_compile_definitions(run_tests PRIVATE "RW_TEST_WITH_DATA=$>" "BOOST_TEST_DYN_LINK" ) target_include_directories(run_tests SYSTEM PRIVATE ${Boost_INCLUDE_DIRS} ${BULLET_INCLUDE_DIR} ) target_include_directories(run_tests PRIVATE "${CMAKE_SOURCE_DIR}/tests" "${CMAKE_SOURCE_DIR}/rwgame" ) target_link_libraries(run_tests PRIVATE rwengine ${OPENGL_LIBRARIES} ${BULLET_LIBRARIES} SDL2::SDL2 ${PNG_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY} ) add_test(UnitTests run_tests)