-- ============================================== -- Extra2D - 2D Game Engine -- Build System: Xmake -- -- 窗口后端: GLFW -- 渲染后端: OpenGL -- ============================================== -- 项目元信息 set_project("Extra2D") set_version("1.2.0") set_license("MIT") -- 语言和编码设置 set_languages("c++17") set_encodings("utf-8") -- 构建模式 add_rules("mode.debug", "mode.release") -- ============================================== -- 构建选项 -- ============================================== option("debug_logs") set_default(false) set_showmenu(true) set_description("Enable debug logging") option_end() -- ============================================== -- 添加依赖包 -- ============================================== add_requires("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader") -- ============================================== -- 引擎库目标 -- ============================================== target("extra2d") set_kind("static") -- 引擎核心源文件 add_files("Extra2D/src/**.cpp") -- GLFW 窗口后端源文件 add_files("Extra2D/src/platform/glfw/*.cpp") -- 头文件路径 add_includedirs("Extra2D/include", {public = true}) add_includedirs("Extra2D/include/extra2d/platform", {public = true}) -- 依赖包 add_packages("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader", {public = true}) -- 系统库链接 add_syslinks("winmm", "imm32", "version", "setupapi", "vulkan-1", {public = true}) -- 启用压缩库 add_defines("E2D_USE_ZSTD", "E2D_USE_LZ4", "E2D_USE_ZLIB", {public = true}) -- 编译器标志 (MSVC) add_cxflags("/W4", {force = true}) add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true}) if is_mode("debug") then add_defines("_DEBUG", {public = true}) add_cxflags("/Od", "/Zi", {force = true}) else add_defines("NDEBUG", {public = true}) add_cxflags("/O2", {force = true}) end target_end() -- ============================================== -- 测试目标 -- ============================================== target("extra2d_tests") set_kind("binary") set_default(false) -- 测试源文件 add_files("Tests/test_framework.cpp") add_files("Tests/test_main.cpp") add_files("Tests/test_data_processor.cpp") add_files("Tests/test_asset_cache.cpp") add_files("Tests/test_asset_pack.cpp") add_files("Tests/test_asset_service.cpp") -- 头文件路径 add_includedirs("Extra2D/include", {public = true}) add_includedirs("Tests") -- 依赖引擎库 add_deps("extra2d") -- 依赖包 add_packages("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader") add_syslinks("winmm", "imm32", "version", "setupapi", "vulkan-1") -- 编译器标志 (MSVC) add_cxflags("/W4", {force = true}) add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true}) if is_mode("debug") then add_defines("_DEBUG") add_cxflags("/Od", "/Zi", {force = true}) else add_defines("NDEBUG") add_cxflags("/O2", {force = true}) end target_end() -- ============================================== -- 资源打包工具 -- ============================================== target("asset_packer") set_kind("binary") set_default(false) -- 源文件 add_files("Tools/asset_packer.cpp") -- 头文件路径 add_includedirs("Extra2D/include") -- 依赖引擎库 add_deps("extra2d") -- 依赖包 add_packages("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader") add_syslinks("winmm", "imm32", "version", "setupapi", "vulkan-1") -- 编译器标志 (MSVC) add_cxflags("/W4", {force = true}) add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true}) if is_mode("debug") then add_defines("_DEBUG") add_cxflags("/Od", "/Zi", {force = true}) else add_defines("NDEBUG") add_cxflags("/O2", {force = true}) end target_end()