zengine_test/engine/xmake/rule_api/rule_api.lua
2024-08-01 23:45:44 +08:00

23 lines
806 B
Lua

function add_define(target, name, is_static)
local api = string.upper(name) .. "_API"
if is_static then
target:add("defines", api .. "=", api .. "_VAL", {public = false})
else
target:add("defines", api.."=__declspec(dllimport)", {interface=true})
target:add("defines", api.."=__declspec(dllexport)", {public=false})
end
end
function main(target)
local name = target:name()
local is_static = target:kind() == "static"
add_define(target, name, is_static)
local deps = target:get("deps")
if not deps then return end
import("core.project.project")
for _,dep in ipairs(deps) do
local deptarget = project.target(dep)
if deptarget:kind() == "static" then
add_define(target, dep, is_static)
end
end
end