Change deps of ctx.Install* from Paths to InstallPaths

Installed files should only depend on other installed files, change
the deps arguments of the ctx.Install* methods from Paths to
InstallPaths.

Bug: 311428265
Test: builds
Change-Id: I1ebef60a943bdbe907744cc43aa985371ac56d32
Merged-In: I1ebef60a943bdbe907744cc43aa985371ac56d32
This commit is contained in:
Colin Cross
2023-11-15 12:29:33 -08:00
parent 4b9d9350bd
commit 09ad3a6505
8 changed files with 19 additions and 19 deletions

View File

@@ -114,7 +114,7 @@ type ModuleContext interface {
// installed file will be returned by PackagingSpecs() on this module or by // installed file will be returned by PackagingSpecs() on this module or by
// TransitivePackagingSpecs() on modules that depend on this module through dependency tags // TransitivePackagingSpecs() on modules that depend on this module through dependency tags
// for which IsInstallDepNeeded returns true. // for which IsInstallDepNeeded returns true.
InstallExecutable(installPath InstallPath, name string, srcPath Path, deps ...Path) InstallPath InstallExecutable(installPath InstallPath, name string, srcPath Path, deps ...InstallPath) InstallPath
// InstallFile creates a rule to copy srcPath to name in the installPath directory, // InstallFile creates a rule to copy srcPath to name in the installPath directory,
// with the given additional dependencies. // with the given additional dependencies.
@@ -123,7 +123,7 @@ type ModuleContext interface {
// installed file will be returned by PackagingSpecs() on this module or by // installed file will be returned by PackagingSpecs() on this module or by
// TransitivePackagingSpecs() on modules that depend on this module through dependency tags // TransitivePackagingSpecs() on modules that depend on this module through dependency tags
// for which IsInstallDepNeeded returns true. // for which IsInstallDepNeeded returns true.
InstallFile(installPath InstallPath, name string, srcPath Path, deps ...Path) InstallPath InstallFile(installPath InstallPath, name string, srcPath Path, deps ...InstallPath) InstallPath
// InstallFileWithExtraFilesZip creates a rule to copy srcPath to name in the installPath // InstallFileWithExtraFilesZip creates a rule to copy srcPath to name in the installPath
// directory, and also unzip a zip file containing extra files to install into the same // directory, and also unzip a zip file containing extra files to install into the same
@@ -133,7 +133,7 @@ type ModuleContext interface {
// installed file will be returned by PackagingSpecs() on this module or by // installed file will be returned by PackagingSpecs() on this module or by
// TransitivePackagingSpecs() on modules that depend on this module through dependency tags // TransitivePackagingSpecs() on modules that depend on this module through dependency tags
// for which IsInstallDepNeeded returns true. // for which IsInstallDepNeeded returns true.
InstallFileWithExtraFilesZip(installPath InstallPath, name string, srcPath Path, extraZip Path, deps ...Path) InstallPath InstallFileWithExtraFilesZip(installPath InstallPath, name string, srcPath Path, extraZip Path, deps ...InstallPath) InstallPath
// InstallSymlink creates a rule to create a symlink from src srcPath to name in the installPath // InstallSymlink creates a rule to create a symlink from src srcPath to name in the installPath
// directory. // directory.
@@ -451,17 +451,17 @@ func (m *moduleContext) skipInstall() bool {
} }
func (m *moduleContext) InstallFile(installPath InstallPath, name string, srcPath Path, func (m *moduleContext) InstallFile(installPath InstallPath, name string, srcPath Path,
deps ...Path) InstallPath { deps ...InstallPath) InstallPath {
return m.installFile(installPath, name, srcPath, deps, false, nil) return m.installFile(installPath, name, srcPath, deps, false, nil)
} }
func (m *moduleContext) InstallExecutable(installPath InstallPath, name string, srcPath Path, func (m *moduleContext) InstallExecutable(installPath InstallPath, name string, srcPath Path,
deps ...Path) InstallPath { deps ...InstallPath) InstallPath {
return m.installFile(installPath, name, srcPath, deps, true, nil) return m.installFile(installPath, name, srcPath, deps, true, nil)
} }
func (m *moduleContext) InstallFileWithExtraFilesZip(installPath InstallPath, name string, srcPath Path, func (m *moduleContext) InstallFileWithExtraFilesZip(installPath InstallPath, name string, srcPath Path,
extraZip Path, deps ...Path) InstallPath { extraZip Path, deps ...InstallPath) InstallPath {
return m.installFile(installPath, name, srcPath, deps, false, &extraFilesZip{ return m.installFile(installPath, name, srcPath, deps, false, &extraFilesZip{
zip: extraZip, zip: extraZip,
dir: installPath, dir: installPath,
@@ -487,23 +487,23 @@ func (m *moduleContext) packageFile(fullInstallPath InstallPath, srcPath Path, e
return spec return spec
} }
func (m *moduleContext) installFile(installPath InstallPath, name string, srcPath Path, deps []Path, func (m *moduleContext) installFile(installPath InstallPath, name string, srcPath Path, deps []InstallPath,
executable bool, extraZip *extraFilesZip) InstallPath { executable bool, extraZip *extraFilesZip) InstallPath {
fullInstallPath := installPath.Join(m, name) fullInstallPath := installPath.Join(m, name)
m.module.base().hooks.runInstallHooks(m, srcPath, fullInstallPath, false) m.module.base().hooks.runInstallHooks(m, srcPath, fullInstallPath, false)
if !m.skipInstall() { if !m.skipInstall() {
deps = append(deps, InstallPaths(m.module.base().installFilesDepSet.ToList()).Paths()...) deps = append(deps, InstallPaths(m.module.base().installFilesDepSet.ToList())...)
var implicitDeps, orderOnlyDeps Paths var implicitDeps, orderOnlyDeps Paths
if m.Host() { if m.Host() {
// Installed host modules might be used during the build, depend directly on their // Installed host modules might be used during the build, depend directly on their
// dependencies so their timestamp is updated whenever their dependency is updated // dependencies so their timestamp is updated whenever their dependency is updated
implicitDeps = deps implicitDeps = InstallPaths(deps).Paths()
} else { } else {
orderOnlyDeps = deps orderOnlyDeps = InstallPaths(deps).Paths()
} }
if m.Config().KatiEnabled() { if m.Config().KatiEnabled() {

View File

@@ -1890,7 +1890,7 @@ func (a *apexBundle) ProcessBazelQueryResponse(ctx android.ModuleContext) {
installSuffix = imageCapexSuffix installSuffix = imageCapexSuffix
} }
a.installedFile = ctx.InstallFile(a.installDir, a.Name()+installSuffix, a.outputFile, a.installedFile = ctx.InstallFile(a.installDir, a.Name()+installSuffix, a.outputFile,
a.compatSymlinks.Paths()...) a.compatSymlinks...)
// filesInfo in mixed mode must retrieve all information about the apex's // filesInfo in mixed mode must retrieve all information about the apex's
// contents completely from the Starlark providers. It should never rely on // contents completely from the Starlark providers. It should never rely on

View File

@@ -956,7 +956,7 @@ func (a *apexBundle) buildApex(ctx android.ModuleContext) {
// Install to $OUT/soong/{target,host}/.../apex. // Install to $OUT/soong/{target,host}/.../apex.
a.installedFile = ctx.InstallFile(a.installDir, a.Name()+installSuffix, a.outputFile, a.installedFile = ctx.InstallFile(a.installDir, a.Name()+installSuffix, a.outputFile,
a.compatSymlinks.Paths()...) a.compatSymlinks...)
// installed-files.txt is dist'ed // installed-files.txt is dist'ed
a.installedFilesFile = a.buildInstalledFilesFile(ctx, a.outputFile, imageDir) a.installedFilesFile = a.buildInstalledFilesFile(ctx, a.outputFile, imageDir)

View File

@@ -794,7 +794,7 @@ func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
} }
if p.installable() { if p.installable() {
p.installedFile = ctx.InstallFile(p.installDir, p.installFilename, p.inputApex, p.compatSymlinks.Paths()...) p.installedFile = ctx.InstallFile(p.installDir, p.installFilename, p.inputApex, p.compatSymlinks...)
p.provenanceMetaDataFile = provenance.GenerateArtifactProvenanceMetaData(ctx, p.inputApex, p.installedFile) p.provenanceMetaDataFile = provenance.GenerateArtifactProvenanceMetaData(ctx, p.inputApex, p.installedFile)
} }
} }

View File

@@ -869,7 +869,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
ctx.InstallFile(allowlistInstallPath, allowlistInstallFilename, a.privAppAllowlist.Path()) ctx.InstallFile(allowlistInstallPath, allowlistInstallFilename, a.privAppAllowlist.Path())
} }
var extraInstalledPaths android.Paths var extraInstalledPaths android.InstallPaths
for _, extra := range a.extraOutputFiles { for _, extra := range a.extraOutputFiles {
installed := ctx.InstallFile(a.installDir, extra.Base(), extra) installed := ctx.InstallFile(a.installDir, extra.Base(), extra)
extraInstalledPaths = append(extraInstalledPaths, installed) extraInstalledPaths = append(extraInstalledPaths, installed)

View File

@@ -641,7 +641,7 @@ type Library struct {
exportedProguardFlagFiles android.Paths exportedProguardFlagFiles android.Paths
InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.Paths) InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.InstallPaths)
} }
var _ android.ApexModule = (*Library)(nil) var _ android.ApexModule = (*Library)(nil)
@@ -722,7 +722,7 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
exclusivelyForApex := !apexInfo.IsForPlatform() exclusivelyForApex := !apexInfo.IsForPlatform()
if (Bool(j.properties.Installable) || ctx.Host()) && !exclusivelyForApex { if (Bool(j.properties.Installable) || ctx.Host()) && !exclusivelyForApex {
var extraInstallDeps android.Paths var extraInstallDeps android.InstallPaths
if j.InstallMixin != nil { if j.InstallMixin != nil {
extraInstallDeps = j.InstallMixin(ctx, j.outputFile) extraInstallDeps = j.InstallMixin(ctx, j.outputFile)
} }

View File

@@ -226,7 +226,7 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
} }
installPath := android.PathForModuleInstall(ctx, r.BaseModuleName()) installPath := android.PathForModuleInstall(ctx, r.BaseModuleName())
var installDeps android.Paths var installDeps android.InstallPaths
if r.manifest != nil { if r.manifest != nil {
r.data = append(r.data, r.manifest) r.data = append(r.data, r.manifest)

View File

@@ -30,8 +30,8 @@ func tradefedJavaLibraryFactory() android.Module {
return module return module
} }
func tradefedJavaLibraryInstall(ctx android.ModuleContext, path android.Path) android.Paths { func tradefedJavaLibraryInstall(ctx android.ModuleContext, path android.Path) android.InstallPaths {
installedPath := ctx.InstallFile(android.PathForModuleInstall(ctx, "tradefed"), installedPath := ctx.InstallFile(android.PathForModuleInstall(ctx, "tradefed"),
ctx.ModuleName()+".jar", path) ctx.ModuleName()+".jar", path)
return android.Paths{installedPath} return android.InstallPaths{installedPath}
} }