This commit is contained in:
crazywhalecc 2025-07-22 13:16:34 +08:00
parent f69f8d1e4a
commit a8dcfce99e
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
2 changed files with 12 additions and 0 deletions

View File

@ -10,6 +10,9 @@ use SPC\builder\macos\SystemUtil as MacOSSystemUtil;
use SPC\exception\WrongUsageException;
use SPC\util\GlobalEnvManager;
/**
* Toolchain implementation for system clang compiler.
*/
class ClangNativeToolchain implements ToolchainInterface
{
public function initEnv(): void
@ -20,6 +23,9 @@ class ClangNativeToolchain implements ToolchainInterface
GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_LD=ld');
}
/**
* @throws WrongUsageException
*/
public function afterInit(): void
{
foreach (['CC', 'CXX', 'AR', 'LD'] as $env) {

View File

@ -15,6 +15,8 @@ class GlobalEnvManager
{
private static array $env_cache = [];
private static bool $initialized = false;
public static function getInitializedEnv(): array
{
return self::$env_cache;
@ -28,6 +30,9 @@ class GlobalEnvManager
*/
public static function init(): void
{
if (self::$initialized) {
return;
}
// Check pre-defined env vars exists
if (getenv('BUILD_ROOT_PATH') === false) {
throw new RuntimeException('You must include src/globals/internal-env.php before using GlobalEnvManager');
@ -85,6 +90,7 @@ class GlobalEnvManager
self::putenv("{$k}={$v}");
}
}
self::$initialized = true;
}
public static function putenv(string $val): void