mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-09 01:45:36 +08:00
toolchain: add SPC_DEFAULT_RANLIB and pin cmake AR/RANLIB (#1163)
This commit is contained in:
@@ -302,9 +302,12 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|||||||
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "{$include}")
|
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "{$include}")
|
||||||
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "{$include}")
|
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "{$include}")
|
||||||
CMAKE;
|
CMAKE;
|
||||||
// Whoops, linux may need CMAKE_AR sometimes
|
// pin AR/RANLIB so cmake uses zig-ar/zig-ranlib instead of system /usr/bin/ranlib (zig archives need it)
|
||||||
if (PHP_OS_FAMILY === 'Linux') {
|
if (PHP_OS_FAMILY === 'Linux') {
|
||||||
$toolchain .= "\nSET(CMAKE_AR \"ar\")";
|
$ar = getenv('SPC_DEFAULT_AR') ?: getenv('AR') ?: 'ar';
|
||||||
|
$ranlib = getenv('SPC_DEFAULT_RANLIB') ?: (getenv('RANLIB') ?: 'ranlib');
|
||||||
|
$toolchain .= "\nSET(CMAKE_AR \"{$ar}\")";
|
||||||
|
$toolchain .= "\nSET(CMAKE_RANLIB \"{$ranlib}\")";
|
||||||
}
|
}
|
||||||
FileSystem::writeFile(SOURCE_PATH . '/toolchain.cmake', $toolchain);
|
FileSystem::writeFile(SOURCE_PATH . '/toolchain.cmake', $toolchain);
|
||||||
return $created = realpath(SOURCE_PATH . '/toolchain.cmake');
|
return $created = realpath(SOURCE_PATH . '/toolchain.cmake');
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class ClangBrewToolchain extends ClangNativeToolchain
|
|||||||
GlobalEnvManager::putenv("SPC_DEFAULT_CC={$homebrew_prefix}/opt/llvm/bin/clang");
|
GlobalEnvManager::putenv("SPC_DEFAULT_CC={$homebrew_prefix}/opt/llvm/bin/clang");
|
||||||
GlobalEnvManager::putenv("SPC_DEFAULT_CXX={$homebrew_prefix}/opt/llvm/bin/clang++");
|
GlobalEnvManager::putenv("SPC_DEFAULT_CXX={$homebrew_prefix}/opt/llvm/bin/clang++");
|
||||||
GlobalEnvManager::putenv("SPC_DEFAULT_AR={$homebrew_prefix}/opt/llvm/bin/llvm-ar");
|
GlobalEnvManager::putenv("SPC_DEFAULT_AR={$homebrew_prefix}/opt/llvm/bin/llvm-ar");
|
||||||
|
GlobalEnvManager::putenv("SPC_DEFAULT_RANLIB={$homebrew_prefix}/opt/llvm/bin/llvm-ranlib");
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
||||||
GlobalEnvManager::addPathIfNotExists("{$homebrew_prefix}/opt/llvm/bin");
|
GlobalEnvManager::addPathIfNotExists("{$homebrew_prefix}/opt/llvm/bin");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class ClangNativeToolchain implements UnixToolchainInterface
|
|||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CC=clang');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CC=clang');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=clang++');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=clang++');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_AR=ar');
|
GlobalEnvManager::putenv('SPC_DEFAULT_AR=ar');
|
||||||
|
GlobalEnvManager::putenv('SPC_DEFAULT_RANLIB=ranlib');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class GccNativeToolchain implements UnixToolchainInterface
|
|||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CC=gcc');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CC=gcc');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=g++');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=g++');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_AR=ar');
|
GlobalEnvManager::putenv('SPC_DEFAULT_AR=ar');
|
||||||
|
GlobalEnvManager::putenv('SPC_DEFAULT_RANLIB=ranlib');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
GlobalEnvManager::putenv('SPC_DEFAULT_LD=ld');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class ZigToolchain implements UnixToolchainInterface
|
|||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CC=zig-cc');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CC=zig-cc');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=zig-c++');
|
GlobalEnvManager::putenv('SPC_DEFAULT_CXX=zig-c++');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_AR=zig-ar');
|
GlobalEnvManager::putenv('SPC_DEFAULT_AR=zig-ar');
|
||||||
|
GlobalEnvManager::putenv('SPC_DEFAULT_RANLIB=zig-ranlib');
|
||||||
GlobalEnvManager::putenv('SPC_DEFAULT_LD=zig-ld.lld');
|
GlobalEnvManager::putenv('SPC_DEFAULT_LD=zig-ld.lld');
|
||||||
|
|
||||||
// Generate additional objects needed for zig toolchain
|
// Generate additional objects needed for zig toolchain
|
||||||
|
|||||||
Reference in New Issue
Block a user