feat: declare tool dependencies in package configs via tools field

- Add 'tools' field to ConfigValidator for build-time tool declarations
- Move jom and strawberry-perl from depends@windows to tools@windows in openssl.yml
- Move go-xcaddy/go-win from depends to tools in frankenphp.yml
- Register config/pkg/tool/ path in spc.registry.yml
- Use addInstallPackage for upx tool in php.php (ToolPackage instead of library dep)
- Include 'tool' type in DumpCapabilitiesCommand and InstallPackageCommand package lists
This commit is contained in:
crazywhalecc
2026-07-06 15:10:22 +08:00
parent 1bdbdfc08c
commit dd1e70a394
7 changed files with 22 additions and 8 deletions

View File

@@ -255,9 +255,11 @@ class php extends TargetPackage
$installer->addBuildPackage('php-embed');
}
// UPX compression: ensure the upx binary package is installed when requested
// UPX compression: ensure the upx tool package is installed when requested.
// upx is a ToolPackage now, so it's installed directly rather than added as a
// library dependency (tool packages bypass the DependencyResolver graph).
if ($package->getBuildOption('with-upx-pack')) {
$additional_packages[] = 'upx';
$installer->addInstallPackage('upx');
}
return [...$extensions_pkg, ...$additional_packages];