Skip to content

Commit 565ac87

Browse files
committed
only apply readline fix for CLI compilation on linux
1 parent f0c39c1 commit 565ac87

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

src/SPC/builder/extension/readline.php

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,20 @@ public function buildUnixShared(): void
3636
parent::buildUnixShared();
3737
}
3838

39-
public function patchBeforeMake(): bool
39+
public static function patchCliLinux(bool $revert = false): void
4040
{
41-
if (SPCTarget::getTargetOS() === 'Linux' && SPCTarget::isStatic() && $this->builder->getOption('build-cli')) {
41+
if (SPCTarget::getTargetOS() === 'Linux' && SPCTarget::isStatic() && !$revert) {
4242
FileSystem::replaceFileStr(
4343
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
44-
"/*\n#ifdef COMPILE_DL_READLINE",
45-
"#ifdef COMPILE_DL_READLINE\n/*"
46-
);
47-
FileSystem::replaceFileRegex(
48-
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
49-
'/\/\*#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif\*\//s',
50-
"#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif"
44+
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
45+
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
5146
);
5247
} else {
5348
FileSystem::replaceFileStr(
5449
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
55-
"#ifdef COMPILE_DL_READLINE\n/*",
56-
"/*\n#ifdef COMPILE_DL_READLINE"
57-
);
58-
FileSystem::replaceFileRegex(
59-
SOURCE_PATH . '/php-src/ext/readline/readline_cli.c',
60-
'/#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif/s',
61-
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif*/"
50+
"#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n/*#else",
51+
"/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()",
6252
);
6353
}
64-
return false;
6554
}
6655
}

src/SPC/builder/linux/LinuxBuilder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace SPC\builder\linux;
66

7+
use SPC\builder\extension\readline;
78
use SPC\builder\unix\UnixBuilderBase;
89
use SPC\exception\PatchException;
910
use SPC\exception\WrongUsageException;
@@ -170,10 +171,12 @@ public function testPHP(int $build_target = BUILD_TARGET_NONE)
170171
protected function buildCli(): void
171172
{
172173
$vars = SystemUtil::makeEnvVarString($this->getMakeExtraVars());
174+
readline::patchCliLinux();
173175
$SPC_CMD_PREFIX_PHP_MAKE = getenv('SPC_CMD_PREFIX_PHP_MAKE') ?: 'make';
174176
shell()->cd(SOURCE_PATH . '/php-src')
175177
->exec('sed -i "s|//lib|/lib|g" Makefile')
176178
->exec("{$SPC_CMD_PREFIX_PHP_MAKE} {$vars} cli");
179+
readline::patchCliLinux(true);
177180

178181
if (!$this->getOption('no-strip', false)) {
179182
shell()->cd(SOURCE_PATH . '/php-src/sapi/cli')->exec('strip --strip-unneeded php');

0 commit comments

Comments
 (0)