From 52862a3d63dd6d52d0092241ac04197a06a34c5d Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Sun, 20 Jul 2025 01:13:51 +0700 Subject: [PATCH] fix libtiff libs being defined after configure --- config/lib.json | 11 ++++++----- config/source.json | 6 +++++- src/SPC/builder/unix/library/libjxl.php | 20 +++++++++++++++++++- src/SPC/builder/unix/library/libtiff.php | 10 +++++----- 4 files changed, 35 insertions(+), 12 deletions(-) diff --git a/config/lib.json b/config/lib.json index fdffb8b3..e98c1ae5 100644 --- a/config/lib.json +++ b/config/lib.json @@ -228,8 +228,9 @@ ], "lib-depends": [ "zlib", - "libpng", "libjpeg", + "libjxl", + "libpng", "libwebp", "freetype", "libtiff", @@ -240,8 +241,7 @@ "zstd", "xz", "libzip", - "libxml2", - "libjxl" + "libxml2" ] }, "imap": { @@ -424,11 +424,12 @@ "source": "libjxl", "static-libs-unix": [ "libjxl.a", - "libjxl_dec.a" + "libjxl_dec.a", + "libjxl_threads.a", + "libhwy.a" ], "lib-depends": [ "brotli", - "libgif", "libjpeg", "libpng", "libwebp" diff --git a/config/source.json b/config/source.json index c41b2213..73982380 100644 --- a/config/source.json +++ b/config/source.json @@ -390,8 +390,12 @@ }, "jbig": { "type": "url", - "url": "https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz", + "url": "https://dl.static-php.dev/static-php-cli/deps/jbig/jbigkit-2.1.tar.gz", "provide-pre-built": true, + "alt": { + "type": "url", + "url": "https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz" + }, "license": { "type": "file", "path": "COPYING" diff --git a/src/SPC/builder/unix/library/libjxl.php b/src/SPC/builder/unix/library/libjxl.php index 4991f6a9..c7ec5a09 100644 --- a/src/SPC/builder/unix/library/libjxl.php +++ b/src/SPC/builder/unix/library/libjxl.php @@ -4,10 +4,28 @@ declare(strict_types=1); namespace SPC\builder\unix\library; +use SPC\store\FileSystem; use SPC\util\executor\UnixCMakeExecutor; +use SPC\util\SPCTarget; trait libjxl { + public function patchBeforeBuild(): bool + { + $depsContent = file_get_contents($this->source_dir . '/deps.sh'); + if (str_contains($depsContent, '# return 0')) { + return false; + } + FileSystem::replaceFileStr( + $this->source_dir . '/deps.sh', + 'return 0', + '# return 0', + ); + shell()->cd($this->source_dir) + ->exec('./deps.sh'); + return true; + } + protected function build(): void { UnixCMakeExecutor::create($this) @@ -17,7 +35,7 @@ trait libjxl ->addConfigureArgs('-DJPEGXL_ENABLE_BENCHMARK=OFF') ->addConfigureArgs('-DJPEGXL_ENABLE_PLUGINS=OFF') ->addConfigureArgs('-DJPEGXL_ENABLE_SJPEG=OFF') - ->addConfigureArgs('-DJPEGXL_STATIC=ON') + ->addConfigureArgs('-DJPEGXL_STATIC=' . SPCTarget::isStatic() ? 'ON' : 'OFF') ->addConfigureArgs('-DBUILD_TESTING=OFF') ->build(); } diff --git a/src/SPC/builder/unix/library/libtiff.php b/src/SPC/builder/unix/library/libtiff.php index b148db96..f46f32fc 100644 --- a/src/SPC/builder/unix/library/libtiff.php +++ b/src/SPC/builder/unix/library/libtiff.php @@ -22,6 +22,11 @@ trait libtiff FileSystem::replaceFileStr($this->source_dir . '/configure', '-lwebp', '-lwebp -lsharpyuv'); FileSystem::replaceFileStr($this->source_dir . '/configure', '-l"$lerc_lib_name"', '-l"$lerc_lib_name" ' . $libcpp); UnixAutoconfExecutor::create($this) + ->optionalLib('lerc', '--enable-lerc', '--disable-lerc') + ->optionalLib('zstd', '--enable-zstd', '--disable-zstd') + ->optionalLib('libwebp', '--enable-webp', '--disable-webp') + ->optionalLib('xz', '--enable-lzma', '--disable-lzma') + ->optionalLib('jbig', '--enable-jbig', '--disable-jbig') ->configure( // zlib deps '--enable-zlib', @@ -39,11 +44,6 @@ trait libtiff '--disable-cxx', '--without-x', ) - ->optionalLib('lerc', '--enable-lerc', '--disable-lerc') - ->optionalLib('zstd', '--enable-zstd', '--disable-zstd') - ->optionalLib('webp', '--enable-webp', '--disable-webp') - ->optionalLib('xz', '--enable-lzma', '--disable-lzma') - ->optionalLib('jbig', '--enable-jbig', '--disable-jbig') ->make(); $this->patchPkgconfPrefix(['libtiff-4.pc']); }