diff --git a/config/pkg/lib/libjpeg.yml b/config/pkg/lib/libjpeg.yml index 9171ad38..cca70686 100644 --- a/config/pkg/lib/libjpeg.yml +++ b/config/pkg/lib/libjpeg.yml @@ -7,6 +7,10 @@ libjpeg: metadata: license-files: [LICENSE.md] license: IJG + suggests@windows: + - zlib static-libs@unix: - libjpeg.a - libturbojpeg.a + static-libs@windows: + - libjpeg_a.lib diff --git a/src/Package/Library/libjpeg.php b/src/Package/Library/libjpeg.php index 04f4fd25..6e06bfb7 100644 --- a/src/Package/Library/libjpeg.php +++ b/src/Package/Library/libjpeg.php @@ -8,6 +8,8 @@ use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\Library; use StaticPHP\Package\LibraryPackage; use StaticPHP\Runtime\Executor\UnixCMakeExecutor; +use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; +use StaticPHP\Util\FileSystem; #[Library('libjpeg')] class libjpeg @@ -25,4 +27,20 @@ class libjpeg // patch pkgconfig $lib->patchPkgconfPrefix(['libjpeg.pc', 'libturbojpeg.pc']); } + + #[BuildFor('Windows')] + public function buildWin(LibraryPackage $lib): void + { + WindowsCMakeExecutor::create($lib) + ->addConfigureArgs( + '-DENABLE_SHARED=OFF', + '-DENABLE_STATIC=ON', + '-DBUILD_TESTING=OFF', + '-DWITH_JAVA=OFF', + '-DWITH_CRT_DLL=OFF', + ) + ->optionalPackage('zlib', '-DENABLE_ZLIB_COMPRESSION=ON', '-DENABLE_ZLIB_COMPRESSION=OFF') + ->build(); + FileSystem::copy("{$lib->getLibDir()}\\jpeg-static.lib", "{$lib->getLibDir()}\\libjpeg_a.lib"); + } }