diff --git a/config/env.ini b/config/env.ini index 25a20e89..1e6ad040 100644 --- a/config/env.ini +++ b/config/env.ini @@ -93,6 +93,7 @@ SPC_LIBC=musl CC=${SPC_LINUX_DEFAULT_CC} CXX=${SPC_LINUX_DEFAULT_CXX} AR=${SPC_LINUX_DEFAULT_AR} +RANLIB=${SPC_LINUX_DEFAULT_RANLIB} LD=${SPC_LINUX_DEFAULT_LD} ; default compiler flags, used in CMake toolchain file, openssl and pkg-config build SPC_DEFAULT_C_FLAGS="-fPIC -Os" diff --git a/src/SPC/toolchain/ZigToolchain.php b/src/SPC/toolchain/ZigToolchain.php index 8d121db5..3d7bdeab 100644 --- a/src/SPC/toolchain/ZigToolchain.php +++ b/src/SPC/toolchain/ZigToolchain.php @@ -16,6 +16,7 @@ class ZigToolchain implements ToolchainInterface GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CC=zig-cc'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CXX=zig-c++'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_AR=zig-ar'); + GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_RANLIB=zig-ranlib'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_LD=zig-ld.lld'); } diff --git a/src/SPC/util/executor/UnixCMakeExecutor.php b/src/SPC/util/executor/UnixCMakeExecutor.php index ec09fa31..06eccf34 100644 --- a/src/SPC/util/executor/UnixCMakeExecutor.php +++ b/src/SPC/util/executor/UnixCMakeExecutor.php @@ -216,9 +216,11 @@ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "{$include}") set(CMAKE_C_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil") set(CMAKE_CXX_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil") CMAKE; - // Whoops, linux may need CMAKE_AR sometimes if (PHP_OS_FAMILY === 'Linux') { - $toolchain .= "\nSET(CMAKE_AR \"ar\")"; + $ar = getenv('SPC_LINUX_DEFAULT_AR') ?: getenv('AR') ?: 'ar'; + $ranlib = getenv('SPC_LINUX_DEFAULT_RANLIB') ?: (getenv('RANLIB') ?: 'ranlib'); + $toolchain .= "\nSET(CMAKE_AR \"{$ar}\")"; + $toolchain .= "\nSET(CMAKE_RANLIB \"{$ranlib}\")"; } FileSystem::writeFile(SOURCE_PATH . '/toolchain.cmake', $toolchain); return $created = realpath(SOURCE_PATH . '/toolchain.cmake');