aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/llvm.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-04-14 03:01:50 +0900
committerOphestra <cat@gensokyo.uk>2026-04-14 03:03:06 +0900
commit78f9676b1f77a38fa265c92c498ee0cf0f70934e (patch)
tree7502cfe148201a24aa0c6603d869c0f7c23f019a /internal/rosa/llvm.go
parent5b5b676132d8a7201b30c7494d2961ab3094b583 (diff)
internal/rosa/llvm: centralise llvm source
This avoids having to sidestep the NewPackage name formatting machinery to take the cache fast path. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/llvm.go')
-rw-r--r--internal/rosa/llvm.go35
1 files changed, 20 insertions, 15 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index 35b92d80..013e4670 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -6,17 +6,26 @@ import (
"hakurei.app/internal/pkg"
)
-// llvmSource is the unpatched upstream LLVM monorepo.
-var llvmSource = newFromGitHub(
- "llvm/llvm-project",
- "llvmorg-"+llvmVersion,
- llvmChecksum,
-)
+func init() {
+ artifactsM[llvmSource] = Metadata{
+ f: func(t Toolchain) (pkg.Artifact, string) {
+ return t.NewPatchedSource("llvm", llvmVersion, newFromGitHub(
+ "llvm/llvm-project",
+ "llvmorg-"+llvmVersion,
+ llvmChecksum,
+ ), true, llvmPatches...), llvmVersion
+ },
+
+ Name: "llvm-project",
+ Description: "LLVM monorepo with Rosa OS patches",
+
+ ID: 1830,
+ }
+}
func (t Toolchain) newCompilerRT() (pkg.Artifact, string) {
muslHeaders, _ := t.newMusl(true)
- return t.NewPackage("compiler-rt", llvmVersion, llvmSource, &PackageAttr{
- Patches: llvmPatches,
+ return t.NewPackage("compiler-rt", llvmVersion, t.Load(llvmSource), &PackageAttr{
NonStage0: []pkg.Artifact{
muslHeaders,
},
@@ -82,8 +91,7 @@ func init() {
}
func (t Toolchain) newLLVMRuntimes() (pkg.Artifact, string) {
- return t.NewPackage("llvm-runtimes", llvmVersion, llvmSource, &PackageAttr{
- Patches: llvmPatches,
+ return t.NewPackage("llvm-runtimes", llvmVersion, t.Load(llvmSource), &PackageAttr{
NonStage0: t.AppendPresets(nil, CompilerRT),
Env: stage0ExclConcat(t, []string{},
"LDFLAGS="+earlyLDFLAGS(false),
@@ -151,8 +159,7 @@ func (t Toolchain) newClang() (pkg.Artifact, string) {
}
}
- return t.NewPackage("clang", llvmVersion, llvmSource, &PackageAttr{
- Patches: llvmPatches,
+ return t.NewPackage("clang", llvmVersion, t.Load(llvmSource), &PackageAttr{
NonStage0: t.AppendPresets(nil, LLVMRuntimes),
Env: stage0ExclConcat(t, []string{},
"CFLAGS="+earlyCFLAGS,
@@ -222,13 +229,11 @@ func init() {
Dependencies: P{
LLVMRuntimes,
},
-
- ID: 1830,
}
}
func (t Toolchain) newLibclc() (pkg.Artifact, string) {
- return t.NewPackage("libclc", llvmVersion, llvmSource, nil, &CMakeHelper{
+ return t.NewPackage("libclc", llvmVersion, t.Load(llvmSource), nil, &CMakeHelper{
Append: []string{"libclc"},
Cache: []KV{