summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-02-20 22:30:51 +0800
committerruki <[email protected]>2019-02-20 09:05:10 +0800
commite45301ff4d281e3a7ec302f0ad5e47e384416836 (patch)
tree421159b0f0c560db1a253002dbe4fcbfaf33fa6c
parentd02437ce6092ac015e6ba42068736d8ff8e3fa63 (diff)
improve static-qt on macos
-rw-r--r--xmake/rules/qt/load.lua24
1 files changed, 19 insertions, 5 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua
index 128a400dc..6413e3c27 100644
--- a/xmake/rules/qt/load.lua
+++ b/xmake/rules/qt/load.lua
@@ -79,6 +79,7 @@ function main(target, opt)
end
-- do frameworks for qt
+ local useframeworks = false
for _, framework in ipairs(target:get("frameworks")) do
-- translate qt frameworks
@@ -89,21 +90,34 @@ function main(target, opt)
-- add includedirs
if is_plat("macosx") then
- target:add("includedirs", path.join(qt.sdkdir, "lib/" .. framework .. ".framework/Headers"))
+ local frameworkdir = path.join(qt.sdkdir, "lib", framework .. ".framework")
+ if os.isdir(frameworkdir) then
+ target:add("includedirs", path.join(frameworkdir, "Headers"))
+ useframeworks = true
+ else
+ target:add("links", _link(framework, major))
+ target:add("includedirs", path.join(qt.sdkdir, "include", framework))
+ end
else
target:add("links", _link(framework, major))
- target:add("includedirs", path.join(qt.sdkdir, "include/" .. framework))
+ target:add("includedirs", path.join(qt.sdkdir, "include", framework))
end
end
end
-- add includedirs, linkdirs
if is_plat("macosx") then
- target:add("frameworks", "DiskArbitration", "IOKit")
- target:add("frameworkdirs", qt.linkdirs)
+ if useframeworks then
+ target:add("frameworks", "DiskArbitration", "IOKit")
+ target:add("frameworkdirs", qt.linkdirs)
+ target:add("rpathdirs", "@executable_path/Frameworks", qt.linkdirs)
+ else
+ target:set("frameworks", "DiskArbitration", "IOKit")
+ target:add("rpathdirs", qt.linkdirs)
+ target:add("includedirs", path.join(qt.sdkdir, "include"))
+ end
target:add("includedirs", path.join(qt.sdkdir, "mkspecs/macx-clang"))
target:add("linkdirs", qt.linkdirs)
- target:add("rpathdirs", "@executable_path/Frameworks", qt.linkdirs)
elseif is_plat("linux") then
target:set("frameworks", nil)
target:add("includedirs", path.join(qt.sdkdir, "include"))