Skip to content

Commit a5a3a99

Browse files
committed
Use legacy --enable-micro-win32 way to workaround
1 parent 2bc0d05 commit a5a3a99

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/Package/Target/php/windows.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,17 @@ public function beforeBuildconfWin(TargetPackage $package): void
3535
}
3636

3737
#[Stage]
38-
public function buildconfForWindows(TargetPackage $package): void
38+
public function buildconfForWindows(TargetPackage $package, PackageInstaller $installer): void
3939
{
4040
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf.bat'));
4141
V2CompatLayer::emitPatchPoint('before-php-buildconf');
4242
cmd()->cd($package->getSourceDir())->exec('.\buildconf.bat');
43+
44+
if ($package->getBuildOption('enable-micro-win32') && $installer->isPackageResolved('php-micro')) {
45+
SourcePatcher::patchMicroWin32();
46+
} else {
47+
SourcePatcher::unpatchMicroWin32();
48+
}
4349
}
4450

4551
#[Stage]

src/StaticPHP/Util/SourcePatcher.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,22 @@ public static function unpatchMicroPhar(): void
196196
FileSystem::restoreBackupFile(SOURCE_PATH . '/php-src/ext/phar/phar.c');
197197
}
198198

199+
public static function patchMicroWin32(): void
200+
{
201+
// patch micro win32
202+
if (!file_exists(SOURCE_PATH . '\php-src\sapi\micro\php_micro.c.win32bak')) {
203+
copy(SOURCE_PATH . '\php-src\sapi\micro\php_micro.c', SOURCE_PATH . '\php-src\sapi\micro\php_micro.c.win32bak');
204+
FileSystem::replaceFileStr(SOURCE_PATH . '\php-src\sapi\micro\php_micro.c', '#include "php_variables.h"', '#include "php_variables.h"' . "\n#define PHP_MICRO_WIN32_NO_CONSOLE 1");
205+
}
206+
}
207+
208+
public static function unpatchMicroWin32(): void
209+
{
210+
if (file_exists(SOURCE_PATH . '\php-src\sapi\micro\php_micro.c.win32bak')) {
211+
rename(SOURCE_PATH . '\php-src\sapi\micro\php_micro.c.win32bak', SOURCE_PATH . '\php-src\sapi\micro\php_micro.c');
212+
}
213+
}
214+
199215
public static function patchPhpSrc(?array $items = null): bool
200216
{
201217
$patch_dir = ROOT_DIR . '/src/globals/patch/php-src-patches';

0 commit comments

Comments
 (0)