From 0acf238c74b45ceb4033cd92a91379f69f2b1655 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Fri, 25 Jul 2025 11:02:01 +0700 Subject: [PATCH] suggested are required too --- src/SPC/builder/Extension.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/SPC/builder/Extension.php b/src/SPC/builder/Extension.php index e83f9dcd..9ea5c8b3 100644 --- a/src/SPC/builder/Extension.php +++ b/src/SPC/builder/Extension.php @@ -228,15 +228,21 @@ class Extension */ public function patchBeforeSharedMake(): bool { + $config = (new SPCConfigUtil($this->builder))->config([$this->getName()], $this->builder->getOption('with-suggested-exts'), $this->builder->getOption('with-suggested-libs')); + [$staticLibs] = $this->getStaticAndSharedLibs($config['libs']); + FileSystem::replaceFileRegex( + $this->source_dir . '/Makefile', + '/^(.*_SHARED_LIBADD\s*=.*)$/m', + '$1 ' . trim($staticLibs) + ); if ($objs = getenv('SPC_EXTRA_RUNTIME_OBJECTS')) { FileSystem::replaceFileRegex( $this->source_dir . '/Makefile', "/^(shared_objects_{$this->getName()}\\s*=.*)$/m", "$1 {$objs}", ); - return true; } - return false; + return true; } /** @@ -401,7 +407,7 @@ class Extension */ public function buildUnixShared(): void { - $config = (new SPCConfigUtil($this->builder))->config([$this->getName()]); + $config = (new SPCConfigUtil($this->builder))->config([$this->getName()], $this->builder->getOption('with-suggested-exts'), $this->builder->getOption('with-suggested-libs')); [$staticLibs, $sharedLibs] = $this->getStaticAndSharedLibs($config['libs']); $env = [ 'CFLAGS' => $config['cflags'], @@ -437,13 +443,6 @@ class Extension '--enable-shared --disable-static' ); - // some extensions don't define their dependencies well, this patch is only needed for a few - FileSystem::replaceFileRegex( - $this->source_dir . '/Makefile', - '/^(.*_SHARED_LIBADD\s*=.*)$/m', - '$1 ' . trim($staticLibs) - ); - if ($this->patchBeforeSharedMake()) { logger()->info("Extension [{$this->getName()}] patched before shared make"); }