internal/rosa/llvm: migrate libclc
All checks were successful
Test / Create distribution (push) Successful in 1m19s
Test / Sandbox (push) Successful in 3m20s
Test / Hakurei (push) Successful in 4m32s
Test / ShareFS (push) Successful in 4m42s
Test / Sandbox (race detector) (push) Successful in 5m55s
Test / Hakurei (race detector) (push) Successful in 7m3s
Test / Flake checks (push) Successful in 1m27s
All checks were successful
Test / Create distribution (push) Successful in 1m19s
Test / Sandbox (push) Successful in 3m20s
Test / Hakurei (push) Successful in 4m32s
Test / ShareFS (push) Successful in 4m42s
Test / Sandbox (race detector) (push) Successful in 5m55s
Test / Hakurei (race detector) (push) Successful in 7m3s
Test / Flake checks (push) Successful in 1m27s
This eliminates newLLVMVariant. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -2,7 +2,6 @@ package rosa
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"runtime"
|
"runtime"
|
||||||
"slices"
|
|
||||||
|
|
||||||
"hakurei.app/internal/pkg"
|
"hakurei.app/internal/pkg"
|
||||||
)
|
)
|
||||||
@@ -14,59 +13,6 @@ var llvmSource = newFromGitHub(
|
|||||||
llvmChecksum,
|
llvmChecksum,
|
||||||
)
|
)
|
||||||
|
|
||||||
// llvmAttr holds the attributes that will be applied to a new [pkg.Artifact]
|
|
||||||
// containing a LLVM variant.
|
|
||||||
type llvmAttr struct {
|
|
||||||
// Concatenated with default environment for PackageAttr.Env.
|
|
||||||
env []string
|
|
||||||
// Concatenated with generated entries for CMakeHelper.Cache.
|
|
||||||
cmake []KV
|
|
||||||
// Override CMakeHelper.Append.
|
|
||||||
append []string
|
|
||||||
// Passed through to PackageAttr.NonStage0.
|
|
||||||
nonStage0 []pkg.Artifact
|
|
||||||
// Concatenated with default fixup for CMakeHelper.Script.
|
|
||||||
script string
|
|
||||||
|
|
||||||
// Patch name and body pairs.
|
|
||||||
patches []KV
|
|
||||||
}
|
|
||||||
|
|
||||||
// newLLVMVariant returns a [pkg.Artifact] containing a LLVM variant.
|
|
||||||
func (t Toolchain) newLLVMVariant(variant string, attr *llvmAttr) pkg.Artifact {
|
|
||||||
if attr == nil {
|
|
||||||
panic("LLVM attr must be non-nil")
|
|
||||||
}
|
|
||||||
|
|
||||||
cmakeAppend := []string{"llvm"}
|
|
||||||
if attr.append != nil {
|
|
||||||
cmakeAppend = attr.append
|
|
||||||
}
|
|
||||||
|
|
||||||
return t.NewPackage("llvm", llvmVersion, llvmSource, &PackageAttr{
|
|
||||||
Patches: slices.Concat(attr.patches, llvmPatches),
|
|
||||||
NonStage0: attr.nonStage0,
|
|
||||||
Env: attr.env,
|
|
||||||
Flag: TExclusive,
|
|
||||||
}, &CMakeHelper{
|
|
||||||
Variant: variant,
|
|
||||||
|
|
||||||
Cache: attr.cmake,
|
|
||||||
Append: cmakeAppend,
|
|
||||||
Script: attr.script,
|
|
||||||
},
|
|
||||||
Python,
|
|
||||||
Perl,
|
|
||||||
Diffutils,
|
|
||||||
Bash,
|
|
||||||
Gawk,
|
|
||||||
Coreutils,
|
|
||||||
Findutils,
|
|
||||||
|
|
||||||
KernelHeaders,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newCompilerRT() (pkg.Artifact, string) {
|
func (t Toolchain) newCompilerRT() (pkg.Artifact, string) {
|
||||||
muslHeaders, _ := t.newMusl(true)
|
muslHeaders, _ := t.newMusl(true)
|
||||||
return t.NewPackage("llvm", llvmVersion, llvmSource, &PackageAttr{
|
return t.NewPackage("llvm", llvmVersion, llvmSource, &PackageAttr{
|
||||||
@@ -282,22 +228,27 @@ func init() {
|
|||||||
|
|
||||||
ID: 1830,
|
ID: 1830,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
artifactsM[Libclc] = Metadata{
|
func (t Toolchain) newLibclc() (pkg.Artifact, string) {
|
||||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
return t.NewPackage("llvm", llvmVersion, llvmSource, nil, &CMakeHelper{
|
||||||
return t.newLLVMVariant("libclc", &llvmAttr{
|
Variant: "libclc",
|
||||||
cmake: []KV{
|
Append: []string{"libclc"},
|
||||||
{"CMAKE_BUILD_TYPE", "Release"},
|
|
||||||
|
|
||||||
{"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
|
Cache: []KV{
|
||||||
{"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
|
{"CMAKE_BUILD_TYPE", "Release"},
|
||||||
|
|
||||||
{"LIBCLC_TARGETS_TO_BUILD", "all"},
|
{"LLVM_HOST_TRIPLE", `"${ROSA_TRIPLE}"`},
|
||||||
},
|
{"LLVM_DEFAULT_TARGET_TRIPLE", `"${ROSA_TRIPLE}"`},
|
||||||
append: []string{"libclc"},
|
|
||||||
script: "ninja test",
|
{"LIBCLC_TARGETS_TO_BUILD", "all"},
|
||||||
}), llvmVersion
|
|
||||||
},
|
},
|
||||||
|
Script: "ninja test",
|
||||||
|
}), llvmVersion
|
||||||
|
}
|
||||||
|
func init() {
|
||||||
|
artifactsM[Libclc] = Metadata{
|
||||||
|
f: Toolchain.newLibclc,
|
||||||
|
|
||||||
Name: "libclc",
|
Name: "libclc",
|
||||||
Description: "an open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL C programming language",
|
Description: "an open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL C programming language",
|
||||||
|
|||||||
Reference in New Issue
Block a user