mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +08:00
only apply readline fix for CLI compilation on linux
This commit is contained in:
parent
f0c39c1770
commit
565ac87b65
@ -36,31 +36,20 @@ class readline extends Extension
|
|||||||
parent::buildUnixShared();
|
parent::buildUnixShared();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function patchBeforeMake(): bool
|
public static function patchCliLinux(bool $revert = false): void
|
||||||
{
|
{
|
||||||
if (SPCTarget::getTargetOS() === 'Linux' && SPCTarget::isStatic() && $this->builder->getOption('build-cli')) {
|
if (SPCTarget::getTargetOS() === 'Linux' && SPCTarget::isStatic() && !$revert) {
|
||||||
FileSystem::replaceFileStr(
|
FileSystem::replaceFileStr(
|
||||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
||||||
"/*\n#ifdef COMPILE_DL_READLINE",
|
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
|
||||||
"#ifdef COMPILE_DL_READLINE\n/*"
|
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
|
||||||
);
|
|
||||||
FileSystem::replaceFileRegex(
|
|
||||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
|
||||||
'/\/\*#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif\*\//s',
|
|
||||||
"#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif"
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
FileSystem::replaceFileStr(
|
FileSystem::replaceFileStr(
|
||||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
||||||
"#ifdef COMPILE_DL_READLINE\n/*",
|
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
|
||||||
"/*\n#ifdef COMPILE_DL_READLINE"
|
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
|
||||||
);
|
|
||||||
FileSystem::replaceFileRegex(
|
|
||||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
|
||||||
'/#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif/s',
|
|
||||||
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif*/"
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace SPC\builder\linux;
|
namespace SPC\builder\linux;
|
||||||
|
|
||||||
|
use SPC\builder\extension\readline;
|
||||||
use SPC\builder\unix\UnixBuilderBase;
|
use SPC\builder\unix\UnixBuilderBase;
|
||||||
use SPC\exception\PatchException;
|
use SPC\exception\PatchException;
|
||||||
use SPC\exception\WrongUsageException;
|
use SPC\exception\WrongUsageException;
|
||||||
@ -170,10 +171,12 @@ class LinuxBuilder extends UnixBuilderBase
|
|||||||
protected function buildCli(): void
|
protected function buildCli(): void
|
||||||
{
|
{
|
||||||
$vars = SystemUtil::makeEnvVarString($this->getMakeExtraVars());
|
$vars = SystemUtil::makeEnvVarString($this->getMakeExtraVars());
|
||||||
|
readline::patchCliLinux();
|
||||||
$SPC_CMD_PREFIX_PHP_MAKE = getenv('SPC_CMD_PREFIX_PHP_MAKE') ?: 'make';
|
$SPC_CMD_PREFIX_PHP_MAKE = getenv('SPC_CMD_PREFIX_PHP_MAKE') ?: 'make';
|
||||||
shell()->cd(SOURCE_PATH . '/php-src')
|
shell()->cd(SOURCE_PATH . '/php-src')
|
||||||
->exec('sed -i "s|//lib|/lib|g" Makefile')
|
->exec('sed -i "s|//lib|/lib|g" Makefile')
|
||||||
->exec("{$SPC_CMD_PREFIX_PHP_MAKE} {$vars} cli");
|
->exec("{$SPC_CMD_PREFIX_PHP_MAKE} {$vars} cli");
|
||||||
|
readline::patchCliLinux(true);
|
||||||
|
|
||||||
if (!$this->getOption('no-strip', false)) {
|
if (!$this->getOption('no-strip', false)) {
|
||||||
shell()->cd(SOURCE_PATH . '/php-src/sapi/cli')->exec('strip --strip-unneeded php');
|
shell()->cd(SOURCE_PATH . '/php-src/sapi/cli')->exec('strip --strip-unneeded php');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user