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
|
||||
|
||||
import (
|
||||
"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,
|
||||
})
|
||||
}
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||
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
|
||||
},
|
||||
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{
|
||||
|
||||
@@ -689,6 +706,26 @@ func (s *S) getFrame() azalea.Frame {
|
||||
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(
|
||||
args azalea.FArgs,
|
||||
) (v any, set bool, err error) {
|
||||
|
||||
@@ -7,7 +7,6 @@ var (
|
||||
KernelHeaders = H("kernel-headers")
|
||||
Firmware = H("firmware")
|
||||
ACL = H("acl")
|
||||
ArgpStandalone = H("argp-standalone")
|
||||
Automake = H("automake")
|
||||
Bash = H("bash")
|
||||
Binutils = H("binutils")
|
||||
@@ -78,8 +77,6 @@ var (
|
||||
Libxtrans = H("libxtrans")
|
||||
LMSensors = H("lm_sensors")
|
||||
M4 = H("m4")
|
||||
MuslFts = H("musl-fts")
|
||||
MuslObstack = H("musl-obstack")
|
||||
NSS = H("nss")
|
||||
NSSCACert = H("nss-cacert")
|
||||
Ncurses = H("ncurses")
|
||||
@@ -99,7 +96,6 @@ var (
|
||||
PythonWheel = H("python-wheel")
|
||||
QEMU = H("qemu")
|
||||
Sed = H("sed")
|
||||
SPIRVHeaders = H("spirv-headers")
|
||||
SPIRVLLVMTranslator = H("spirv-llvm-translator")
|
||||
SPIRVTools = H("spirv-tools")
|
||||
SquashfsTools = H("squashfs-tools")
|
||||
|
||||
Reference in New Issue
Block a user