use correct ar and ranlib for cmake

This commit is contained in:
henderkes
2026-05-05 17:56:31 +07:00
parent 5d4bb273ee
commit a0c86c1519
3 changed files with 6 additions and 2 deletions

View File

@@ -93,6 +93,7 @@ SPC_LIBC=musl
CC=${SPC_LINUX_DEFAULT_CC} CC=${SPC_LINUX_DEFAULT_CC}
CXX=${SPC_LINUX_DEFAULT_CXX} CXX=${SPC_LINUX_DEFAULT_CXX}
AR=${SPC_LINUX_DEFAULT_AR} AR=${SPC_LINUX_DEFAULT_AR}
RANLIB=${SPC_LINUX_DEFAULT_RANLIB}
LD=${SPC_LINUX_DEFAULT_LD} LD=${SPC_LINUX_DEFAULT_LD}
; default compiler flags, used in CMake toolchain file, openssl and pkg-config build ; default compiler flags, used in CMake toolchain file, openssl and pkg-config build
SPC_DEFAULT_C_FLAGS="-fPIC -Os" SPC_DEFAULT_C_FLAGS="-fPIC -Os"

View File

@@ -16,6 +16,7 @@ class ZigToolchain implements ToolchainInterface
GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CC=zig-cc'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CC=zig-cc');
GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CXX=zig-c++'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_CXX=zig-c++');
GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_AR=zig-ar'); 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'); GlobalEnvManager::putenv('SPC_LINUX_DEFAULT_LD=zig-ld.lld');
} }

View File

@@ -216,9 +216,11 @@ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "{$include}")
set(CMAKE_C_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil") set(CMAKE_C_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil")
set(CMAKE_CXX_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil") set(CMAKE_CXX_STANDARD_LIBRARIES "-ldl -lpthread -lm -lutil")
CMAKE; CMAKE;
// Whoops, linux may need CMAKE_AR sometimes
if (PHP_OS_FAMILY === 'Linux') { 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); FileSystem::writeFile(SOURCE_PATH . '/toolchain.cmake', $toolchain);
return $created = realpath(SOURCE_PATH . '/toolchain.cmake'); return $created = realpath(SOURCE_PATH . '/toolchain.cmake');