Merge changes from topic "soong-cc-install"
* changes: Move cc module installation into Soong Temporarily add method to get java binary tool
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
|
||||
}
|
||||
|
||||
@@ -585,6 +595,11 @@ func (c *config) HostJavaToolPath(ctx PathContext, path string) Path {
|
||||
return PathForOutput(ctx, "host", c.PrebuiltOS(), "framework", path)
|
||||
}
|
||||
|
||||
func (c *config) HostJavaBinToolPath(ctx PathContext, tool string) Path {
|
||||
path := pathForInstall(ctx, ctx.Config().BuildOS, ctx.Config().BuildArch, "bin", false, tool)
|
||||
return path
|
||||
}
|
||||
|
||||
// PrebuiltOS returns the name of the host OS used in prebuilts directories.
|
||||
func (c *config) PrebuiltOS() string {
|
||||
switch runtime.GOOS {
|
||||
|
@@ -177,6 +177,16 @@ func (p PackageContext) HostBinToolVariable(name, path string) blueprint.Variabl
|
||||
})
|
||||
}
|
||||
|
||||
// HostJavaBinToolVariable returns a Variable whose value is the path to a host java tool
|
||||
// in the bin directory for host java targets. It may only be called during a Go
|
||||
// package's initialization - either from the init() function or as part of a
|
||||
// package-scoped variable's initialization.
|
||||
func (p PackageContext) HostJavaBinToolVariable(name, path string) blueprint.Variable {
|
||||
return p.VariableFunc(name, func(ctx PackageVarContext) string {
|
||||
return ctx.Config().HostJavaBinToolPath(ctx, path).String()
|
||||
})
|
||||
}
|
||||
|
||||
// HostJNIToolVariable returns a Variable whose value is the path to a host tool
|
||||
// in the lib directory for host targets. It may only be called during a Go
|
||||
// package's initialization - either from the init() function or as part of a
|
||||
|
@@ -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
|
||||
|
@@ -124,8 +124,8 @@ func init() {
|
||||
pctx.HostBinToolVariable("Zip2ZipCmd", "zip2zip")
|
||||
pctx.HostBinToolVariable("ZipSyncCmd", "zipsync")
|
||||
pctx.HostBinToolVariable("ApiCheckCmd", "apicheck")
|
||||
pctx.HostBinToolVariable("D8Cmd", "d8")
|
||||
pctx.HostBinToolVariable("R8Cmd", "r8-compat-proguard")
|
||||
pctx.HostJavaBinToolVariable("D8Cmd", "d8")
|
||||
pctx.HostJavaBinToolVariable("R8Cmd", "r8-compat-proguard")
|
||||
pctx.HostBinToolVariable("HiddenAPICmd", "hiddenapi")
|
||||
pctx.HostBinToolVariable("ExtractApksCmd", "extract_apks")
|
||||
pctx.VariableFunc("TurbineJar", func(ctx android.PackageVarContext) string {
|
||||
|
@@ -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