summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"))