summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxiaobfly <[email protected]>2024-07-29 10:40:24 +0800
committerxiaobfly <[email protected]>2024-07-29 10:40:24 +0800
commit0936bb1cd2d90cbfe936efaaaa0daf712e12728f (patch)
tree298ccb31574025dfaf9ca8adfc10aa88dbd43bab
parente7950146e3f157909f1bf74f7ab742f0d445503a (diff)
fix static qt link macro.
for example: before: $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/PrintSupport_resources_1/.rcc/qrc_qprintdialog.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/PrintSupport_resources_2/.rcc/qrc_qprintdialog1.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/Widgets_resources_1/.rcc/qrc_qstyle.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/Widgets_resources_2/.rcc/qrc_qstyle1.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/Widgets_resources_3/.rcc/qrc_qmessagebox.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/Gui_resources_1/.rcc/qrc_qpdf.cpp.obj $$[QT_INSTALL_PREFIX]/lib/objects-RelWithDebInfo/Gui_resources_2/.rcc/qrc_gui_shaders.cpp.obj after: "D:/Qt/Qt6.5.3/lib/objects-Debug/Widgets_resources_1/.rcc/qrc_qstyle.cpp.obj", "D:/Qt/Qt6.5.3/lib/objects-Debug/Widgets_resources_2/.rcc/qrc_qstyle1.cpp.obj", "D:/Qt/Qt6.5.3/lib/objects-Debug/Widgets_resources_3/.rcc/qrc_qmessagebox.cpp.obj", "D:/Qt/Qt6.5.3/lib/objects-Debug/Gui_resources_1/.rcc/qrc_qpdf.cpp.obj", "D:/Qt/Qt6.5.3/lib/objects-Debug/Gui_resources_2/.rcc/qrc_gui_shaders.cpp.obj",
-rw-r--r--xmake/rules/qt/load.lua27
1 files changed, 19 insertions, 8 deletions
diff --git a/xmake/rules/qt/load.lua b/xmake/rules/qt/load.lua
index 82bc25fbb..c9269b0b6 100644
--- a/xmake/rules/qt/load.lua
+++ b/xmake/rules/qt/load.lua
@@ -139,7 +139,7 @@ function _get_frameworks_from_target(target)
return table.unique(values)
end
-function _add_qmakeprllibs(target, prlfile, qtlibdir)
+function _add_qmakeprllibs(target, prlfile, qt)
if os.isfile(prlfile) then
local contents = io.readfile(prlfile)
local envs = {}
@@ -157,11 +157,22 @@ function _add_qmakeprllibs(target, prlfile, qtlibdir)
local libdir = lib:sub(3)
target:add("linkdirs", libdir)
else
- local libstr = string.gsub(lib, "%$%$%[QT_INSTALL_LIBS%]", qtlibdir)
- if libstr:startswith("-l") then
- libstr = libstr:sub(3)
+ if qt.qmldir then
+ lib = string.gsub(lib, "%$%$%[QT_INSTALL_QML%]", qt.qmldir)
end
- target:add("syslinks", libstr)
+ if qt.sdkdir then
+ lib = string.gsub(lib, "%$%$%[QT_INSTALL_PREFIX%]", qt.sdkdir)
+ end
+ if qt.pluginsdir then
+ lib = string.gsub(lib, "%$%$%[QT_INSTALL_PLUGINS%]", qt.pluginsdir)
+ end
+ if qt.libdir then
+ lib = string.gsub(lib, "%$%$%[QT_INSTALL_LIBS%]", qt.libdir)
+ end
+ if lib:startswith("-l") then
+ lib = lib:sub(3)
+ end
+ target:add("syslinks", lib)
end
end
end
@@ -295,7 +306,7 @@ function main(target, opt)
for _, qt_link in ipairs(target:values("qt.links")) do
for _, qt_libdir in ipairs(qtprldirs) do
local prl_file = path.join(qt_libdir, qt_link .. ".prl")
- _add_qmakeprllibs(target, prl_file, qt.libdir)
+ _add_qmakeprllibs(target, prl_file, qt)
end
end
@@ -354,7 +365,7 @@ function main(target, opt)
else
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_qmakeprllibs(target, path.join(qt.libdir, link .. ".prl"), qt)
_add_includedirs(target, path.join(qt.includedir, framework))
-- e.g. QtGui/5.15.0/QtGui/qpa/qplatformopenglcontext.h
_add_includedirs(target, path.join(qt.includedir, framework, qt.sdkver))
@@ -363,7 +374,7 @@ function main(target, opt)
else
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_qmakeprllibs(target, path.join(qt.libdir, link .. ".prl"), qt)
_add_includedirs(target, path.join(qt.includedir, framework))
_add_includedirs(target, path.join(qt.includedir, framework, qt.sdkver))
_add_includedirs(target, path.join(qt.includedir, framework, qt.sdkver, framework))