aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/llvm.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/llvm.go')
-rw-r--r--internal/rosa/llvm.go36
1 files changed, 8 insertions, 28 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index c990e538..6e413bd5 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -170,34 +170,14 @@ cp -r /system/include /usr/include && rm -rf /system/include
)
}
- source := pkg.NewHTTPGetTar(
- nil, "https://github.com/llvm/llvm-project/archive/refs/tags/"+
- "llvmorg-"+version+".tar.gz",
- mustDecode(checksum),
- pkg.TarGzip,
- )
-
- patches := make([]pkg.ExecPath, len(attr.patches)+1)
- for i, p := range attr.patches {
- patches[i+1] = pkg.Path(
- AbsUsrSrc.Append("llvm-patches", p[0]+".patch"), false,
- pkg.NewFile(p[0], []byte(p[1])),
- )
- }
- patches[0] = pkg.Path(AbsUsrSrc.Append("llvmorg"), false, source)
- if len(patches) > 1 {
- source = t.New(
- "llvmorg-patched", stage3Concat(t, []pkg.Artifact{},
- t.Load(Patch),
- ), nil, nil, `
-cp -r /usr/src/llvmorg/. /work/.
-chmod -R +w /work && cd /work
-cat /usr/src/llvm-patches/* | patch -p 1
-`, patches...,
- )
- }
-
- return t.NewViaCMake("llvm", version, variant, source, &CMakeAttr{
+ return t.NewViaCMake("llvm", version, variant, t.NewPatchedSource(
+ "llvmorg", pkg.NewHTTPGetTar(
+ nil, "https://github.com/llvm/llvm-project/archive/refs/tags/"+
+ "llvmorg-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ ), true, attr.patches...,
+ ), &CMakeAttr{
Cache: slices.Concat(cache, attr.cmake),
Append: cmakeAppend,
Extra: stage3Concat(t, attr.extra,