Merge changes from topic "soong-cc-install" am: fc06a59904

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1869554

Change-Id: I31fb434c67f797af65497a51910adc4acbc07997
This commit is contained in:
Colin Cross
2021-11-05 17:34:44 +00:00
committed by Automerger Merge Worker
6 changed files with 29 additions and 7 deletions

View File

@@ -564,11 +564,18 @@ func (c *config) SetAllowMissingDependencies() {
// BlueprintToolLocation returns the directory containing build system tools
// from Blueprint, like soong_zip and merge_zips.
func (c *config) HostToolDir() string {
if c.KatiEnabled() {
return filepath.Join(c.outDir, "host", c.PrebuiltOS(), "bin")
} else {
return filepath.Join(c.soongOutDir, "host", c.PrebuiltOS(), "bin")
}
}
func (c *config) HostToolPath(ctx PathContext, tool string) Path {
path := pathForInstall(ctx, ctx.Config().BuildOS, ctx.Config().BuildArch, "bin", false, tool)
if ctx.Config().KatiEnabled() {
path = path.ToMakePath()
}
return path
}
@@ -578,6 +585,9 @@ func (c *config) HostJNIToolPath(ctx PathContext, lib string) Path {
ext = ".dylib"
}
path := pathForInstall(ctx, ctx.Config().BuildOS, ctx.Config().BuildArch, "lib64", false, lib+ext)
if ctx.Config().KatiEnabled() {
path = path.ToMakePath()
}
return path
}

View File

@@ -465,6 +465,9 @@ func (p OutputPaths) Strings() []string {
// PathForGoBinary returns the path to the installed location of a bootstrap_go_binary module.
func PathForGoBinary(ctx PathContext, goBinary bootstrap.GoBinaryTool) Path {
goBinaryInstallDir := pathForInstall(ctx, ctx.Config().BuildOS, ctx.Config().BuildArch, "bin", false)
if ctx.Config().KatiEnabled() {
goBinaryInstallDir = goBinaryInstallDir.ToMakePath()
}
rel := Rel(ctx, goBinaryInstallDir.String(), goBinary.InstallPath())
return goBinaryInstallDir.Join(ctx, rel)
}

View File

@@ -839,6 +839,14 @@ func sboxPathForToolRel(ctx BuilderContext, path Path) string {
// The tool is in the Soong output directory, it will be copied to __SBOX_OUT_DIR__/tools/out
return filepath.Join(sboxToolsSubDir, "out", relOutSoong)
}
if ctx.Config().KatiEnabled() {
toolDir = toolDir.ToMakePath()
relOut, isRelOut, _ := maybeRelErr(toolDir.String(), path.String())
if isRelOut {
// The tool is in the Make output directory, it will be copied to __SBOX_OUT_DIR__/tools/out
return filepath.Join(sboxToolsSubDir, "out", relOut)
}
}
// The tool is in the source directory, it will be copied to __SBOX_OUT_DIR__/tools/src
return filepath.Join(sboxToolsSubDir, "src", path.String())
}

View File

@@ -450,11 +450,6 @@ func (installer *baseInstaller) AndroidMkEntries(ctx AndroidMkContext, entries *
if installer.path == (android.InstallPath{}) {
return
}
// Soong installation is only supported for host modules. Have Make
// installation trigger Soong installation.
if ctx.Target().Os.Class == android.Host {
entries.OutputFile = android.OptionalPathForPath(installer.path)
}
entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
path, file := filepath.Split(installer.path.ToMakePath().String())

View File

@@ -1365,6 +1365,8 @@ func (c *Module) InstallInRoot() bool {
return c.installer != nil && c.installer.installInRoot()
}
func (c *Module) InstallBypassMake() bool { return true }
type baseModuleContext struct {
android.BaseModuleContext
moduleContextImpl

View File

@@ -786,7 +786,11 @@ func (c *configImpl) PrebuiltOS() string {
}
func (c *configImpl) HostToolDir() string {
if c.SkipKatiNinja() {
return filepath.Join(c.SoongOutDir(), "host", c.PrebuiltOS(), "bin")
} else {
return filepath.Join(c.OutDir(), "host", c.PrebuiltOS(), "bin")
}
}
func (c *configImpl) NamedGlobFile(name string) string {