-- Extra2D 测试套件构建脚本 -- 使用 GoogleTest 标准测试框架 -- 添加 gtest 包依赖 add_requires("gtest") target("extra2d_tests") set_kind("binary") set_languages("c++17") -- 添加 gtest 包 add_packages("gtest") -- 添加测试源文件 add_files("*.cpp") -- 添加头文件搜索路径 add_includedirs(".") add_includedirs("../include") -- 添加引擎源文件(仅核心模块,避免平台依赖) add_files("../src/context/context.cpp") add_files("../src/module/module_registry.cpp") add_files("../src/module/timer_module.cpp") add_files("../src/plugin/plugin_loader.cpp") add_files("../src/event/event_bus.cpp") add_files("../src/utils/random.cpp") -- 注意:logger.cpp 在 TEST_BUILD 模式下使用条件编译避免 SDL 依赖 -- 第三方库 add_includedirs("../third_party/nlohmann") add_includedirs("../third_party/stb") -- 定义 TEST_BUILD 宏,用于条件编译 add_defines("TEST_BUILD") -- 编译选项 if is_mode("debug") then add_defines("DEBUG") set_symbols("debug") set_optimize("none") else add_defines("NDEBUG") set_optimize("fastest") set_strip("all") end -- 警告设置 set_warnings("all") -- 平台特定设置 if is_plat("windows") then add_cxflags("/wd4267", "/wd4244", "/wd4996", "/wd4100", "/wd4458") add_syslinks("kernel32", "user32") elseif is_plat("mingw") then add_cxflags("-Wno-unused-parameter", "-Wno-unused-variable") else add_cxflags("-Wno-unused-parameter", "-Wno-unused-variable") end