diff --git a/config/pkg/ext/builtin-extensions.yml b/config/pkg/ext/builtin-extensions.yml index 750745cb..c97b32dd 100644 --- a/config/pkg/ext/builtin-extensions.yml +++ b/config/pkg/ext/builtin-extensions.yml @@ -186,6 +186,7 @@ ext-password-argon2: type: php-extension depends: - libargon2 + suggests: - ext-openssl php-extension: os: diff --git a/config/pkg/lib/gettext-win.yml b/config/pkg/lib/gettext-win.yml index 14238307..286f5218 100644 --- a/config/pkg/lib/gettext-win.yml +++ b/config/pkg/lib/gettext-win.yml @@ -4,6 +4,6 @@ gettext-win: source: type: git url: 'https://github.com/winlibs/gettext.git' - rev: master + rev: '0.18' static-libs@windows: - libintl_a.lib diff --git a/src/Package/Target/curl.php b/src/Package/Target/curl.php index 43a2904b..3117a8cd 100644 --- a/src/Package/Target/curl.php +++ b/src/Package/Target/curl.php @@ -39,7 +39,7 @@ class curl ->optionalPackage('zstd', ...cmake_boolean_args('CURL_ZSTD')) ->optionalPackage('brotli', ...cmake_boolean_args('CURL_BROTLI')) ->addConfigureArgs( - '-DBUILD_CURL_EXE=OFF', + '-DBUILD_CURL_EXE=ON', '-DZSTD_LIBRARY=zstd_static.lib', '-DBUILD_TESTING=OFF', '-DBUILD_EXAMPLES=OFF', @@ -81,6 +81,7 @@ class curl ->addConfigureArgs( '-DBUILD_CURL_EXE=ON', '-DBUILD_LIBCURL_DOCS=OFF', + '-DOPENSSL_ROOT_DIR=' . BUILD_ROOT_PATH, ) ->build(); @@ -92,6 +93,9 @@ class curl if (str_contains(FileSystem::readFile($pc_path), '-lgssapi_krb5')) { FileSystem::replaceFileRegex($pc_path, '/-lcom_err$/m', '-lcom_err -lkrb5support'); } + // FindThreads can put '-lpthread' into INTERFACE_LINK_LIBRARIES; curl's pc generator + // prepends '-l' to each entry, producing '-l-lpthread'. Strip the extra '-l'. + FileSystem::replaceFileRegex($pc_path, '/-l(-l\S+)/', '$1'); shell()->cd("{$lib->getLibDir()}/cmake/CURL/") ->exec("sed -ie 's|\"/lib/libcurl.a\"|\"{$lib->getLibDir()}/libcurl.a\"|g' CURLTargets-release.cmake"); diff --git a/src/StaticPHP/Util/FileSystem.php b/src/StaticPHP/Util/FileSystem.php index 0869bae2..28a4facd 100644 --- a/src/StaticPHP/Util/FileSystem.php +++ b/src/StaticPHP/Util/FileSystem.php @@ -244,6 +244,7 @@ class FileSystem */ public static function getClassesPsr4(string $dir, string $base_namespace, mixed $rule = null, bool|string $return_path_value = false, bool $auto_require = false): array { + $base_namespace = rtrim($base_namespace, '\\'); $classes = []; $files = FileSystem::scanDirFiles($dir, true, true); if ($files === false) {