Refactor package resolution to filter only available build artifacts

This commit is contained in:
crazywhalecc
2026-04-06 13:15:25 +08:00
parent f8d24e2b3a
commit 85b9f5e055
2 changed files with 15 additions and 15 deletions

View File

@@ -233,7 +233,7 @@ class UnixCMakeExecutor extends Executor
if ($this->package instanceof TargetPackage) {
$resolvedNames = array_keys($this->installer->getResolvedPackages());
$resolvedNames[] = $this->package->getName();
$fwFlags = SPCConfigUtil::getFrameworksString($resolvedNames);
$fwFlags = new SPCConfigUtil()->getFrameworksString($resolvedNames);
if ($fwFlags !== '') {
$exeLinkerFlags .= " {$fwFlags}";
}

View File

@@ -285,6 +285,20 @@ class SPCConfigUtil
];
}
public function getFrameworksString(array $extensions): string
{
$list = [];
foreach ($extensions as $extension) {
foreach (PackageConfig::get($extension, 'frameworks', []) as $fw) {
$ks = '-framework ' . $fw;
if (!in_array($ks, $list)) {
$list[] = $ks;
}
}
}
return implode(' ', $list);
}
private function hasCpp(array $packages): bool
{
foreach ($packages as $package) {
@@ -492,18 +506,4 @@ class SPCConfigUtil
}
return $lib;
}
private function getFrameworksString(array $extensions): string
{
$list = [];
foreach ($extensions as $extension) {
foreach (PackageConfig::get($extension, 'frameworks', []) as $fw) {
$ks = '-framework ' . $fw;
if (!in_array($ks, $list)) {
$list[] = $ks;
}
}
}
return implode(' ', $list);
}
}