mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-12 11:25:35 +08:00
Add curl
This commit is contained in:
@@ -12,6 +12,10 @@ curl:
|
|||||||
depends@unix:
|
depends@unix:
|
||||||
- openssl
|
- openssl
|
||||||
- zlib
|
- zlib
|
||||||
|
depends@windows:
|
||||||
|
- zlib
|
||||||
|
- libssh2
|
||||||
|
- nghttp2
|
||||||
suggests@unix:
|
suggests@unix:
|
||||||
- libssh2
|
- libssh2
|
||||||
- brotli
|
- brotli
|
||||||
@@ -23,6 +27,9 @@ curl:
|
|||||||
- ldap
|
- ldap
|
||||||
- idn2
|
- idn2
|
||||||
- krb5
|
- krb5
|
||||||
|
suggests@windows:
|
||||||
|
- brotli
|
||||||
|
- zstd
|
||||||
frameworks:
|
frameworks:
|
||||||
- CoreFoundation
|
- CoreFoundation
|
||||||
- CoreServices
|
- CoreServices
|
||||||
@@ -33,3 +40,5 @@ curl:
|
|||||||
- curl
|
- curl
|
||||||
static-libs@unix:
|
static-libs@unix:
|
||||||
- libcurl.a
|
- libcurl.a
|
||||||
|
static-libs@windows:
|
||||||
|
- libcurl_a.lib
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use StaticPHP\Attribute\Package\Target;
|
|||||||
use StaticPHP\Attribute\PatchDescription;
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
use StaticPHP\Package\LibraryPackage;
|
use StaticPHP\Package\LibraryPackage;
|
||||||
use StaticPHP\Runtime\Executor\UnixCMakeExecutor;
|
use StaticPHP\Runtime\Executor\UnixCMakeExecutor;
|
||||||
|
use StaticPHP\Runtime\Executor\WindowsCMakeExecutor;
|
||||||
use StaticPHP\Runtime\SystemTarget;
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
use StaticPHP\Util\FileSystem;
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
@@ -20,7 +21,9 @@ class curl
|
|||||||
#[PatchDescription('Remove CMAKE_C_IMPLICIT_LINK_LIBRARIES and fix macOS framework detection')]
|
#[PatchDescription('Remove CMAKE_C_IMPLICIT_LINK_LIBRARIES and fix macOS framework detection')]
|
||||||
public function patchBeforeBuild(LibraryPackage $lib): bool
|
public function patchBeforeBuild(LibraryPackage $lib): bool
|
||||||
{
|
{
|
||||||
shell()->cd($lib->getSourceDir())->exec('sed -i.save s@\${CMAKE_C_IMPLICIT_LINK_LIBRARIES}@@ ./CMakeLists.txt');
|
if (SystemTarget::getTargetOS() !== 'Windows') {
|
||||||
|
shell()->cd($lib->getSourceDir())->exec('sed -i.save s@\${CMAKE_C_IMPLICIT_LINK_LIBRARIES}@@ ./CMakeLists.txt');
|
||||||
|
}
|
||||||
if (SystemTarget::getTargetOS() === 'Darwin') {
|
if (SystemTarget::getTargetOS() === 'Darwin') {
|
||||||
FileSystem::replaceFileRegex("{$lib->getSourceDir()}/CMakeLists.txt", '/NOT COREFOUNDATION_FRAMEWORK/m', 'FALSE');
|
FileSystem::replaceFileRegex("{$lib->getSourceDir()}/CMakeLists.txt", '/NOT COREFOUNDATION_FRAMEWORK/m', 'FALSE');
|
||||||
FileSystem::replaceFileRegex("{$lib->getSourceDir()}/CMakeLists.txt", '/NOT SYSTEMCONFIGURATION_FRAMEWORK/m', 'FALSE');
|
FileSystem::replaceFileRegex("{$lib->getSourceDir()}/CMakeLists.txt", '/NOT SYSTEMCONFIGURATION_FRAMEWORK/m', 'FALSE');
|
||||||
@@ -29,6 +32,34 @@ class curl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[BuildFor('Windows')]
|
||||||
|
public function buildWin(LibraryPackage $lib): void
|
||||||
|
{
|
||||||
|
WindowsCMakeExecutor::create($lib)
|
||||||
|
->optionalPackage('zstd', ...cmake_boolean_args('CURL_ZSTD'))
|
||||||
|
->optionalPackage('brotli', ...cmake_boolean_args('CURL_BROTLI'))
|
||||||
|
->addConfigureArgs(
|
||||||
|
'-DBUILD_CURL_EXE=OFF',
|
||||||
|
'-DZSTD_LIBRARY=zstd_static.lib',
|
||||||
|
'-DBUILD_TESTING=OFF',
|
||||||
|
'-DBUILD_EXAMPLES=OFF',
|
||||||
|
'-DUSE_LIBIDN2=OFF',
|
||||||
|
'-DCURL_USE_LIBPSL=OFF',
|
||||||
|
'-DUSE_WINDOWS_SSPI=ON',
|
||||||
|
'-DCURL_USE_SCHANNEL=ON',
|
||||||
|
'-DCURL_USE_OPENSSL=OFF',
|
||||||
|
'-DCURL_ENABLE_SSL=ON',
|
||||||
|
'-DUSE_NGHTTP2=ON',
|
||||||
|
'-DSHARE_LIB_OBJECT=OFF',
|
||||||
|
'-DCURL_USE_LIBSSH2=ON',
|
||||||
|
'-DENABLE_IPV6=ON',
|
||||||
|
)
|
||||||
|
->build();
|
||||||
|
// move libcurl.lib to libcurl_a.lib
|
||||||
|
rename("{$lib->getLibDir()}\\libcurl.lib", "{$lib->getLibDir()}\\libcurl_a.lib");
|
||||||
|
FileSystem::replaceFileStr("{$lib->getIncludeDir()}\\curl\\curl.h", '#ifdef CURL_STATICLIB', '#if 1');
|
||||||
|
}
|
||||||
|
|
||||||
#[BuildFor('Linux')]
|
#[BuildFor('Linux')]
|
||||||
#[BuildFor('Darwin')]
|
#[BuildFor('Darwin')]
|
||||||
public function build(LibraryPackage $lib): void
|
public function build(LibraryPackage $lib): void
|
||||||
|
|||||||
Reference in New Issue
Block a user