add_library(faset_build_service STATIC ${PROJECT_SOURCE_DIR}/src/editor/build_service.cpp ${PROJECT_SOURCE_DIR}/src/editor/build_cache.cpp ${PROJECT_SOURCE_DIR}/src/editor/build_diagnostics.cpp) target_include_directories(faset_build_service PUBLIC ${PROJECT_SOURCE_DIR}/include) target_compile_features(faset_build_service PUBLIC cxx_std_20) target_link_libraries(faset_build_service PUBLIC faset_core faset_scripting_project PRIVATE faset_assets faset_authoring Threads::Threads) if(BUILD_TESTING) add_executable(faset_build_diagnostics_tests ${PROJECT_SOURCE_DIR}/tests/build_diagnostics_tests.cpp) target_link_libraries(faset_build_diagnostics_tests PRIVATE faset_build_service) add_test(NAME build_diagnostics COMMAND faset_build_diagnostics_tests) add_executable(faset_build_cache_tests ${PROJECT_SOURCE_DIR}/tests/build_cache_tests.cpp) target_link_libraries(faset_build_cache_tests PRIVATE faset_build_service) target_compile_definitions(faset_build_cache_tests PRIVATE FASET_ENGINE_SOURCE="${PROJECT_SOURCE_DIR}") add_test(NAME build_cache COMMAND faset_build_cache_tests) add_executable(faset_build_service_tests ${PROJECT_SOURCE_DIR}/tests/build_service_tests.cpp) target_link_libraries(faset_build_service_tests PRIVATE faset_build_service faset_assets) target_compile_definitions(faset_build_service_tests PRIVATE FASET_ENGINE_SOURCE="${PROJECT_SOURCE_DIR}") add_test(NAME process_and_cook COMMAND faset_build_service_tests) add_executable(faset_build_schema_tool ${PROJECT_SOURCE_DIR}/tests/build_schema_tool.cpp) target_link_libraries(faset_build_schema_tool PRIVATE faset_core) add_executable(faset_build_schema_tests ${PROJECT_SOURCE_DIR}/tests/build_schema_tests.cpp) target_link_libraries(faset_build_schema_tests PRIVATE faset_build_service faset_authoring faset_editor_commands) add_dependencies(faset_build_schema_tests faset_build_schema_tool) add_test(NAME build_schema_publication COMMAND faset_build_schema_tests $ ${PROJECT_SOURCE_DIR}) # This fixture performs many full cache invalidations and process launches. # Windows runner startup and antivirus overhead exceed 60 seconds even when # individual native fixture commands finish normally. if(WIN32) set_tests_properties(build_schema_publication PROPERTIES TIMEOUT 240) else() set_tests_properties(build_schema_publication PROPERTIES TIMEOUT 60) endif() endif()