diff --git a/src/SPC/builder/unix/library/libaom.php b/src/SPC/builder/unix/library/libaom.php index d0b7c88c..31c40a0f 100644 --- a/src/SPC/builder/unix/library/libaom.php +++ b/src/SPC/builder/unix/library/libaom.php @@ -6,6 +6,8 @@ namespace SPC\builder\unix\library; use SPC\exception\FileSystemException; use SPC\exception\RuntimeException; +use SPC\toolchain\ToolchainManager; +use SPC\toolchain\ZigToolchain; use SPC\util\executor\UnixCMakeExecutor; trait libaom @@ -16,8 +18,8 @@ trait libaom */ protected function build(): void { - if (getenv('SPC_LIBC') === 'musl' && str_contains(getenv('CC'), 'zig')) { - f_putenv('COMPILER_EXTRA=-D_POSIX_SOURCE'); + if (ToolchainManager::getToolchainClass() === ZigToolchain::class) { + f_putenv('COMPILER_EXTRA=-D_GNU_SOURCE'); } UnixCMakeExecutor::create($this) ->setBuildDir("{$this->source_dir}/builddir") diff --git a/src/SPC/command/CraftCommand.php b/src/SPC/command/CraftCommand.php index 84080205..5a40a25d 100644 --- a/src/SPC/command/CraftCommand.php +++ b/src/SPC/command/CraftCommand.php @@ -5,6 +5,8 @@ declare(strict_types=1); namespace SPC\command; use SPC\exception\ValidationException; +use SPC\toolchain\ToolchainManager; +use SPC\toolchain\ZigToolchain; use SPC\util\ConfigValidator; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Process\Process; @@ -76,7 +78,7 @@ class CraftCommand extends BuildCommand } } // install zig if requested - if (str_contains(getenv('CC'), 'zig')) { + if (ToolchainManager::getToolchainClass() === ZigToolchain::class) { $retcode = $this->runCommand('install-pkg', 'zig'); if ($retcode !== 0) { $this->output->writeln('craft zig failed'); diff --git a/src/SPC/doctor/item/ZigCheck.php b/src/SPC/doctor/item/ZigCheck.php index f5983f1d..ffd9aca5 100644 --- a/src/SPC/doctor/item/ZigCheck.php +++ b/src/SPC/doctor/item/ZigCheck.php @@ -47,7 +47,7 @@ class ZigCheck 'BSD' => 'freebsd', default => 'linux', }; - PackageManager::installPackage("musl-toolchain-{$arch}-{$os}"); + PackageManager::installPackage("zig-{$arch}-{$os}"); return Zig::isInstalled(); } }