File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -304,9 +304,11 @@ public function isPackageResolved(string $package_name): bool
304304 }
305305
306306 /**
307- * Get resolved package names whose build artifacts contribute to the PHP main link.
308- * Excludes libraries not yet built (so SPCConfigUtil doesn't probe their .a files) and
309- * shared-only extensions (they link separately into their own .so).
307+ * Get resolved package names filtered to only packages whose build artifacts are available.
308+ * This excludes library packages that haven't been built/installed yet, which naturally
309+ * prevents SPCConfigUtil from checking static-lib files of libraries that come after
310+ * the current target in the build order (e.g. 'watcher' for frankenphp isn't built
311+ * when 'php' is being compiled).
310312 *
311313 * @return string[] Available resolved package names
312314 */
@@ -316,12 +318,12 @@ public function getAvailableResolvedPackageNames(): array
316318 array_keys ($ this ->packages ),
317319 function (string $ name ): bool {
318320 $ pkg = $ this ->packages [$ name ] ?? null ;
321+ // Exclude library packages whose build artifacts don't exist yet.
322+ // Extensions and targets are not filtered — extensions are compiled into PHP
323+ // and don't have standalone build artifacts.
319324 if ($ pkg instanceof LibraryPackage && $ pkg ->getType () === 'library ' && !$ pkg ->isInstalled ()) {
320325 return false ;
321326 }
322- if ($ pkg instanceof PhpExtensionPackage && $ pkg ->isBuildShared () && !$ pkg ->isBuildStatic ()) {
323- return false ;
324- }
325327 return true ;
326328 }
327329 ));
You can’t perform that action at this time.
0 commit comments