mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +08:00
Fix curl static build for Windows
This commit is contained in:
parent
9af3b745a2
commit
83db186972
@ -63,6 +63,8 @@ PHP_SDK_PATH="${WORKING_DIR}\php-sdk-binary-tools"
|
|||||||
UPX_EXEC="${PKG_ROOT_PATH}\bin\upx.exe"
|
UPX_EXEC="${PKG_ROOT_PATH}\bin\upx.exe"
|
||||||
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
||||||
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,cli_static
|
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,cli_static
|
||||||
|
; Windows static linking system libs
|
||||||
|
SPC_WINDOWS_EXEC_LIBS="ws2_32.lib shell32.lib"
|
||||||
|
|
||||||
[linux]
|
[linux]
|
||||||
; Linux can use different build toolchain, but the toolchain can not be changed in this file:
|
; Linux can use different build toolchain, but the toolchain can not be changed in this file:
|
||||||
|
|||||||
@ -57,6 +57,17 @@ class curl extends Extension
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function patchBeforeMake(): bool
|
||||||
|
{
|
||||||
|
$extra_libs = getenv('SPC_WINDOWS_EXEC_LIBS');
|
||||||
|
if (!str_contains($extra_libs, 'secur32.lib')) {
|
||||||
|
$extra_libs .= ' secur32.lib';
|
||||||
|
putenv('SPC_WINDOWS_EXEC_LIBS=' . $extra_libs);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public function patchBeforeSharedConfigure(): bool
|
public function patchBeforeSharedConfigure(): bool
|
||||||
{
|
{
|
||||||
$file = $this->source_dir . '/config.m4';
|
$file = $this->source_dir . '/config.m4';
|
||||||
|
|||||||
@ -162,8 +162,10 @@ class WindowsBuilder extends BuilderBase
|
|||||||
{
|
{
|
||||||
SourcePatcher::patchWindowsCLITarget();
|
SourcePatcher::patchWindowsCLITarget();
|
||||||
|
|
||||||
|
$extra_libs = getenv('SPC_WINDOWS_EXEC_LIBS') ?: '';
|
||||||
|
|
||||||
// add nmake wrapper
|
// add nmake wrapper
|
||||||
FileSystem::writeFile(SOURCE_PATH . '\php-src\nmake_cli_wrapper.bat', "nmake /nologo LIBS_CLI=\"{$this->getOption('extra-libs')} ws2_32.lib shell32.lib\" EXTRA_LD_FLAGS_PROGRAM= %*");
|
FileSystem::writeFile(SOURCE_PATH . '\php-src\nmake_cli_wrapper.bat', "nmake /nologo LIBS_CLI=\"{$extra_libs}\" EXTRA_LD_FLAGS_PROGRAM= %*");
|
||||||
|
|
||||||
cmd()->cd(SOURCE_PATH . '\php-src')->exec("{$this->sdk_prefix} nmake_cli_wrapper.bat --task-args php.exe");
|
cmd()->cd(SOURCE_PATH . '\php-src')->exec("{$this->sdk_prefix} nmake_cli_wrapper.bat --task-args php.exe");
|
||||||
|
|
||||||
@ -197,9 +199,11 @@ class WindowsBuilder extends BuilderBase
|
|||||||
}
|
}
|
||||||
FileSystem::writeFile(SOURCE_PATH . '\php-src\Makefile', $makefile);
|
FileSystem::writeFile(SOURCE_PATH . '\php-src\Makefile', $makefile);
|
||||||
|
|
||||||
|
$extra_libs = getenv('SPC_WINDOWS_EXEC_LIBS') ?: '';
|
||||||
|
|
||||||
// add nmake wrapper
|
// add nmake wrapper
|
||||||
$fake_cli = $this->getOption('with-micro-fake-cli', false) ? ' /DPHP_MICRO_FAKE_CLI" ' : '';
|
$fake_cli = $this->getOption('with-micro-fake-cli', false) ? ' /DPHP_MICRO_FAKE_CLI" ' : '';
|
||||||
$wrapper = "nmake /nologo LIBS_MICRO=\"{$this->getOption('extra-libs')} ws2_32.lib shell32.lib\" CFLAGS_MICRO=\"/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1{$fake_cli}\" %*";
|
$wrapper = "nmake /nologo LIBS_MICRO=\"{$extra_libs}\" CFLAGS_MICRO=\"/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1{$fake_cli}\" %*";
|
||||||
FileSystem::writeFile(SOURCE_PATH . '\php-src\nmake_micro_wrapper.bat', $wrapper);
|
FileSystem::writeFile(SOURCE_PATH . '\php-src\nmake_micro_wrapper.bat', $wrapper);
|
||||||
|
|
||||||
// phar patch for micro
|
// phar patch for micro
|
||||||
|
|||||||
@ -37,6 +37,7 @@ class curl extends WindowsLibraryBase
|
|||||||
'-DBUILD_EXAMPLES=OFF ' . // disable examples
|
'-DBUILD_EXAMPLES=OFF ' . // disable examples
|
||||||
'-DUSE_LIBIDN2=OFF ' . // disable libidn2
|
'-DUSE_LIBIDN2=OFF ' . // disable libidn2
|
||||||
'-DCURL_USE_LIBPSL=OFF ' . // disable libpsl
|
'-DCURL_USE_LIBPSL=OFF ' . // disable libpsl
|
||||||
|
'-DUSE_WINDOWS_SSPI=ON ' . // use Schannel instead of OpenSSL
|
||||||
'-DCURL_USE_SCHANNEL=ON ' . // use Schannel instead of OpenSSL
|
'-DCURL_USE_SCHANNEL=ON ' . // use Schannel instead of OpenSSL
|
||||||
'-DCURL_USE_OPENSSL=OFF ' . // disable openssl due to certificate issue
|
'-DCURL_USE_OPENSSL=OFF ' . // disable openssl due to certificate issue
|
||||||
'-DCURL_ENABLE_SSL=ON ' .
|
'-DCURL_ENABLE_SSL=ON ' .
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user