2024-04-02 16:57:59 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
namespace SPC\builder\extension;
|
|
|
|
|
|
|
|
|
|
use SPC\builder\Extension;
|
|
|
|
|
use SPC\store\FileSystem;
|
|
|
|
|
use SPC\util\CustomExt;
|
|
|
|
|
|
|
|
|
|
#[CustomExt('simdjson')]
|
|
|
|
|
class simdjson extends Extension
|
|
|
|
|
{
|
|
|
|
|
public function patchBeforeBuildconf(): bool
|
|
|
|
|
{
|
|
|
|
|
$php_ver = $this->builder->getPHPVersionID();
|
|
|
|
|
FileSystem::replaceFileRegex(
|
|
|
|
|
SOURCE_PATH . '/php-src/ext/simdjson/config.m4',
|
|
|
|
|
'/php_version=(`.*`)$/m',
|
2025-09-23 11:59:30 +02:00
|
|
|
'php_version=' . $php_ver
|
2024-04-02 16:57:59 +08:00
|
|
|
);
|
|
|
|
|
FileSystem::replaceFileStr(
|
|
|
|
|
SOURCE_PATH . '/php-src/ext/simdjson/config.m4',
|
|
|
|
|
'if test -z "$PHP_CONFIG"; then',
|
|
|
|
|
'if false; then'
|
|
|
|
|
);
|
|
|
|
|
FileSystem::replaceFileStr(
|
|
|
|
|
SOURCE_PATH . '/php-src/ext/simdjson/config.w32',
|
|
|
|
|
"'yes',",
|
|
|
|
|
'PHP_SIMDJSON_SHARED,'
|
|
|
|
|
);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2025-09-23 11:59:30 +02:00
|
|
|
|
|
|
|
|
public function getSharedExtensionEnv(): array
|
|
|
|
|
{
|
|
|
|
|
$env = parent::getSharedExtensionEnv();
|
|
|
|
|
$env['CFLAGS'] = $env['CXXFLAGS'] = $env['CFLAGS'] . ' -Xclang -target-feature -Xclang +evex512';
|
|
|
|
|
return $env;
|
|
|
|
|
}
|
2024-04-02 16:57:59 +08:00
|
|
|
}
|