From 230be2ebe818db2f70853bb668e9b7592b36a07f Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sat, 21 Mar 2026 11:12:13 +0800 Subject: [PATCH] Add libpng --- config/pkg/lib/libpng.yml | 3 +++ src/Package/Library/libpng.php | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/config/pkg/lib/libpng.yml b/config/pkg/lib/libpng.yml index e8831d60..083cf430 100644 --- a/config/pkg/lib/libpng.yml +++ b/config/pkg/lib/libpng.yml @@ -14,3 +14,6 @@ libpng: - zlib static-libs@unix: - libpng16.a + static-libs@windows: + - libpng16_static.lib + - libpng_a.lib diff --git a/src/Package/Library/libpng.php b/src/Package/Library/libpng.php index 1d02fdd6..6a169010 100644 --- a/src/Package/Library/libpng.php +++ b/src/Package/Library/libpng.php @@ -8,6 +8,8 @@ use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\Library; use StaticPHP\Package\LibraryPackage; use StaticPHP\Runtime\Executor\UnixAutoconfExecutor; +use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; +use StaticPHP\Util\FileSystem; #[Library('libpng')] class libpng @@ -44,4 +46,21 @@ class libpng $lib->patchPkgconfPrefix(['libpng16.pc']); $lib->patchLaDependencyPrefix(); } + + #[BuildFor('Windows')] + public function buildWin(LibraryPackage $lib): void + { + WindowsCMakeExecutor::create($lib) + ->addConfigureArgs( + '-DSKIP_INSTALL_PROGRAM=ON', + '-DSKIP_INSTALL_FILES=ON', + '-DPNG_STATIC=ON', + '-DPNG_SHARED=OFF', + '-DPNG_TESTS=OFF', + ) + ->build(); + + // libpng16_static.lib to libpng_a.lib + FileSystem::copy("{$lib->getLibDir()}\\libpng16_static.lib", "{$lib->getLibDir()}\\libpng_a.lib"); + } }