From 386e9adf44e89ed2a1ff5fb2d62157ec9fdcc4eb Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Mon, 8 Jul 2024 11:21:01 +0800 Subject: [PATCH] Add openssl to pre-built --- config/source.json | 1 + src/SPC/builder/linux/library/openssl.php | 2 ++ src/SPC/builder/macos/library/openssl.php | 2 ++ src/SPC/builder/windows/library/openssl.php | 6 ++++++ src/globals/test-extensions.php | 4 ++-- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/source.json b/config/source.json index cd2378e8..76c656f6 100644 --- a/config/source.json +++ b/config/source.json @@ -535,6 +535,7 @@ "type": "filelist", "url": "https://www.openssl.org/source/", "regex": "/href=\"(?openssl-(?[^\"]+)\\.tar\\.gz)\"/", + "provide-pre-built": true, "license": { "type": "file", "path": "LICENSE.txt" diff --git a/src/SPC/builder/linux/library/openssl.php b/src/SPC/builder/linux/library/openssl.php index cab38579..46fcd75e 100644 --- a/src/SPC/builder/linux/library/openssl.php +++ b/src/SPC/builder/linux/library/openssl.php @@ -87,5 +87,7 @@ class openssl extends LinuxLibraryBase if (!str_contains($file = FileSystem::readFile(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc'), 'prefix=')) { FileSystem::writeFile(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc', 'prefix=${pcfiledir}/../..' . "\n" . $file); } + FileSystem::replaceFileRegex(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc', '/Libs.private:.*/m', 'Libs.private: ${libdir}/libz.a'); + FileSystem::replaceFileRegex(BUILD_LIB_PATH . '/cmake/OpenSSL/OpenSSLConfig.cmake', '/set\(OPENSSL_LIBCRYPTO_DEPENDENCIES .*\)/m', 'set(OPENSSL_LIBCRYPTO_DEPENDENCIES "${OPENSSL_LIBRARY_DIR}/libz.a")'); } } diff --git a/src/SPC/builder/macos/library/openssl.php b/src/SPC/builder/macos/library/openssl.php index c2087080..1e171ef2 100644 --- a/src/SPC/builder/macos/library/openssl.php +++ b/src/SPC/builder/macos/library/openssl.php @@ -70,5 +70,7 @@ class openssl extends MacOSLibraryBase if (!str_contains($file = FileSystem::readFile(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc'), 'prefix=')) { FileSystem::writeFile(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc', 'prefix=${pcfiledir}/../..' . "\n" . $file); } + FileSystem::replaceFileRegex(BUILD_LIB_PATH . '/pkgconfig/libcrypto.pc', '/Libs.private:.*/m', 'Libs.private: ${libdir}/libz.a'); + FileSystem::replaceFileRegex(BUILD_LIB_PATH . '/cmake/OpenSSL/OpenSSLConfig.cmake', '/set\(OPENSSL_LIBCRYPTO_DEPENDENCIES .*\)/m', 'set(OPENSSL_LIBCRYPTO_DEPENDENCIES "${OPENSSL_LIBRARY_DIR}/libz.a")'); } } diff --git a/src/SPC/builder/windows/library/openssl.php b/src/SPC/builder/windows/library/openssl.php index 74a3b510..09c0068b 100644 --- a/src/SPC/builder/windows/library/openssl.php +++ b/src/SPC/builder/windows/library/openssl.php @@ -41,5 +41,11 @@ class openssl extends WindowsLibraryBase 'CNF_LDFLAGS="/NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:msvcrt /NODEFAULTLIB:msvcrtd /DEFAULTLIB:libcmt /LIBPATH:' . BUILD_LIB_PATH . ' zlibstatic.lib"' ); copy($this->source_dir . '\ms\applink.c', BUILD_INCLUDE_PATH . '\openssl\applink.c'); + + FileSystem::replaceFileRegex( + BUILD_LIB_PATH . '\cmake\OpenSSL\OpenSSLConfig.cmake', + '/set\(OPENSSL_LIBCRYPTO_DEPENDENCIES .*\)/m', + 'set(OPENSSL_LIBCRYPTO_DEPENDENCIES "${OPENSSL_LIBRARY_DIR}" ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib)' + ); } } diff --git a/src/globals/test-extensions.php b/src/globals/test-extensions.php index f8f80834..4e81a40c 100644 --- a/src/globals/test-extensions.php +++ b/src/globals/test-extensions.php @@ -19,8 +19,8 @@ $upx = true; // If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`). $extensions = match (PHP_OS_FAMILY) { - 'Linux', 'Darwin' => 'intl', - 'Windows' => 'mbstring,pdo_sqlite,mbregex,bz2,sqlsrv,pdo_sqlsrv,yaml', + 'Linux', 'Darwin' => 'openssl', + 'Windows' => 'mbstring,pdo_sqlite,openssl', }; // If you want to test lib-suggests feature with extension, add them below (comma separated, example `libwebp,libavif`).