mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-12 03:15:35 +08:00
Refactor package resolution to filter only available build artifacts
This commit is contained in:
@@ -233,7 +233,7 @@ class UnixCMakeExecutor extends Executor
|
|||||||
if ($this->package instanceof TargetPackage) {
|
if ($this->package instanceof TargetPackage) {
|
||||||
$resolvedNames = array_keys($this->installer->getResolvedPackages());
|
$resolvedNames = array_keys($this->installer->getResolvedPackages());
|
||||||
$resolvedNames[] = $this->package->getName();
|
$resolvedNames[] = $this->package->getName();
|
||||||
$fwFlags = SPCConfigUtil::getFrameworksString($resolvedNames);
|
$fwFlags = new SPCConfigUtil()->getFrameworksString($resolvedNames);
|
||||||
if ($fwFlags !== '') {
|
if ($fwFlags !== '') {
|
||||||
$exeLinkerFlags .= " {$fwFlags}";
|
$exeLinkerFlags .= " {$fwFlags}";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
private function hasCpp(array $packages): bool
|
||||||
{
|
{
|
||||||
foreach ($packages as $package) {
|
foreach ($packages as $package) {
|
||||||
@@ -492,18 +506,4 @@ class SPCConfigUtil
|
|||||||
}
|
}
|
||||||
return $lib;
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user