From f2ccabf0628c4fa52f66563541cf7a7c1bd6ee99 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Tue, 22 Jul 2025 21:54:27 +0800 Subject: [PATCH] Fix library base, fix brotli and curl libs, trigger extension test --- config/lib.json | 8 ++++---- src/SPC/builder/LibraryBase.php | 24 ++---------------------- src/SPC/builder/unix/library/curl.php | 8 ++++---- 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/config/lib.json b/config/lib.json index 34104af1..cffda176 100644 --- a/config/lib.json +++ b/config/lib.json @@ -35,10 +35,10 @@ }, "brotli": { "source": "brotli", - "static-libs-unix": [ - "libbrotlicommon.a", - "libbrotlidec.a", - "libbrotlienc.a" + "pkg-configs": [ + "libbrotlicommon", + "libbrotlidec", + "libbrotlienc" ], "static-libs-windows": [ "brotlicommon.lib", diff --git a/src/SPC/builder/LibraryBase.php b/src/SPC/builder/LibraryBase.php index 13fb9b5a..c211b97d 100644 --- a/src/SPC/builder/LibraryBase.php +++ b/src/SPC/builder/LibraryBase.php @@ -226,28 +226,8 @@ abstract class LibraryBase return LIB_STATUS_OK; } - // check if these libraries exist, if not, invoke compilation and return the result status - foreach ($this->getStaticLibs() as $name) { - if (!file_exists(BUILD_LIB_PATH . "/{$name}")) { - $this->tryBuild(true); - return LIB_STATUS_OK; - } - } - // header files the same - foreach ($this->getHeaders() as $name) { - if (!file_exists(BUILD_INCLUDE_PATH . "/{$name}")) { - $this->tryBuild(true); - return LIB_STATUS_OK; - } - } - // current library is package and binary file is not exists - if (Config::getLib(static::NAME, 'type', 'lib') === 'package') { - foreach ($this->getBinaryFiles() as $name) { - if (!file_exists(BUILD_BIN_PATH . "/{$name}")) { - $this->tryBuild(true); - return LIB_STATUS_OK; - } - } + if (!$this->isLibraryInstalled()) { + return $this->tryBuild(true); } // if all the files exist at this point, skip the compilation process return LIB_STATUS_ALREADY; diff --git a/src/SPC/builder/unix/library/curl.php b/src/SPC/builder/unix/library/curl.php index c38201e5..6e304d60 100644 --- a/src/SPC/builder/unix/library/curl.php +++ b/src/SPC/builder/unix/library/curl.php @@ -21,10 +21,10 @@ trait curl UnixCMakeExecutor::create($this) ->optionalLib('openssl', '-DCURL_USE_OPENSSL=ON -DCURL_CA_BUNDLE=OFF -DCURL_CA_PATH=OFF -DCURL_CA_FALLBACK=ON', '-DCURL_USE_OPENSSL=OFF -DCURL_ENABLE_SSL=OFF') ->optionalLib('brotli', ...cmake_boolean_args('CURL_BROTLI')) - ->optionalLib('libssh2', fn ($lib) => "-DLIBSSH2_LIBRARY=\"{$lib->getStaticLibFiles(style: 'cmake')}\" -DLIBSSH2_INCLUDE_DIR={$lib->getIncludeDir()}", '-DCURL_USE_LIBSSH2=OFF') - ->optionalLib('nghttp2', fn ($lib) => "-DUSE_NGHTTP2=ON -DNGHTTP2_LIBRARY=\"{$lib->getStaticLibFiles(style: 'cmake')}\" -DNGHTTP2_INCLUDE_DIR={$lib->getIncludeDir()}", '-DUSE_NGHTTP2=OFF') - ->optionalLib('nghttp3', fn ($lib) => "-DUSE_NGHTTP3=ON -DNGHTTP3_LIBRARY=\"{$lib->getStaticLibFiles(style: 'cmake')}\" -DNGHTTP3_INCLUDE_DIR={$lib->getIncludeDir()}", '-DUSE_NGHTTP3=OFF') - ->optionalLib('ngtcp2', fn ($lib) => "-DUSE_NGTCP2=ON -DNGNGTCP2_LIBRARY=\"{$lib->getStaticLibFiles(style: 'cmake')}\" -DNGNGTCP2_INCLUDE_DIR={$lib->getIncludeDir()}", '-DUSE_NGTCP2=OFF') + ->optionalLib('libssh2', ...cmake_boolean_args('CURL_USE_LIBSSH2')) + ->optionalLib('nghttp2', ...cmake_boolean_args('USE_NGHTTP2')) + ->optionalLib('nghttp3', ...cmake_boolean_args('USE_NGHTTP3')) + ->optionalLib('ngtcp2', ...cmake_boolean_args('USE_NGTCP2')) ->optionalLib('ldap', ...cmake_boolean_args('CURL_DISABLE_LDAP', true)) ->optionalLib('zstd', ...cmake_boolean_args('CURL_ZSTD')) ->optionalLib('idn2', ...cmake_boolean_args('USE_LIBIDN2'))