Compare commits

...

3 Commits

Author SHA1 Message Date
henderkes
2b6d228bc3 oopsie 2026-05-22 15:43:57 +07:00
henderkes
7ebc7c0275 != generic needs nasm/yasm 2026-05-22 11:59:13 +07:00
henderkes
721ac4a390 enable hardware intrinsics for libaom 2026-05-22 11:49:15 +07:00
2 changed files with 28 additions and 1 deletions

View File

@@ -4,9 +4,11 @@ declare(strict_types=1);
namespace SPC\builder\unix\library;
use SPC\builder\linux\SystemUtil;
use SPC\toolchain\ToolchainManager;
use SPC\toolchain\ZigToolchain;
use SPC\util\executor\UnixCMakeExecutor;
use SPC\util\SPCTarget;
trait libaom
{
@@ -17,9 +19,19 @@ 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('aarch', 'arm', $targetCpu);
}
if (!SystemUtil::findCommand('nasm') && !SystemUtil::findCommand('yasm')) {
$targetCpu = 'generic';
}
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']);

View File

@@ -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,
};
}
}