From b3bbe0a75146a7d65ae2ae64ca8d0f98451cb46e Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Thu, 5 Feb 2026 19:19:09 +0800 Subject: [PATCH] Add libjpeg,libpng --- config/pkg/lib/libjpeg.yml | 12 +++++++++ config/pkg/lib/libpng.yml | 16 +++++++++++ src/Package/Library/libjpeg.php | 28 ++++++++++++++++++++ src/Package/Library/libpng.php | 47 +++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 config/pkg/lib/libjpeg.yml create mode 100644 config/pkg/lib/libpng.yml create mode 100644 src/Package/Library/libjpeg.php create mode 100644 src/Package/Library/libpng.php diff --git a/config/pkg/lib/libjpeg.yml b/config/pkg/lib/libjpeg.yml new file mode 100644 index 00000000..9171ad38 --- /dev/null +++ b/config/pkg/lib/libjpeg.yml @@ -0,0 +1,12 @@ +libjpeg: + type: library + artifact: + source: + type: ghtar + repo: libjpeg-turbo/libjpeg-turbo + metadata: + license-files: [LICENSE.md] + license: IJG + static-libs@unix: + - libjpeg.a + - libturbojpeg.a diff --git a/config/pkg/lib/libpng.yml b/config/pkg/lib/libpng.yml new file mode 100644 index 00000000..e8831d60 --- /dev/null +++ b/config/pkg/lib/libpng.yml @@ -0,0 +1,16 @@ +libpng: + type: library + artifact: + source: + type: ghtagtar + repo: pnggroup/libpng + match: v1\.6\.\d+ + query: '?per_page=150' + binary: hosted + metadata: + license-files: [LICENSE] + license: PNG + depends: + - zlib + static-libs@unix: + - libpng16.a diff --git a/src/Package/Library/libjpeg.php b/src/Package/Library/libjpeg.php new file mode 100644 index 00000000..04f4fd25 --- /dev/null +++ b/src/Package/Library/libjpeg.php @@ -0,0 +1,28 @@ +addConfigureArgs( + '-DENABLE_STATIC=ON', + '-DENABLE_SHARED=OFF', + ) + ->build(); + // patch pkgconfig + $lib->patchPkgconfPrefix(['libjpeg.pc', 'libturbojpeg.pc']); + } +} diff --git a/src/Package/Library/libpng.php b/src/Package/Library/libpng.php new file mode 100644 index 00000000..1d02fdd6 --- /dev/null +++ b/src/Package/Library/libpng.php @@ -0,0 +1,47 @@ +getBuildRootPath()}", + ]; + + // Enable architecture-specific optimizations + match (getenv('SPC_ARCH')) { + 'x86_64' => $args[] = '--enable-intel-sse', + 'aarch64' => $args[] = '--enable-arm-neon', + default => null, + }; + + UnixAutoconfExecutor::create($lib) + ->exec('chmod +x ./configure') + ->exec('chmod +x ./install-sh') + ->appendEnv(['LDFLAGS' => "-L{$lib->getLibDir()}"]) + ->addConfigureArgs(...$args) + ->configure() + ->make( + 'libpng16.la', + 'install-libLTLIBRARIES install-data-am', + after_env_vars: ['DEFAULT_INCLUDES' => "-I{$lib->getSourceDir()} -I{$lib->getIncludeDir()}"] + ); + + // patch pkgconfig + $lib->patchPkgconfPrefix(['libpng16.pc']); + $lib->patchLaDependencyPrefix(); + } +}