forked from rosa/hakurei
56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
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, pkg.NewHTTPGetTar(
|
|
nil, "https://github.com/KhronosGroup/SPIRV-Headers/archive/"+
|
|
"refs/tags/vulkan-sdk-"+version+".tar.gz",
|
|
mustDecode(checksum),
|
|
pkg.TarGzip,
|
|
), nil, &CMakeHelper{
|
|
Cache: []KV{
|
|
{"CMAKE_BUILD_TYPE", "Release"},
|
|
},
|
|
}), version
|
|
}
|
|
func init() {
|
|
artifactsM[SPIRVHeaders] = Metadata{
|
|
f: Toolchain.newSPIRVHeaders,
|
|
|
|
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
|
|
},
|
|
}
|
|
}
|