summaryrefslogtreecommitdiff
path: root/xmake/core/package/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-08-09 23:48:46 +0800
committerruki <[email protected]>2023-08-09 23:48:46 +0800
commit3660a7f4d4ef298fd4dff2092f19fa981fcd354d (patch)
tree2c405a8a05583871b1238bbfbe0ef0ed53399bc2 /xmake/core/package/package.lua
parent682560e43ac5ac6610d16cbf4aacfcb505c3e8f8 (diff)
improve to pass flags to packages #4046
Diffstat (limited to 'xmake/core/package/package.lua')
-rw-r--r--xmake/core/package/package.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 6efded860..36a9aba9f 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -2086,6 +2086,19 @@ function _instance:_generate_build_configs(configs, opt)
if opt.sourcekind == "cxx" and configs.exceptions == nil and self:has_tool("cxx", "cl") then
configs.exceptions = "cxx"
end
+
+ -- pass user flags to on_test, because some flags need be passed to ldflags in on_test
+ -- e.g. add_requireconfs("**", {configs = {cxflags = "/fsanitize=address", ldflags = "/fsanitize=address"}})
+ --
+ -- @see https://github.com/xmake-io/xmake/issues/4046
+ --
+ for name, flags in pairs(self:configs()) do
+ if name:endswith("flags") and self:extraconf("configs", name, "builtin") then
+ configs[name] = table.wrap(configs[name] or {})
+ table.join2(configs[name], flags)
+ end
+ end
+
if configs and (configs.ldflags or configs.shflags) then
configs.force = {ldflags = configs.ldflags, shflags = configs.shflags}
configs.ldflags = nil