XMake: Qt as packages, proof of concept

This commit is contained in:
Jérôme Leclercq
2021-07-28 16:13:22 +02:00
parent 0bb443b0d0
commit 8397fd257b
7 changed files with 185 additions and 21 deletions

View File

@@ -0,0 +1,35 @@
package("qt5base")
set_kind("binary")
set_homepage("https://www.qt.io")
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")
on_load(function (package)
-- I think find_qt could be moved here
import("detect.sdks.find_qt")
local qt = find_qt()
if qt then
package:data_set("qtdir", qt)
end
end)
on_fetch(function (package)
local qt = package:data("qtdir")
if not qt then
return
end
return {
qtdir = qt,
}
end)
-- TODO: on_install using aqtinstall
on_test(function (package)
local qt = package:data("qtdir")
os.vrun(path.join(qt.bindir, "moc", " -v"))
os.vrun(path.join(qt.bindir, "rcc", " -v"))
os.vrun(path.join(qt.bindir, "uic", " -v"))
end)

View File

@@ -0,0 +1,19 @@
package("qt5core")
set_homepage("https://www.qt.io")
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_deps("qt5base", {public=true})
on_fetch(function (package)
local base = package:dep("qt5base")
local qt = base:data("qtdir")
return {
qtdir = qt,
links = table.wrap("Qt5Core" .. (package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir),
includedirs = table.wrap(qt.includedir)
}
end)

View File

@@ -0,0 +1,18 @@
package("qt5gui")
set_homepage("https://www.qt.io")
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_deps("qt5base", "qt5core", "qt5core")
on_fetch(function (package)
local base = package:dep("qt5base")
local qt = base:data("qtdir")
return {
links = table.wrap("Qt5Gui" .. (package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir),
includedirs = table.wrap(qt.includedir)
}
end)

View File

@@ -0,0 +1,19 @@
package("qt5widgets")
set_homepage("https://www.qt.io")
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_deps("qt5base", "qt5core", "qt5gui")
on_fetch(function (package)
local base = package:dep("qt5base")
local qt = base:data("qtdir")
print(qt)
return {
links = table.wrap("Qt5Widgets" .. (package:is_debug() and "d" or "")),
linkdirs = table.wrap(qt.libdir),
includedirs = table.wrap(qt.includedir)
}
end)