summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-08-31 23:39:57 +0800
committerruki <[email protected]>2023-08-31 23:39:57 +0800
commit5a1835abf86edde5bac60267379ed8c1efaae46f (patch)
tree4148a61f5159648283a69b73165225218da0ea60
parentccc860bdb47daea33c48c334a14c1b090e0ad9cf (diff)
improve qt frameworks for windows
-rw-r--r--xmake/rules/qt/load.lua22
1 files changed, 16 insertions, 6 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua
index 360e92037..7886e38bf 100644
--- a/xmake/rules/qt/load.lua
+++ b/xmake/rules/qt/load.lua
@@ -123,13 +123,13 @@ function _get_target_cppversion(target)
end
end
--- get values from target
+-- get frameworks from target
-- @see https://github.com/xmake-io/xmake/issues/4135
-function _get_values_from_target(target, name)
- local values = table.wrap(target:get(name))
- table.join2(values, target:get_from_opts(name))
- table.join2(values, target:get_from_pkgs(name))
- table.join2(values, target:get_from_deps(name, {interface = true}))
+function _get_frameworks_from_target(target)
+ local values = table.wrap(target:get("frameworks"))
+ table.join2(values, target:get_from_opts("frameworks"))
+ table.join2(values, target:get_from_pkgs("frameworks"))
+ table.join2(values, target:get_from_deps("__qt_frameworks", {interface = true}))
return table.unique(values)
end
@@ -237,6 +237,16 @@ function main(target, opt)
end
target:add("syslinks", target:values("qt.links"))
+ -- backup qt frameworks
+ local qt_frameworks = target:get("frameworks")
+ if qt_frameworks then
+ target:set("__qt_frameworks", qt_frameworks)
+ end
+ local qt_frameworks_extra = target:extraconf("frameworks")
+ if qt_frameworks_extra then
+ target:extraconf_set("__qt_frameworks", qt_frameworks_extra)
+ end
+
-- add frameworks
if opt.frameworks then
target:add("frameworks", opt.frameworks)