From 3808457b52cae809bcd9e5b971b41b2694d845bd Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 10 Apr 2026 15:51:18 +0800 Subject: [PATCH] Add lz4 and ext-lz4 for Windows --- config/pkg/ext/ext-lz4.yml | 5 +++-- config/pkg/lib/liblz4.yml | 2 ++ src/Package/Library/liblz4.php | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/config/pkg/ext/ext-lz4.yml b/config/pkg/ext/ext-lz4.yml index 8a3bb4db..8e16d54e 100644 --- a/config/pkg/ext/ext-lz4.yml +++ b/config/pkg/ext/ext-lz4.yml @@ -2,8 +2,9 @@ ext-lz4: type: php-extension artifact: source: - type: ghtagtar - repo: kjdev/php-ext-lz4 + type: git + url: 'https://github.com/kjdev/php-ext-lz4.git' + rev: master extract: php-src/ext/lz4 metadata: license-files: [LICENSE] diff --git a/config/pkg/lib/liblz4.yml b/config/pkg/lib/liblz4.yml index 298b3abf..bb7a74ae 100644 --- a/config/pkg/lib/liblz4.yml +++ b/config/pkg/lib/liblz4.yml @@ -11,3 +11,5 @@ liblz4: license: BSD-2-Clause static-libs@unix: - liblz4.a + static-libs@windows: + - lz4.lib diff --git a/src/Package/Library/liblz4.php b/src/Package/Library/liblz4.php index fb52a4fb..5dfbc995 100644 --- a/src/Package/Library/liblz4.php +++ b/src/Package/Library/liblz4.php @@ -10,6 +10,7 @@ use StaticPHP\Attribute\Package\PatchBeforeBuild; use StaticPHP\Attribute\PatchDescription; use StaticPHP\Package\LibraryPackage; use StaticPHP\Package\PackageBuilder; +use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; use StaticPHP\Util\FileSystem; #[Library('liblz4')] @@ -22,6 +23,16 @@ class liblz4 FileSystem::replaceFileStr($lib->getSourceDir() . '/programs/Makefile', 'install: lz4', "install: lz4\n\ninstallewfwef: lz4"); } + #[BuildFor('Windows')] + public function buildWin(LibraryPackage $lib): void + { + WindowsCMakeExecutor::create($lib) + ->setWorkingDir("{$lib->getSourceDir()}/build/cmake") + ->setBuildDir("{$lib->getSourceDir()}/_win_build") + ->addConfigureArgs('-DLZ4_BUILD_CLI=OFF') + ->build(); + } + #[BuildFor('Darwin')] #[BuildFor('Linux')] public function buildUnix(LibraryPackage $lib, PackageBuilder $builder): void