XMake: Improve Qt packages

This commit is contained in:
Jérôme Leclercq 2022-02-25 13:25:07 +01:00
parent 6611cdf72e
commit 874f87f079
5 changed files with 34 additions and 5 deletions

View File

@ -6,6 +6,9 @@ package("aqt")
set_license("MIT")
if is_host("windows") then
add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true})
if os.arch() == "x86" then
add_urls("https://github.com/miurahr/aqtinstall/releases/download/v$(version)/aqt_x86.exe")
add_versions("2.0.6", "b980985cfeb1cefef1d2ebab91ae4e648873a27fae8831deff8144661480c56a")

View File

@ -5,6 +5,9 @@ package("qt5base")
set_description("Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.")
set_license("LGPL-3")
add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true})
add_versions("5.15.2", "dummy")
add_versions("5.12.5", "dummy")
@ -51,7 +54,6 @@ package("qt5base")
end)
on_install("windows", "linux", "macosx", "mingw", "android", "iphoneos", function (package)
local installdir = package:installdir()
local version = package:version() or semver.new("5.15.2")
local host
@ -140,6 +142,7 @@ package("qt5base")
end
end
local installdir = package:installdir()
os.vrunv("aqt", {"install-qt", "-O", installdir, host, target, version:shortstr(), arch})
-- move files to root
@ -183,7 +186,7 @@ package("qt5base")
local installeddir
for _, subdir in pairs(subdirs) do
local results = os.dirs(path.join(installdir, version, subdir), function (file, isdir) print(file) print(isdir) return false end)
local results = os.dirs(path.join(installdir, version, subdir), function (file, isdir) return false end)
if results and #results > 0 then
installeddir = results[1]
break

View File

@ -4,8 +4,14 @@ package("qt5core")
set_description("Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.")
set_license("LGPL-3")
add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true})
add_versions("5.15.2", "dummy")
add_versions("5.12.5", "dummy")
on_load(function (package)
package:add("deps", "qt5base", {debug = package:is_debug()})
package:add("deps", "qt5base", {debug = package:is_debug(), version = package:version_str()})
end)
on_fetch(function (package)
@ -17,6 +23,7 @@ package("qt5core")
return {
qtdir = qt,
version = qt.version,
includedirs = {qt.includedir, path.join(qt.includedir, "QtCore")},
links = table.wrap("Qt5Core" .. (package:is_plat("windows") and package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir)

View File

@ -4,8 +4,14 @@ package("qt5gui")
set_description("Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.")
set_license("LGPL-3")
add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true})
add_versions("5.15.2", "dummy")
add_versions("5.12.5", "dummy")
on_load(function (package)
package:add("deps", "qt5base", "qt5core", {debug = package:is_debug()})
package:add("deps", "qt5base", "qt5core", {debug = package:is_debug(), version = package:version_str()})
end)
on_fetch(function (package)
@ -16,6 +22,7 @@ package("qt5gui")
end
return {
version = qt.version,
includedirs = {qt.includedir, path.join(qt.includedir, "QtGui")},
links = table.wrap("Qt5Gui" .. (package:is_plat("windows") and package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir),

View File

@ -4,18 +4,27 @@ package("qt5widgets")
set_description("Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.")
set_license("LGPL-3")
add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MD", readonly = true})
add_versions("5.15.2", "dummy")
add_versions("5.12.5", "dummy")
on_load(function (package)
package:add("deps", "qt5base", "qt5core", "qt5gui", {debug = package:is_debug()})
package:add("deps", "qt5base", "qt5core", "qt5gui", {debug = package:is_debug(), version = package:version_str()})
end)
on_fetch(function (package)
print("on_fetch")
local base = package:dep("qt5base")
local qt = base:data("qtdir")
if not qt then
print("nani")
return
end
return {
version = qt.version,
includedirs = {qt.includedir, path.join(qt.includedir, "QtWidgets")},
links = table.wrap("Qt5Widgets" .. (package:is_plat("windows") and package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir)