diff options
| -rw-r--r-- | xmake/rules/qt/load.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua index 8a83e5788..2c96cd5fa 100644 --- a/xmake/rules/qt/load.lua +++ b/xmake/rules/qt/load.lua @@ -22,6 +22,9 @@ -- @file load.lua -- +-- imports +import("core.project.target") + -- make link for framework function _link(framework, major) if major and framework:startswith("Qt") then @@ -30,6 +33,20 @@ function _link(framework, major) return framework end +-- find the static third-party links from qt link directories, e.g. libqt*.a +function _find_static_links_3rd(linkdirs) + local links = {} + for _, linkdir in ipairs(linkdirs) do + for _, libpath in ipairs(os.files(path.join(linkdir, is_plat("windows") and "qt*.lib" or "libqt*.a"))) do + local basename = path.basename(libpath) + if (is_mode("debug") and basename:endswith("_debug")) or not basename:endswith("_debug") then + table.insert(links, target.linkname(path.filename(libpath))) + end + end + end + return links +end + -- the main entry function main(target, opt) @@ -146,5 +163,8 @@ function main(target, opt) target:add("linkdirs", qt.linkdirs) target:add("links", "mingw32") end + + -- add some static third-party links if exists + target:add("links", _find_static_links_3rd(qt.linkdirs)) end |
