Add ext-mbstring,ext-mbregex,onig

This commit is contained in:
crazywhalecc 2026-02-04 16:24:57 +08:00
parent 0652d4aa03
commit 3fa2d69813
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
6 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,9 @@
ext-mbregex:
type: php-extension
depends:
- onig
- ext-mbstring
php-extension:
arg-type: custom
build-shared: false
build-static: true

View File

@ -0,0 +1,4 @@
ext-mbstring:
type: php-extension
php-extension:
arg-type: custom

15
config/pkg/lib/onig.yml Normal file
View File

@ -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

View File

@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace Package\Extension;
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
use StaticPHP\Attribute\Package\Extension;
#[Extension('mbregex')]
class mbregex
{
#[CustomPhpConfigureArg('Linux')]
#[CustomPhpConfigureArg('Darwin')]
public function getUnixConfigureArg(): string
{
return '';
}
}

View File

@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace Package\Extension;
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
use StaticPHP\Attribute\Package\Extension;
use StaticPHP\Package\PackageInstaller;
#[Extension('mbstring')]
class mbstring
{
#[CustomPhpConfigureArg('Linux')]
#[CustomPhpConfigureArg('Darwin')]
public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string
{
$arg = '--enable-mbstring' . ($shared ? '=shared' : '');
$arg .= $installer->isPackageResolved('ext-mbregex') === false ? ' --disable-mbregex' : ' --enable-mbregex';
return $arg;
}
}

View File

@ -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']);
}
}