diff options
| author | ruki <[email protected]> | 2019-02-20 22:30:51 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-02-20 09:05:10 +0800 |
| commit | e45301ff4d281e3a7ec302f0ad5e47e384416836 (patch) | |
| tree | 421159b0f0c560db1a253002dbe4fcbfaf33fa6c | |
| parent | d02437ce6092ac015e6ba42068736d8ff8e3fa63 (diff) | |
improve static-qt on macos
| -rw-r--r-- | xmake/rules/qt/load.lua | 24 |
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")) |
