Add support for re2c in tool checklists and environment setup

This commit is contained in:
crazywhalecc 2025-07-28 15:54:55 +08:00
parent 973c8f082f
commit 0696acb9c5
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
4 changed files with 15 additions and 3 deletions

View File

@ -104,6 +104,7 @@ RUN apk update; \
m4 \
make \
pkgconfig \
re2c \
wget \
xz \
gettext-dev \

View File

@ -16,7 +16,7 @@ class LinuxToolCheckList
use UnixSystemUtilTrait;
public const TOOLS_ALPINE = [
'make', 'bison', 'flex',
'make', 'bison', 're2c', 'flex',
'git', 'autoconf', 'automake', 'gettext-dev',
'tar', 'unzip', 'gzip',
'bzip2', 'cmake', 'gcc',
@ -26,7 +26,7 @@ class LinuxToolCheckList
];
public const TOOLS_DEBIAN = [
'make', 'bison', 'flex',
'make', 'bison', 're2c', 'flex',
'git', 'autoconf', 'automake', 'autopoint',
'tar', 'unzip', 'gzip',
'bzip2', 'cmake', 'patch',
@ -35,7 +35,7 @@ class LinuxToolCheckList
];
public const TOOLS_RHEL = [
'perl', 'make', 'bison', 'flex',
'perl', 'make', 'bison', 're2c', 'flex',
'git', 'autoconf', 'automake',
'tar', 'unzip', 'gzip', 'gcc',
'bzip2', 'cmake', 'patch', 'which',

View File

@ -19,6 +19,7 @@ class MacOSToolCheckList
'curl',
'make',
'bison',
're2c',
'flex',
'pkg-config',
'git',

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace SPC\util;
use SPC\builder\macos\SystemUtil;
use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException;
use SPC\toolchain\ToolchainManager;
@ -111,6 +112,15 @@ class GlobalEnvManager
if (!filter_var(getenv('SPC_SKIP_TOOLCHAIN_CHECK'), FILTER_VALIDATE_BOOL)) {
ToolchainManager::afterInitToolchain();
}
// test bison
if (PHP_OS_FAMILY === 'Darwin') {
if ($bison = SystemUtil::findCommand('bison', ['/opt/homebrew/opt/bison/bin', '/usr/local/homebrew/opt/bison/bin'])) {
self::putenv("BISON={$bison}");
}
if ($yacc = SystemUtil::findCommand('yacc', ['/opt/homebrew/opt/bison/bin', '/usr/local/homebrew/opt/bison/bin'])) {
self::putenv("YACC={$yacc}");
}
}
}
/**