internal/rosa: meson helper
All checks were successful
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 2m34s
Test / Hakurei (push) Successful in 4m1s
Test / ShareFS (push) Successful in 4m0s
Test / Hpkg (push) Successful in 4m31s
Test / Sandbox (race detector) (push) Successful in 5m9s
Test / Hakurei (race detector) (push) Successful in 5m58s
Test / Flake checks (push) Successful in 2m0s

This is used by quite a few projects.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-02-16 13:17:56 +09:00
parent 74dee11822
commit 67b2914c94
4 changed files with 162 additions and 107 deletions

View File

@@ -7,36 +7,27 @@ func (t Toolchain) newKmod() pkg.Artifact {
version = "34.2"
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
)
return t.New("kmod-"+version, 0, []pkg.Artifact{
t.Load(Python),
t.Load(Meson),
t.Load(PkgConfig),
t.Load(CMake),
t.Load(Ninja),
t.Load(Zlib),
t.Load(Zstd),
t.Load(OpenSSL),
t.Load(KernelHeaders),
}, nil, nil, `
cd "$(mktemp -d)"
meson setup \
--buildtype=release \
--prefix=/system \
-Dsysconfdir=/system/etc \
-Dbashcompletiondir=no \
-Dfishcompletiondir=no \
-Dxz=disabled \
-Dmanpages=false \
. /usr/src/kmod
meson compile
meson install \
--destdir=/work
`, pkg.Path(AbsUsrSrc.Append("kmod"), false, pkg.NewHTTPGetTar(
return t.NewViaMeson("kmod", version, pkg.NewHTTPGetTar(
nil, "https://www.kernel.org/pub/linux/utils/kernel/"+
"kmod/kmod-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
), &MesonAttr{
Configure: [][2]string{
{"Dsysconfdir", "/system/etc"},
{"Dbashcompletiondir", "no"},
{"Dfishcompletiondir", "no"},
{"Dxz", "disabled"},
{"Dmanpages", "false"},
},
// makes assumptions about the running kernel
SkipCheck: true,
},
t.Load(Zlib),
t.Load(Zstd),
t.Load(OpenSSL),
t.Load(KernelHeaders),
)
}
func init() { artifactsF[Kmod] = Toolchain.newKmod }