From c31bf73685267bdbcf11516486bbf8dc034cfbbd Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sun, 21 Jun 2026 19:28:15 +0800 Subject: [PATCH] feat(build): add bison and re2c to required packages; bypass phpsdk_version check for MSVC + msys2 --- src/Package/Artifact/msys2_build_essentials.php | 2 +- src/Package/Target/php/windows.php | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Package/Artifact/msys2_build_essentials.php b/src/Package/Artifact/msys2_build_essentials.php index 920927bf..87d52218 100644 --- a/src/Package/Artifact/msys2_build_essentials.php +++ b/src/Package/Artifact/msys2_build_essentials.php @@ -16,7 +16,7 @@ use StaticPHP\Util\GlobalEnvManager; class msys2_build_essentials { // MSYS subsystem packages required for autotools-based builds. - private const REQUIRED_PACKAGES = ['make', 'autoconf', 'automake', 'libtool', 'pkgconf', 'perl']; + private const REQUIRED_PACKAGES = ['make', 'autoconf', 'automake', 'libtool', 'pkgconf', 'perl', 'bison', 're2c']; #[CustomBinary('msys2-build-essentials', ['windows-x86_64'])] public function downBinary(ArtifactDownloader $downloader): DownloadResult diff --git a/src/Package/Target/php/windows.php b/src/Package/Target/php/windows.php index a38da5b4..57a9e3ae 100644 --- a/src/Package/Target/php/windows.php +++ b/src/Package/Target/php/windows.php @@ -39,6 +39,13 @@ trait windows InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf.bat')); cmd()->cd($package->getSourceDir())->exec('.\buildconf.bat'); + // Bypass the phpsdk_version check in configure.js: we use MSVC + msys2 instead of PHP SDK, so phpsdk_version is not available and the check would always fail. + FileSystem::replaceFileStr( + "{$package->getSourceDir()}\\configure.js", + 'check_binary_tools_sdk();', + '/* check_binary_tools_sdk(); skipped: using MSVC + msys2 without PHP SDK */' + ); + if ($package->getBuildOption('enable-micro-win32') && $installer->isPackageResolved('php-micro')) { SourcePatcher::patchMicroWin32(); } else {