Extra2D/xmake/engine.lua

56 lines
2.3 KiB
Lua
Raw Normal View History

2026-02-11 19:40:26 +08:00
-- ==============================================
-- Extra2D 引擎库共享配置
-- 被主项目和示例共享使用
-- ==============================================
-- 获取当前平台
local function get_current_plat()
return get_config("plat") or os.host()
end
-- 定义 Extra2D 引擎库目标
function define_extra2d_engine()
target("extra2d")
set_kind("static")
add_files("src/**.cpp")
add_files("third_party/glad/src/glad.c")
2026-02-11 19:40:26 +08:00
add_includedirs("include", {public = true})
add_includedirs("third_party", {public = true})
add_includedirs("third_party/glad/include", {public = true})
2026-02-11 19:40:26 +08:00
local plat = get_current_plat()
if plat == "mingw" then
add_defines("_UNICODE", "UNICODE")
-- 使用 xmake 官方包
add_packages("glm", "libsdl2", "libsdl2_mixer", {public = true})
add_syslinks("winmm", "imm32", "version", "setupapi", {public = true})
elseif plat == "switch" then
2026-02-11 19:40:26 +08:00
local devkitPro = os.getenv("DEVKITPRO") or "C:/devkitPro"
add_includedirs(devkitPro .. "/portlibs/switch/include", {public = true})
add_linkdirs(devkitPro .. "/portlibs/switch/lib")
-- Switch 平台使用 OpenGL ES + EGL + Mesa 驱动
-- 注意:链接顺序很重要,被依赖的库要放在后面
2026-02-11 19:40:26 +08:00
add_syslinks("SDL2_mixer", "SDL2", "opusfile", "opus", "vorbisidec", "ogg",
"modplug", "mpg123", "FLAC", "GLESv2", "EGL", "glapi", "drm_nouveau",
2026-02-11 19:40:26 +08:00
{public = true})
end
add_cxflags("-Wall", "-Wextra", {force = true})
add_cxflags("-Wno-unused-variable", "-Wno-unused-function", "-Wno-unused-parameter", {force = true})
add_cxflags("-Wno-strict-aliasing", "-Wno-implicit-fallthrough", {force = true})
add_cxflags("-Wno-missing-field-initializers", {force = true})
add_cxxflags("-Wno-deprecated-copy", "-Wno-class-memaccess", {force = true})
if is_mode("debug") then
add_defines("E2D_DEBUG", "_DEBUG", {public = true})
add_cxxflags("-O0", "-g", {force = true})
else
add_defines("NDEBUG", {public = true})
add_cxxflags("-O2", {force = true})
end
target_end()
end