diff --git a/config/pkg/ext/ext-mongodb.yml b/config/pkg/ext/ext-mongodb.yml index 7cbdbb14..97f9f0a0 100644 --- a/config/pkg/ext/ext-mongodb.yml +++ b/config/pkg/ext/ext-mongodb.yml @@ -9,7 +9,9 @@ ext-mongodb: metadata: license-files: [LICENSE] license: PHP-3.01 - suggests: + depends@windows: + - ext-openssl + suggests@unix: - icu - openssl - zstd @@ -18,4 +20,5 @@ ext-mongodb: - CoreFoundation - Security php-extension: - arg-type: custom + arg-type@unix: custom + arg-type@windows: '--enable-mongodb --with-mongodb-client-side-encryption' diff --git a/src/Package/Extension/mongodb.php b/src/Package/Extension/mongodb.php index 3434491d..944ce86a 100644 --- a/src/Package/Extension/mongodb.php +++ b/src/Package/Extension/mongodb.php @@ -4,14 +4,27 @@ declare(strict_types=1); namespace Package\Extension; +use Package\Target\php; +use StaticPHP\Attribute\Package\BeforeStage; use StaticPHP\Attribute\Package\CustomPhpConfigureArg; use StaticPHP\Attribute\Package\Extension; use StaticPHP\Package\PackageInstaller; use StaticPHP\Package\PhpExtensionPackage; +use StaticPHP\Util\FileSystem; #[Extension('mongodb')] class mongodb extends PhpExtensionPackage { + #[BeforeStage('php', [php::class, 'buildconfForWindows'], 'ext-mongodb')] + public function patchBeforeBuild(): void + { + FileSystem::replaceFileStr( + "{$this->getSourceDir()}/config.w32", + 'ADD_FLAG("CFLAGS_MONGODB", "/D KMS_MESSAGE_LITTLE_ENDIAN=1 /D MONGOCRYPT_LITTLE_ENDIAN=1 /D MLIB_USER=1");', + 'ADD_FLAG("CFLAGS_MONGODB", "/D KMS_MESSAGE_LITTLE_ENDIAN=1 /D MONGOCRYPT_LITTLE_ENDIAN=1 /D MLIB_USER=1");' . "\n ADD_FLAG(\"CFLAGS_MONGODB\", \"/utf-8\");", + ); + } + #[CustomPhpConfigureArg('Darwin')] #[CustomPhpConfigureArg('Linux')] public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string