mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +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();
|
||||
}
|
||||
|
||||
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(
|
||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
||||
"/*\n#ifdef COMPILE_DL_READLINE",
|
||||
"#ifdef COMPILE_DL_READLINE\n/*"
|
||||
);
|
||||
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\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
|
||||
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
|
||||
);
|
||||
} else {
|
||||
FileSystem::replaceFileStr(
|
||||
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
|
||||
"#ifdef COMPILE_DL_READLINE\n/*",
|
||||
"/*\n#ifdef COMPILE_DL_READLINE"
|
||||
);
|
||||
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*/"
|
||||
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
|
||||
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\linux;
|
||||
|
||||
use SPC\builder\extension\readline;
|
||||
use SPC\builder\unix\UnixBuilderBase;
|
||||
use SPC\exception\PatchException;
|
||||
use SPC\exception\WrongUsageException;
|
||||
@ -170,10 +171,12 @@ class LinuxBuilder extends UnixBuilderBase
|
||||
protected function buildCli(): void
|
||||
{
|
||||
$vars = SystemUtil::makeEnvVarString($this->getMakeExtraVars());
|
||||
readline::patchCliLinux();
|
||||
$SPC_CMD_PREFIX_PHP_MAKE = getenv('SPC_CMD_PREFIX_PHP_MAKE') ?: 'make';
|
||||
shell()->cd(SOURCE_PATH . '/php-src')
|
||||
->exec('sed -i "s|//lib|/lib|g" Makefile')
|
||||
->exec("{$SPC_CMD_PREFIX_PHP_MAKE} {$vars} cli");
|
||||
readline::patchCliLinux(true);
|
||||
|
||||
if (!$this->getOption('no-strip', false)) {
|
||||
shell()->cd(SOURCE_PATH . '/php-src/sapi/cli')->exec('strip --strip-unneeded php');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user