From a095d489f35e6d2551ae45aed537708a9d5b36bc Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Tue, 22 Jul 2025 22:09:45 +0800 Subject: [PATCH] Fix libwebp static libs order --- config/lib.json | 12 ++++++------ src/SPC/builder/unix/library/libwebp.php | 3 +-- src/SPC/util/SPCConfigUtil.php | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/config/lib.json b/config/lib.json index cffda176..27825387 100644 --- a/config/lib.json +++ b/config/lib.json @@ -555,12 +555,12 @@ }, "libwebp": { "source": "libwebp", - "static-libs-unix": [ - "libwebp.a", - "libwebpdecoder.a", - "libwebpdemux.a", - "libwebpmux.a", - "libsharpyuv.a" + "pkg-configs": [ + "libwebp", + "libwebpdecoder", + "libwebpdemux", + "libwebpmux", + "libsharpyuv" ], "static-libs-windows": [ "libwebp.lib", diff --git a/src/SPC/builder/unix/library/libwebp.php b/src/SPC/builder/unix/library/libwebp.php index 32331ea2..a7651dd5 100644 --- a/src/SPC/builder/unix/library/libwebp.php +++ b/src/SPC/builder/unix/library/libwebp.php @@ -22,8 +22,7 @@ trait libwebp ->addConfigureArgs('-DWEBP_BUILD_EXTRAS=ON') ->build(); // patch pkgconfig - $this->patchPkgconfPrefix(['libsharpyuv.pc', 'libwebp.pc', 'libwebpdecoder.pc', 'libwebpdemux.pc', 'libwebpmux.pc'], PKGCONF_PATCH_PREFIX | PKGCONF_PATCH_LIBDIR); + $this->patchPkgconfPrefix(patch_option: PKGCONF_PATCH_PREFIX | PKGCONF_PATCH_LIBDIR); $this->patchPkgconfPrefix(['libsharpyuv.pc'], PKGCONF_PATCH_CUSTOM, ['/^includedir=.*$/m', 'includedir=${prefix}/include/webp']); - $this->patchPkgconfPrefix(['libwebp.pc'], PKGCONF_PATCH_CUSTOM, ['/-lwebp$/m', '-lwebp -lsharpyuv']); } } diff --git a/src/SPC/util/SPCConfigUtil.php b/src/SPC/util/SPCConfigUtil.php index 0d165231..595e330f 100644 --- a/src/SPC/util/SPCConfigUtil.php +++ b/src/SPC/util/SPCConfigUtil.php @@ -86,7 +86,7 @@ class SPCConfigUtil if (SPCTarget::getTargetOS() === 'Darwin') { $libs .= " {$this->getFrameworksString($extensions)}"; } - $libs .= $this->builder instanceof MacOSBuilder ? ' -lc++' : ' -lstdc++'; + $libs .= $this->builder->hasCpp() && $this->builder instanceof MacOSBuilder ? ' -lc++' : ' -lstdc++'; if ($this->libs_only_deps) { return [