internal/rosa/package: migrate glslang
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m52s
Test / Hakurei (push) Successful in 3m50s
Test / ShareFS (push) Successful in 3m48s
Test / Sandbox (race detector) (push) Successful in 5m24s
Test / Hakurei (race detector) (push) Successful in 6m27s
Test / Flake checks (push) Successful in 1m19s
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m52s
Test / Hakurei (push) Successful in 3m50s
Test / ShareFS (push) Successful in 3m48s
Test / Sandbox (race detector) (push) Successful in 5m24s
Test / Hakurei (race detector) (push) Successful in 6m27s
Test / Flake checks (push) Successful in 1m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -1,125 +1,6 @@
|
|||||||
package rosa
|
package rosa
|
||||||
|
|
||||||
import (
|
import "hakurei.app/internal/pkg"
|
||||||
"slices"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"hakurei.app/internal/pkg"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (t Toolchain) newSPIRVHeaders() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "1.4.341.0"
|
|
||||||
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"
|
|
||||||
)
|
|
||||||
return t.NewPackage("spirv-headers", version, newFromGitHub(
|
|
||||||
"KhronosGroup/SPIRV-Headers",
|
|
||||||
"vulkan-sdk-"+version,
|
|
||||||
checksum,
|
|
||||||
), nil, &CMakeHelper{
|
|
||||||
// upstream has no tests
|
|
||||||
SkipTest: true,
|
|
||||||
}), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newSPIRVHeaders, &Metadata{
|
|
||||||
Name: "spirv-headers",
|
|
||||||
Description: "machine-readable files for the SPIR-V Registry",
|
|
||||||
Website: "https://github.com/KhronosGroup/SPIRV-Headers",
|
|
||||||
|
|
||||||
ID: 230542,
|
|
||||||
|
|
||||||
// upstream changed version scheme, anitya incapable of filtering them
|
|
||||||
latest: func(v *Versions) string {
|
|
||||||
for _, s := range v.Stable {
|
|
||||||
fields := strings.SplitN(s, ".", 4)
|
|
||||||
if len(fields) != 4 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if slices.ContainsFunc(fields, func(f string) bool {
|
|
||||||
return slices.ContainsFunc([]byte(f), func(d byte) bool {
|
|
||||||
return d < '0' || d > '9'
|
|
||||||
})
|
|
||||||
}) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
return v.Latest
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newSPIRVTools() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "2026.1"
|
|
||||||
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv"
|
|
||||||
)
|
|
||||||
return t.NewPackage("spirv-tools", version, newFromGitHub(
|
|
||||||
"KhronosGroup/SPIRV-Tools",
|
|
||||||
"v"+version,
|
|
||||||
checksum,
|
|
||||||
), nil, &CMakeHelper{
|
|
||||||
Cache: []KV{
|
|
||||||
{"SPIRV-Headers_SOURCE_DIR", "/system"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Python,
|
|
||||||
|
|
||||||
SPIRVHeaders,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newSPIRVTools, &Metadata{
|
|
||||||
Name: "spirv-tools",
|
|
||||||
Description: "an API and commands for processing SPIR-V modules",
|
|
||||||
Website: "https://github.com/KhronosGroup/SPIRV-Tools",
|
|
||||||
|
|
||||||
Dependencies: P{
|
|
||||||
SPIRVHeaders,
|
|
||||||
},
|
|
||||||
|
|
||||||
ID: 14894,
|
|
||||||
|
|
||||||
latest: (*Versions).getStable,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newGlslang() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "16.3.0"
|
|
||||||
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN"
|
|
||||||
)
|
|
||||||
return t.NewPackage("glslang", version, newFromGitHub(
|
|
||||||
"KhronosGroup/glslang",
|
|
||||||
version,
|
|
||||||
checksum,
|
|
||||||
), &PackageAttr{
|
|
||||||
// test suite writes to source
|
|
||||||
Writable: true,
|
|
||||||
Chmod: true,
|
|
||||||
}, &CMakeHelper{
|
|
||||||
Cache: []KV{
|
|
||||||
{"BUILD_SHARED_LIBS", "ON"},
|
|
||||||
{"ALLOW_EXTERNAL_SPIRV_TOOLS", "ON"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Python,
|
|
||||||
Bash,
|
|
||||||
Diffutils,
|
|
||||||
|
|
||||||
SPIRVTools,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newGlslang, &Metadata{
|
|
||||||
Name: "glslang",
|
|
||||||
Description: "reference front end for GLSL/ESSL",
|
|
||||||
Website: "https://github.com/KhronosGroup/glslang",
|
|
||||||
|
|
||||||
ID: 205796,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
|
|||||||
31
internal/rosa/package/glslang.az
Normal file
31
internal/rosa/package/glslang.az
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package glslang {
|
||||||
|
description = "reference front end for GLSL/ESSL";
|
||||||
|
website = "https://github.com/KhronosGroup/glslang";
|
||||||
|
anitya = 205796;
|
||||||
|
|
||||||
|
version* = "16.3.0";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/glslang";
|
||||||
|
tag = version;
|
||||||
|
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN";
|
||||||
|
};
|
||||||
|
|
||||||
|
// test suite writes to source
|
||||||
|
writable = true;
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
cache = {
|
||||||
|
"BUILD_SHARED_LIBS": "ON";
|
||||||
|
"ALLOW_EXTERNAL_SPIRV_TOOLS": "ON";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
python,
|
||||||
|
bash,
|
||||||
|
diffutils,
|
||||||
|
|
||||||
|
spirv-tools,
|
||||||
|
];
|
||||||
|
}
|
||||||
47
internal/rosa/package/spirv.az
Normal file
47
internal/rosa/package/spirv.az
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
package spirv-headers {
|
||||||
|
description = "machine-readable files for the SPIR-V Registry";
|
||||||
|
website = "https://github.com/KhronosGroup/SPIRV-Headers";
|
||||||
|
anitya = 230542;
|
||||||
|
// upstream changed version scheme, anitya incapable of filtering them
|
||||||
|
latest = anityaFilterSPIRV;
|
||||||
|
|
||||||
|
version* = "1.4.341.0";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/SPIRV-Headers";
|
||||||
|
tag = "vulkan-sdk-"+version;
|
||||||
|
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
// upstream has no tests
|
||||||
|
skipTest = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
package spirv-tools {
|
||||||
|
description = "an API and commands for processing SPIR-V modules";
|
||||||
|
website = "https://github.com/KhronosGroup/SPIRV-Tools";
|
||||||
|
anitya = 14894;
|
||||||
|
latest = anityaFallback;
|
||||||
|
|
||||||
|
version* = "2026.1";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/SPIRV-Tools";
|
||||||
|
tag = "v"+version;
|
||||||
|
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
cache = {
|
||||||
|
"SPIRV-Headers_SOURCE_DIR": "/system";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
python,
|
||||||
|
|
||||||
|
spirv-headers,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ spirv-headers ];
|
||||||
|
}
|
||||||
@@ -454,6 +454,23 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
}
|
}
|
||||||
return v.Latest
|
return v.Latest
|
||||||
},
|
},
|
||||||
|
k("anityaFilterSPIRV"): func(v *Versions) string {
|
||||||
|
for _, e := range v.Stable {
|
||||||
|
fields := strings.SplitN(e, ".", 4)
|
||||||
|
if len(fields) != 4 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if slices.ContainsFunc(fields, func(f string) bool {
|
||||||
|
return slices.ContainsFunc([]byte(f), func(d byte) bool {
|
||||||
|
return d < '0' || d > '9'
|
||||||
|
})
|
||||||
|
}) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
return v.Latest
|
||||||
|
},
|
||||||
}
|
}
|
||||||
s.frame.Func = map[unique.Handle[azalea.Ident]]azalea.F{
|
s.frame.Func = map[unique.Handle[azalea.Ident]]azalea.F{
|
||||||
|
|
||||||
@@ -689,6 +706,26 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
k("cmake"): {F: func(
|
||||||
|
args azalea.FArgs,
|
||||||
|
) (v any, set bool, err error) {
|
||||||
|
var attr CMakeHelper
|
||||||
|
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("append"): &attr.Append,
|
||||||
|
k("buildType"): &attr.BuildType,
|
||||||
|
k("cache"): &attr.Cache,
|
||||||
|
k("postInstall"): &attr.Script,
|
||||||
|
k("test"): &attr.Test,
|
||||||
|
k("skipTest"): &attr.SkipTest,
|
||||||
|
k("make"): &attr.Make,
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
v = &attr
|
||||||
|
set = true
|
||||||
|
return
|
||||||
|
}},
|
||||||
|
|
||||||
k("meson"): {F: func(
|
k("meson"): {F: func(
|
||||||
args azalea.FArgs,
|
args azalea.FArgs,
|
||||||
) (v any, set bool, err error) {
|
) (v any, set bool, err error) {
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ var (
|
|||||||
KernelHeaders = H("kernel-headers")
|
KernelHeaders = H("kernel-headers")
|
||||||
Firmware = H("firmware")
|
Firmware = H("firmware")
|
||||||
ACL = H("acl")
|
ACL = H("acl")
|
||||||
ArgpStandalone = H("argp-standalone")
|
|
||||||
Automake = H("automake")
|
Automake = H("automake")
|
||||||
Bash = H("bash")
|
Bash = H("bash")
|
||||||
Binutils = H("binutils")
|
Binutils = H("binutils")
|
||||||
@@ -78,8 +77,6 @@ var (
|
|||||||
Libxtrans = H("libxtrans")
|
Libxtrans = H("libxtrans")
|
||||||
LMSensors = H("lm_sensors")
|
LMSensors = H("lm_sensors")
|
||||||
M4 = H("m4")
|
M4 = H("m4")
|
||||||
MuslFts = H("musl-fts")
|
|
||||||
MuslObstack = H("musl-obstack")
|
|
||||||
NSS = H("nss")
|
NSS = H("nss")
|
||||||
NSSCACert = H("nss-cacert")
|
NSSCACert = H("nss-cacert")
|
||||||
Ncurses = H("ncurses")
|
Ncurses = H("ncurses")
|
||||||
@@ -99,7 +96,6 @@ var (
|
|||||||
PythonWheel = H("python-wheel")
|
PythonWheel = H("python-wheel")
|
||||||
QEMU = H("qemu")
|
QEMU = H("qemu")
|
||||||
Sed = H("sed")
|
Sed = H("sed")
|
||||||
SPIRVHeaders = H("spirv-headers")
|
|
||||||
SPIRVLLVMTranslator = H("spirv-llvm-translator")
|
SPIRVLLVMTranslator = H("spirv-llvm-translator")
|
||||||
SPIRVTools = H("spirv-tools")
|
SPIRVTools = H("spirv-tools")
|
||||||
SquashfsTools = H("squashfs-tools")
|
SquashfsTools = H("squashfs-tools")
|
||||||
|
|||||||
Reference in New Issue
Block a user