From 3fa2d69813662e495af801e9f3b51cee87c6634a Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Wed, 4 Feb 2026 16:24:57 +0800 Subject: [PATCH] Add ext-mbstring,ext-mbregex,onig --- config/pkg/ext/ext-mbregex.yml | 9 +++++++++ config/pkg/ext/ext-mbstring.yml | 4 ++++ config/pkg/lib/onig.yml | 15 +++++++++++++++ src/Package/Extension/mbregex.php | 19 +++++++++++++++++++ src/Package/Extension/mbstring.php | 22 ++++++++++++++++++++++ src/Package/Library/onig.php | 9 +++++++++ 6 files changed, 78 insertions(+) create mode 100644 config/pkg/ext/ext-mbregex.yml create mode 100644 config/pkg/ext/ext-mbstring.yml create mode 100644 config/pkg/lib/onig.yml create mode 100644 src/Package/Extension/mbregex.php create mode 100644 src/Package/Extension/mbstring.php diff --git a/config/pkg/ext/ext-mbregex.yml b/config/pkg/ext/ext-mbregex.yml new file mode 100644 index 00000000..eaa0481a --- /dev/null +++ b/config/pkg/ext/ext-mbregex.yml @@ -0,0 +1,9 @@ +ext-mbregex: + type: php-extension + depends: + - onig + - ext-mbstring + php-extension: + arg-type: custom + build-shared: false + build-static: true diff --git a/config/pkg/ext/ext-mbstring.yml b/config/pkg/ext/ext-mbstring.yml new file mode 100644 index 00000000..6583ca61 --- /dev/null +++ b/config/pkg/ext/ext-mbstring.yml @@ -0,0 +1,4 @@ +ext-mbstring: + type: php-extension + php-extension: + arg-type: custom diff --git a/config/pkg/lib/onig.yml b/config/pkg/lib/onig.yml new file mode 100644 index 00000000..fa06524d --- /dev/null +++ b/config/pkg/lib/onig.yml @@ -0,0 +1,15 @@ +onig: + type: library + artifact: + source: + type: ghrel + repo: kkos/oniguruma + match: onig-.+\.tar\.gz + metadata: + license-files: [COPYING] + license: Custom + headers: + - oniggnu.h + - oniguruma.h + static-libs@unix: + - libonig.a diff --git a/src/Package/Extension/mbregex.php b/src/Package/Extension/mbregex.php new file mode 100644 index 00000000..f01c7c78 --- /dev/null +++ b/src/Package/Extension/mbregex.php @@ -0,0 +1,19 @@ +isPackageResolved('ext-mbregex') === false ? ' --disable-mbregex' : ' --enable-mbregex'; + return $arg; + } +} diff --git a/src/Package/Library/onig.php b/src/Package/Library/onig.php index 2cea572b..af289636 100644 --- a/src/Package/Library/onig.php +++ b/src/Package/Library/onig.php @@ -7,6 +7,7 @@ namespace Package\Library; use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\Library; use StaticPHP\Package\LibraryPackage; +use StaticPHP\Runtime\Executor\UnixAutoconfExecutor; use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; use StaticPHP\Util\FileSystem; @@ -21,4 +22,12 @@ class onig ->build(); FileSystem::copy("{$package->getLibDir()}\\onig.lib", "{$package->getLibDir()}\\onig_a.lib"); } + + #[BuildFor('Linux')] + #[BuildFor('Darwin')] + public function buildUnix(LibraryPackage $lib): void + { + UnixAutoconfExecutor::create($lib)->configure()->make(); + $lib->patchPkgconfPrefix(['oniguruma.pc']); + } }