2026-02-11 19:40:26 +08:00
|
|
|
-- ==============================================
|
|
|
|
|
-- Extra2D - 2D Game Engine
|
|
|
|
|
-- Build System: Xmake
|
2026-02-15 12:36:36 +08:00
|
|
|
--
|
2026-02-20 12:48:36 +08:00
|
|
|
-- 窗口后端: GLFW
|
|
|
|
|
-- 渲染后端: OpenGL
|
2026-02-11 19:40:26 +08:00
|
|
|
-- ==============================================
|
|
|
|
|
|
|
|
|
|
-- 项目元信息
|
|
|
|
|
set_project("Extra2D")
|
2026-02-12 21:57:41 +08:00
|
|
|
set_version("1.2.0")
|
2026-02-11 19:40:26 +08:00
|
|
|
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()
|
|
|
|
|
|
|
|
|
|
-- ==============================================
|
2026-02-21 14:41:39 +08:00
|
|
|
-- 添加依赖包
|
2026-02-11 19:40:26 +08:00
|
|
|
-- ==============================================
|
|
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
add_requires("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader")
|
2026-02-11 19:40:26 +08:00
|
|
|
|
|
|
|
|
-- ==============================================
|
2026-02-21 14:41:39 +08:00
|
|
|
-- 引擎库目标
|
2026-02-11 19:40:26 +08:00
|
|
|
-- ==============================================
|
|
|
|
|
|
2026-02-21 14:41:39 +08:00
|
|
|
target("extra2d")
|
|
|
|
|
set_kind("static")
|
2026-02-11 19:40:26 +08:00
|
|
|
|
2026-02-21 14:41:39 +08:00
|
|
|
-- 引擎核心源文件
|
|
|
|
|
add_files("Extra2D/src/**.cpp")
|
2026-02-15 15:35:26 +08:00
|
|
|
|
2026-02-21 14:41:39 +08:00
|
|
|
-- GLFW 窗口后端源文件
|
|
|
|
|
add_files("Extra2D/src/platform/glfw/*.cpp")
|
2026-02-11 19:40:26 +08:00
|
|
|
|
2026-02-21 14:41:39 +08:00
|
|
|
-- 头文件路径
|
|
|
|
|
add_includedirs("Extra2D/include", {public = true})
|
|
|
|
|
add_includedirs("Extra2D/include/extra2d/platform", {public = true})
|
2026-02-11 19:40:26 +08:00
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 依赖包
|
|
|
|
|
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})
|
2026-02-21 14:41:39 +08:00
|
|
|
|
|
|
|
|
-- 启用压缩库
|
|
|
|
|
add_defines("E2D_USE_ZSTD", "E2D_USE_LZ4", "E2D_USE_ZLIB", {public = true})
|
|
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 编译器标志 (MSVC)
|
|
|
|
|
add_cxflags("/W4", {force = true})
|
|
|
|
|
add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true})
|
2026-02-21 14:41:39 +08:00
|
|
|
|
|
|
|
|
if is_mode("debug") then
|
|
|
|
|
add_defines("_DEBUG", {public = true})
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/Od", "/Zi", {force = true})
|
2026-02-21 14:41:39 +08:00
|
|
|
else
|
|
|
|
|
add_defines("NDEBUG", {public = true})
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/O2", {force = true})
|
2026-02-21 14:41:39 +08:00
|
|
|
end
|
|
|
|
|
target_end()
|
2026-02-20 22:15:01 +08:00
|
|
|
|
|
|
|
|
-- ==============================================
|
|
|
|
|
-- 测试目标
|
|
|
|
|
-- ==============================================
|
|
|
|
|
|
|
|
|
|
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")
|
|
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 依赖包
|
|
|
|
|
add_packages("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader")
|
|
|
|
|
add_syslinks("winmm", "imm32", "version", "setupapi", "vulkan-1")
|
2026-02-20 22:15:01 +08:00
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 编译器标志 (MSVC)
|
|
|
|
|
add_cxflags("/W4", {force = true})
|
|
|
|
|
add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
|
|
|
|
|
if is_mode("debug") then
|
|
|
|
|
add_defines("_DEBUG")
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/Od", "/Zi", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
else
|
|
|
|
|
add_defines("NDEBUG")
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/O2", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
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")
|
|
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 依赖包
|
|
|
|
|
add_packages("glm", "nlohmann_json", "glfw", "zstd", "lz4", "zlib", "vulkan-headers", "vulkan-loader")
|
|
|
|
|
add_syslinks("winmm", "imm32", "version", "setupapi", "vulkan-1")
|
2026-02-20 22:15:01 +08:00
|
|
|
|
2026-02-21 14:49:48 +08:00
|
|
|
-- 编译器标志 (MSVC)
|
|
|
|
|
add_cxflags("/W4", {force = true})
|
|
|
|
|
add_cxflags("/wd4100", "/wd4189", "/wd4458", "/wd4324", "/wd4310", "/wd4505", "/wd4702", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
|
|
|
|
|
if is_mode("debug") then
|
|
|
|
|
add_defines("_DEBUG")
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/Od", "/Zi", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
else
|
|
|
|
|
add_defines("NDEBUG")
|
2026-02-21 14:49:48 +08:00
|
|
|
add_cxflags("/O2", {force = true})
|
2026-02-20 22:15:01 +08:00
|
|
|
end
|
|
|
|
|
target_end()
|