From 35b23a532f56db41d7362da37cd7db920324edae Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 10 Apr 2026 15:34:55 +0800 Subject: [PATCH] Add ext-snappy and snappy support on Windows --- config/pkg/ext/ext-snappy.yml | 1 + config/pkg/lib/snappy.yml | 7 +++++++ src/Package/Library/snappy.php | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/config/pkg/ext/ext-snappy.yml b/config/pkg/ext/ext-snappy.yml index 7ddec261..39452777 100644 --- a/config/pkg/ext/ext-snappy.yml +++ b/config/pkg/ext/ext-snappy.yml @@ -16,3 +16,4 @@ ext-snappy: lang: cpp php-extension: arg-type@unix: '--enable-snappy --with-snappy-includedir=@build_root_path@' + arg-type@windows: '--enable-snappy' diff --git a/config/pkg/lib/snappy.yml b/config/pkg/lib/snappy.yml index a369fa33..9875e784 100644 --- a/config/pkg/lib/snappy.yml +++ b/config/pkg/lib/snappy.yml @@ -15,6 +15,13 @@ snappy: - snappy-c.h - snappy-sinksource.h - snappy-stubs-public.h + headers@windows: + - snappy.h + - snappy-c.h + - snappy-sinksource.h + - snappy-stubs-public.h lang: cpp static-libs@unix: - libsnappy.a + static-libs@windows: + - snappy.lib diff --git a/src/Package/Library/snappy.php b/src/Package/Library/snappy.php index d822c3cf..ca5a230a 100644 --- a/src/Package/Library/snappy.php +++ b/src/Package/Library/snappy.php @@ -8,6 +8,7 @@ use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\Library; use StaticPHP\Package\LibraryPackage; use StaticPHP\Runtime\Executor\UnixCMakeExecutor; +use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; #[Library('snappy')] class snappy @@ -24,4 +25,15 @@ class snappy ) ->build('../..'); } + + #[BuildFor('Windows')] + public function buildWin(LibraryPackage $lib): void + { + WindowsCMakeExecutor::create($lib) + ->addConfigureArgs( + '-DSNAPPY_BUILD_TESTS=OFF', + '-DSNAPPY_BUILD_BENCHMARKS=OFF', + ) + ->build(); + } }