aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/pcre2.go33
2 files changed, 35 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 51d15760..3c087e5d 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -55,6 +55,7 @@ const (
NSSCACert
Ninja
OpenSSL
+ PCRE2
Packaging
Patch
Perl
@@ -160,6 +161,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"nss-cacert": NSSCACert,
"ninja": Ninja,
"openssl": OpenSSL,
+ "pcre2": PCRE2,
"packaging": Packaging,
"patch": Patch,
"perl": Perl,
diff --git a/internal/rosa/pcre2.go b/internal/rosa/pcre2.go
new file mode 100644
index 00000000..406129a9
--- /dev/null
+++ b/internal/rosa/pcre2.go
@@ -0,0 +1,33 @@
+package rosa
+
+import (
+ "hakurei.app/internal/pkg"
+)
+
+func (t Toolchain) newPCRE2() pkg.Artifact {
+ const (
+ version = "10.47"
+ checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"
+ )
+ return t.NewViaMake("pcre2", version, pkg.NewHTTPGetTar(
+ nil, "https://github.com/PCRE2Project/pcre2/releases/download/"+
+ "pcre2-"+version+"/pcre2-"+version+".tar.bz2",
+ mustDecode(checksum),
+ pkg.TarBzip2,
+ ), &MakeAttr{
+ ScriptEarly: `
+# RunGrepTest expects /bin/echo
+ln -s ../system/bin/toybox /bin/echo
+`,
+
+ Configure: [][2]string{
+ {"enable-jit"},
+ {"enable-pcre2-8"},
+ {"enable-pcre2-16"},
+ {"enable-pcre2-32"},
+ },
+ },
+ t.Load(Diffutils),
+ )
+}
+func init() { artifactsF[PCRE2] = Toolchain.newPCRE2 }