From 5c44703f53f7059e4682a9dfb5a62afbda7511a1 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Fri, 18 Jul 2025 13:51:33 +0700 Subject: [PATCH] add lerc --- config/lib.json | 10 ++++++++++ config/source.json | 10 ++++++++++ src/SPC/builder/linux/library/lerc.php | 12 ++++++++++++ src/SPC/builder/macos/library/lerc.php | 12 ++++++++++++ src/SPC/builder/unix/library/lerc.php | 22 ++++++++++++++++++++++ src/SPC/builder/unix/library/libtiff.php | 15 +++++++++------ 6 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 src/SPC/builder/linux/library/lerc.php create mode 100644 src/SPC/builder/macos/library/lerc.php create mode 100644 src/SPC/builder/unix/library/lerc.php diff --git a/config/lib.json b/config/lib.json index 1a195f66..4102756f 100644 --- a/config/lib.json +++ b/config/lib.json @@ -265,6 +265,13 @@ "libsodium" ] }, + "lerc": { + "source": "lerc", + "static-libs-unix": [ + "libLerc.a" + ], + "cpp-library": true + }, "libacl": { "source": "libacl", "static-libs-unix": [ @@ -498,6 +505,9 @@ "lib-depends": [ "zlib", "libjpeg" + ], + "lib-suggests-unix": [ + "lerc" ] }, "libuuid": { diff --git a/config/source.json b/config/source.json index d31a9af2..24c7a753 100644 --- a/config/source.json +++ b/config/source.json @@ -466,6 +466,16 @@ "path": "COPYING" } }, + "lerc": { + "type": "ghtar", + "repo": "Esri/lerc", + "prefer-stable": true, + "provide-pre-built": true, + "license": { + "type": "file", + "path": "LICENSE" + } + }, "libevent": { "type": "ghrel", "repo": "libevent/libevent", diff --git a/src/SPC/builder/linux/library/lerc.php b/src/SPC/builder/linux/library/lerc.php new file mode 100644 index 00000000..6b7b658b --- /dev/null +++ b/src/SPC/builder/linux/library/lerc.php @@ -0,0 +1,12 @@ +build(); + } +} diff --git a/src/SPC/builder/unix/library/libtiff.php b/src/SPC/builder/unix/library/libtiff.php index f615019a..2a222670 100644 --- a/src/SPC/builder/unix/library/libtiff.php +++ b/src/SPC/builder/unix/library/libtiff.php @@ -6,6 +6,7 @@ namespace SPC\builder\unix\library; use SPC\exception\FileSystemException; use SPC\exception\RuntimeException; +use SPC\store\FileSystem; use SPC\util\executor\UnixAutoconfExecutor; trait libtiff @@ -16,6 +17,7 @@ trait libtiff */ protected function build(): void { + FileSystem::replaceFileStr($this->source_dir . '/configure', '-lwebp', '-lwebp -lsharpyuv'); UnixAutoconfExecutor::create($this) ->configure( // zlib deps @@ -24,17 +26,18 @@ trait libtiff "--with-zlib-lib-dir={$this->getLibDir()}", // libjpeg deps '--enable-jpeg', - '--disable-old-jpeg', - '--disable-jpeg12', "--with-jpeg-include-dir={$this->getIncludeDir()}", "--with-jpeg-lib-dir={$this->getLibDir()}", - // We disabled lzma, zstd, webp, libdeflate by default to reduce the size of the binary - '--disable-lzma', - '--disable-zstd', - '--disable-webp', + '--disable-old-jpeg', + '--disable-jpeg12', '--disable-libdeflate', '--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') ->make(); $this->patchPkgconfPrefix(['libtiff-4.pc']); }