diff --git a/src/Package/Extension/mongodb.php b/src/Package/Extension/mongodb.php index 944ce86a..1b417092 100644 --- a/src/Package/Extension/mongodb.php +++ b/src/Package/Extension/mongodb.php @@ -8,6 +8,7 @@ use Package\Target\php; use StaticPHP\Attribute\Package\BeforeStage; use StaticPHP\Attribute\Package\CustomPhpConfigureArg; use StaticPHP\Attribute\Package\Extension; +use StaticPHP\Attribute\PatchDescription; use StaticPHP\Package\PackageInstaller; use StaticPHP\Package\PhpExtensionPackage; use StaticPHP\Util\FileSystem; @@ -16,6 +17,7 @@ use StaticPHP\Util\FileSystem; class mongodb extends PhpExtensionPackage { #[BeforeStage('php', [php::class, 'buildconfForWindows'], 'ext-mongodb')] + #[PatchDescription('Add /utf-8 flag to CFLAGS_MONGODB for Windows build to fix compilation error on non-English Windows.')] public function patchBeforeBuild(): void { FileSystem::replaceFileStr( @@ -25,6 +27,17 @@ class mongodb extends PhpExtensionPackage ); } + #[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-mongodb')] + #[PatchDescription('Replace src/libmongoc/ with ${ac_config_dir}/src/libmongoc/ in config.m4 to fix the build on Unix-like systems.')] + public function patchBeforeBuildconfUnix(): void + { + FileSystem::replaceFileRegex( + $this->getSourceDir() . '/config.m4', + '/^(\s+)(src\/libmongoc\/)/m', + '$1${ac_config_dir}/$2' + ); + } + #[CustomPhpConfigureArg('Darwin')] #[CustomPhpConfigureArg('Linux')] public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string