From c3825a356b7732b3fbf0198b2065d14a6c086c29 Mon Sep 17 00:00:00 2001 From: henderkes Date: Sat, 21 Feb 2026 11:51:50 +0700 Subject: [PATCH] patch libxml2 for zig --- src/SPC/builder/unix/library/libxml2.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/SPC/builder/unix/library/libxml2.php b/src/SPC/builder/unix/library/libxml2.php index 7152c0c4..bb65e1b6 100644 --- a/src/SPC/builder/unix/library/libxml2.php +++ b/src/SPC/builder/unix/library/libxml2.php @@ -6,10 +6,30 @@ namespace SPC\builder\unix\library; use SPC\builder\linux\library\LinuxLibraryBase; use SPC\store\FileSystem; +use SPC\toolchain\ToolchainManager; +use SPC\toolchain\ZigToolchain; use SPC\util\executor\UnixCMakeExecutor; trait libxml2 { + public function patchBeforeBuild(): bool + { + if (ToolchainManager::getToolchainClass() !== ZigToolchain::class) { + return false; + } + $patched = (bool) FileSystem::replaceFileStr( + $this->source_dir . '/configure.ac', + 'AX_APPEND_FLAG([-Wl,--version-script=], [VERSION_SCRIPT_FLAGS])', + '', + ); + $patched = $patched || FileSystem::replaceFileStr( + $this->source_dir . '/CMakeLists.txt', + 'target_link_options(LibXml2 PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libxml2.syms")', + '', + ); + return $patched; + } + public function build(): void { $cmake = UnixCMakeExecutor::create($this)