Move cc module installation into Soong
Move cc module installation rules into Soong by overriding InstallBypassMake. Update the locations that find host tools to look in the Make installation directory instead of the Soong installation directory, which will no longer be used. The methods that find host tools are also used on go binaries, so update the config methods that tell Blueprint where to install go binaries to the Make installation directory too. Bug: 204136549 Test: m checkbuild Change-Id: Id172592c195e506102982a4af0084f6d9c68a896
This commit is contained in:
@@ -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 {
|
||||
return filepath.Join(c.soongOutDir, "host", c.PrebuiltOS(), "bin")
|
||||
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
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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())
|
||||
}
|
||||
|
@@ -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())
|
||||
|
2
cc/cc.go
2
cc/cc.go
@@ -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
|
||||
|
@@ -786,7 +786,11 @@ func (c *configImpl) PrebuiltOS() string {
|
||||
}
|
||||
|
||||
func (c *configImpl) HostToolDir() string {
|
||||
return filepath.Join(c.SoongOutDir(), "host", c.PrebuiltOS(), "bin")
|
||||
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 {
|
||||
|
Reference in New Issue
Block a user