apex respects stem of java_library modules
apex now respects stem of java_library modules.
As a follow-up we need to suppor the same for other types of modules.
Exempt-From-Owner-Approval: cherry-pick from AOSP
Bug: 157638999
Test: m
Merged-In: Iaf5023020b5440f1ffd4f5414b5a7864655fc22a
(cherry picked from commit a62aa23990
)
Change-Id: Iaf5023020b5440f1ffd4f5414b5a7864655fc22a
This commit is contained in:
parent
9e0264c379
commit
ed50ca8dd8
19
apex/apex.go
19
apex/apex.go
|
@ -1179,6 +1179,7 @@ func (class apexFileClass) NameInMake() string {
|
||||||
// apexFile represents a file in an APEX bundle
|
// apexFile represents a file in an APEX bundle
|
||||||
type apexFile struct {
|
type apexFile struct {
|
||||||
builtFile android.Path
|
builtFile android.Path
|
||||||
|
stem string
|
||||||
moduleName string
|
moduleName string
|
||||||
installDir string
|
installDir string
|
||||||
class apexFileClass
|
class apexFileClass
|
||||||
|
@ -1218,9 +1219,17 @@ func (af *apexFile) Ok() bool {
|
||||||
return af.builtFile != nil && af.builtFile.String() != ""
|
return af.builtFile != nil && af.builtFile.String() != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (af *apexFile) apexRelativePath(path string) string {
|
||||||
|
return filepath.Join(af.installDir, path)
|
||||||
|
}
|
||||||
|
|
||||||
// Path() returns path of this apex file relative to the APEX root
|
// Path() returns path of this apex file relative to the APEX root
|
||||||
func (af *apexFile) Path() string {
|
func (af *apexFile) Path() string {
|
||||||
return filepath.Join(af.installDir, af.builtFile.Base())
|
stem := af.builtFile.Base()
|
||||||
|
if af.stem != "" {
|
||||||
|
stem = af.stem
|
||||||
|
}
|
||||||
|
return af.apexRelativePath(stem)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SymlinkPaths() returns paths of the symlinks (if any) relative to the APEX root
|
// SymlinkPaths() returns paths of the symlinks (if any) relative to the APEX root
|
||||||
|
@ -1660,11 +1669,17 @@ func apexFileForShBinary(ctx android.BaseModuleContext, sh *android.ShBinary) ap
|
||||||
return af
|
return af
|
||||||
}
|
}
|
||||||
|
|
||||||
func apexFileForJavaLibrary(ctx android.BaseModuleContext, lib java.Dependency, module android.Module) apexFile {
|
type javaDependency interface {
|
||||||
|
java.Dependency
|
||||||
|
Stem() string
|
||||||
|
}
|
||||||
|
|
||||||
|
func apexFileForJavaLibrary(ctx android.BaseModuleContext, lib javaDependency, module android.Module) apexFile {
|
||||||
dirInApex := "javalib"
|
dirInApex := "javalib"
|
||||||
fileToCopy := lib.DexJar()
|
fileToCopy := lib.DexJar()
|
||||||
af := newApexFile(ctx, fileToCopy, module.Name(), dirInApex, javaSharedLib, module)
|
af := newApexFile(ctx, fileToCopy, module.Name(), dirInApex, javaSharedLib, module)
|
||||||
af.jacocoReportClassesFile = lib.JacocoReportClassesFile()
|
af.jacocoReportClassesFile = lib.JacocoReportClassesFile()
|
||||||
|
af.stem = lib.Stem() + ".jar"
|
||||||
return af
|
return af
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -386,6 +386,7 @@ func TestBasicApex(t *testing.T) {
|
||||||
java_library {
|
java_library {
|
||||||
name: "myjar",
|
name: "myjar",
|
||||||
srcs: ["foo/bar/MyClass.java"],
|
srcs: ["foo/bar/MyClass.java"],
|
||||||
|
stem: "myjar_stem",
|
||||||
sdk_version: "none",
|
sdk_version: "none",
|
||||||
system_modules: "none",
|
system_modules: "none",
|
||||||
static_libs: ["myotherjar"],
|
static_libs: ["myotherjar"],
|
||||||
|
@ -440,7 +441,7 @@ func TestBasicApex(t *testing.T) {
|
||||||
// Ensure that both direct and indirect deps are copied into apex
|
// Ensure that both direct and indirect deps are copied into apex
|
||||||
ensureContains(t, copyCmds, "image.apex/lib64/mylib.so")
|
ensureContains(t, copyCmds, "image.apex/lib64/mylib.so")
|
||||||
ensureContains(t, copyCmds, "image.apex/lib64/mylib2.so")
|
ensureContains(t, copyCmds, "image.apex/lib64/mylib2.so")
|
||||||
ensureContains(t, copyCmds, "image.apex/javalib/myjar.jar")
|
ensureContains(t, copyCmds, "image.apex/javalib/myjar_stem.jar")
|
||||||
// .. but not for java libs
|
// .. but not for java libs
|
||||||
ensureNotContains(t, copyCmds, "image.apex/javalib/myotherjar.jar")
|
ensureNotContains(t, copyCmds, "image.apex/javalib/myotherjar.jar")
|
||||||
ensureNotContains(t, copyCmds, "image.apex/javalib/msharedjar.jar")
|
ensureNotContains(t, copyCmds, "image.apex/javalib/msharedjar.jar")
|
||||||
|
|
|
@ -1880,7 +1880,7 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
extraInstallDeps = j.InstallMixin(ctx, j.outputFile)
|
extraInstallDeps = j.InstallMixin(ctx, j.outputFile)
|
||||||
}
|
}
|
||||||
j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
||||||
ctx.ModuleName()+".jar", j.outputFile, extraInstallDeps...)
|
j.Stem()+".jar", j.outputFile, extraInstallDeps...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify Dist.Tag is set to a supported output
|
// Verify Dist.Tag is set to a supported output
|
||||||
|
@ -2721,7 +2721,7 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
j.maybeStrippedDexJarFile = dexOutputFile
|
j.maybeStrippedDexJarFile = dexOutputFile
|
||||||
|
|
||||||
ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
||||||
ctx.ModuleName()+".jar", dexOutputFile)
|
j.Stem()+".jar", dexOutputFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *DexImport) DexJar() android.Path {
|
func (j *DexImport) DexJar() android.Path {
|
||||||
|
|
Loading…
Reference in New Issue