diff options
| author | cofecofe <[email protected]> | 2024-06-24 21:49:06 +0800 |
|---|---|---|
| committer | cofecofe <[email protected]> | 2024-06-24 21:49:06 +0800 |
| commit | e5838d655e8ed3cb5efe729c7ed6e626d95cf6fa (patch) | |
| tree | 06381a4b25a9157d1e6a8e03ac5868be04845343 /xmake | |
| parent | 86b549d7ec56de8fcc19a3ce6f8fbcbf6661dc8b (diff) | |
| parent | 91268bb362559784a1df570bf39f51e245f887fb (diff) | |
Merge branch 'master' of https://github.com/cofecofe/xmake
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/rules/qt/load.lua | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index b5490ee79..d66d24164 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -26,7 +26,7 @@ import("core.base.hashset") import("lib.detect.find_library") -- make link for framework -function _link(target, linkdirs, framework, qt_sdkver) +function _link(target, linkdirs, framework, qt_sdkver, infix) if framework:startswith("Qt") then local debug_suffix = "_debug" if target:is_plat("windows") then @@ -41,12 +41,12 @@ function _link(target, linkdirs, framework, qt_sdkver) debug_suffix = "" end if qt_sdkver:ge("5.0") then - framework = "Qt" .. qt_sdkver:major() .. framework:sub(3) .. (is_mode("debug") and debug_suffix or "") + framework = "Qt" .. qt_sdkver:major() .. framework:sub(3) .. infix .. (is_mode("debug") and debug_suffix or "") else -- for qt4.x, e.g. QtGui4.lib if target:is_plat("windows", "mingw") then - framework = "Qt" .. framework:sub(3) .. (is_mode("debug") and debug_suffix or "") .. qt_sdkver:major() + framework = "Qt" .. framework:sub(3) .. infix .. (is_mode("debug") and debug_suffix or "") .. qt_sdkver:major() else - framework = "Qt" .. framework:sub(3) .. (is_mode("debug") and debug_suffix or "") + framework = "Qt" .. framework:sub(3) .. infix .. (is_mode("debug") and debug_suffix or "") end end if target:is_plat("android") then --> -lQt5Core_armeabi/-lQt5CoreDebug_armeabi for 5.14.x @@ -185,6 +185,25 @@ function main(target, opt) raise("Qt SDK version not found, please run `xmake f --qt_sdkver=xxx` to set it.") end + -- get qt sdk infix + local infix = "" + if qt.mkspecsdir then + if os.isfile(path.join(qt.mkspecsdir, "qconfig.pri")) then + local qconfig = io.readfile(path.join(qt.mkspecsdir, "qconfig.pri")) + if qconfig then + qconfig = qconfig:trim():split("\n") + for _, line in ipairs(qconfig) do + if line:startswith("QT_LIBINFIX") then + local kv = line:split("=", {plain = true, limit = 2}) + if #kv == 2 then + infix = kv[2]:trim() + end + end + end + end + end + end + -- add -fPIC if not target:is_plat("windows", "mingw") then target:add("cxflags", "-fPIC") @@ -333,7 +352,7 @@ function main(target, opt) _add_includedirs(target, path.join(frameworkdir, "Headers", qt.sdkver, framework)) frameworksset:insert(framework) else - local link = _link(target, qt.libdir, framework, qt_sdkver) + local link = _link(target, qt.libdir, framework, qt_sdkver, infix) target:add("syslinks", link) _add_qmakeprllibs(target, path.join(qt.libdir, link .. ".prl"), qt.libdir) _add_includedirs(target, path.join(qt.includedir, framework)) @@ -342,7 +361,7 @@ function main(target, opt) _add_includedirs(target, path.join(qt.includedir, framework, qt.sdkver, framework)) end else - local link = _link(target, qt.libdir, framework, qt_sdkver) + local link = _link(target, qt.libdir, framework, qt_sdkver, infix) target:add("syslinks", link) _add_qmakeprllibs(target, path.join(qt.libdir, link .. ".prl"), qt.libdir) _add_includedirs(target, path.join(qt.includedir, framework)) |
