Files
dps_lib/xmake.lua
2026-05-08 19:03:47 +08:00

102 lines
3.1 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
set_project("DnfProject")
set_version("1.0.0")
-- 设置 C++ 标准
set_languages("c++11")
-- 设置 32 位架构
set_arch("i386")
-- 添加 32 位编译选项
add_cxflags("-m32")
add_ldflags("-m32")
add_asflags("-m32")
add_shflags("-m32")
-- CentOS 7 兼容性选项 - 静态链接 C/C++ 运行时
add_cxflags("-static-libgcc", "-static-libstdc++")
add_ldflags("-static-libgcc", "-static-libstdc++")
-- 添加调试和发布模式
if is_mode("debug") then
set_symbols("debug")
set_optimize("none")
add_cxflags("-g", "-O0")
elseif is_mode("release") then
set_symbols("hidden")
set_optimize("fastest")
set_strip("all")
end
-- 定义编译选项
add_cxflags(
"-Wno-pointer-arith",
"-Wdeprecated-declarations",
"-fvisibility=hidden",
"-fno-asynchronous-unwind-tables",
"-fpic",
"-fexceptions",
"-Wno-int-to-pointer-cast"
)
-- 添加宏定义
add_defines("ASMJIT_STATIC")
-- 定义目标
target("Aurora")
set_kind("shared")
add_ldflags("-Wl,--no-as-needed")
-- 添加源文件
add_files("src/core/*.cpp")
add_files("src/script/*.cpp")
add_files("src/net/*.cpp")
add_files("src/utils/*.cpp")
add_files("third_party/asmjit/core/*.cpp")
add_files("third_party/asmjit/arm/*.cpp")
add_files("third_party/asmjit/x86/*.cpp")
-- 添加头文件搜索路径
add_includedirs("include")
add_includedirs("src")
add_includedirs("src/core")
add_includedirs("src/script")
add_includedirs("src/net")
add_includedirs("src/utils")
add_includedirs("src/sdk")
add_includedirs("third_party")
add_includedirs("third_party/lua")
add_includedirs("third_party/frida")
add_includedirs("3rd/squirrel/include")
add_includedirs("3rd/asio/include")
add_includedirs("3rd/openssl/include")
--系统32位路径
add_includedirs("/usr/local/opencc-32bit/include")
add_includedirs("/usr/local/keystone-32bit/include")
-- 添加系统库链接 (注意:不包含 atomic我们将手动静态链接)
add_syslinks("pthread", "dl", "resolv")
-- 设置输出名称
set_basename("Aurora")
-- 安装目标
set_targetdir("/dp_s/lib")
set_objectdir("$(builddir)/obj")
-- 使用 add_shflags 添加静态库(专门用于共享库链接)
-- 注意:这些路径是 CentOS 7 上的绝对路径
add_shflags("/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.a", {force = true})
add_shflags("3rd/squirrel/build/lib/libsqstdlib_static.a", {force = true})
add_shflags("3rd/squirrel/build/lib/libsquirrel_static.a", {force = true})
add_shflags("3rd/openssl/libssl.a", {force = true})
add_shflags("3rd/openssl/libcrypto.a", {force = true})
add_shflags("3rd/frida/libfrida-gum.a", {force = true})
add_shflags("/usr/local/libffi-32bit/lib/libffi.a", {force = true})
add_shflags("/usr/local/opencc-32bit/lib/libopencc.a", {force = true})
add_shflags("/usr/local/keystone-32bit/lib/libkeystone.a", {force = true})
add_shflags("3rd/zlib/libz.a", {force = true})
-- 静态链接 libatomic (必须在最后)
add_shflags("/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libatomic.a", {force = true})