mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-05 15:55:39 +08:00
enable hardware intrinsics for libaom
This commit is contained in:
@@ -7,6 +7,7 @@ namespace SPC\builder\unix\library;
|
||||
use SPC\toolchain\ToolchainManager;
|
||||
use SPC\toolchain\ZigToolchain;
|
||||
use SPC\util\executor\UnixCMakeExecutor;
|
||||
use SPC\util\SPCTarget;
|
||||
|
||||
trait libaom
|
||||
{
|
||||
@@ -17,9 +18,16 @@ trait libaom
|
||||
$new = trim($extra . ' -D_GNU_SOURCE');
|
||||
f_putenv("SPC_COMPILER_EXTRA={$new}");
|
||||
}
|
||||
$targetCpu = SPCTarget::getTargetArch();
|
||||
if (str_starts_with($targetCpu, 'aarch')) {
|
||||
$targetCpu = str_replace($targetCpu, 'aarch', 'arm');
|
||||
}
|
||||
UnixCMakeExecutor::create($this)
|
||||
->setBuildDir("{$this->source_dir}/builddir")
|
||||
->addConfigureArgs('-DAOM_TARGET_CPU=generic')
|
||||
->addConfigureArgs(
|
||||
"-DAOM_TARGET_CPU={$targetCpu}",
|
||||
'-DCONFIG_RUNTIME_CPU_DETECT=1'
|
||||
)
|
||||
->build();
|
||||
f_putenv("SPC_COMPILER_EXTRA={$extra}");
|
||||
$this->patchPkgconfPrefix(['aom.pc']);
|
||||
|
||||
@@ -127,4 +127,19 @@ class SPCTarget
|
||||
default => PHP_OS_FAMILY,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the target OS arch, e.g. x86_64, aarch64, arm, x86.
|
||||
*/
|
||||
public static function getTargetArch(): string
|
||||
{
|
||||
$target = (string) getenv('SPC_TARGET');
|
||||
return match (true) {
|
||||
str_starts_with($target, 'aarch64') => 'aarch64',
|
||||
str_starts_with($target, 'arm-') => 'arm',
|
||||
str_starts_with($target, 'x86_64-') => 'x86_64',
|
||||
str_starts_with($target, 'x86-') => 'x86',
|
||||
default => GNU_ARCH,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user