add aidl.export_include_dirs to java_import module type
This allows a java prebuilt to export AIDL files to its clients. Bug: 151933053 Test: m Change-Id: I21b5d5ce647141a7c76f62490adbccb858b10323
This commit is contained in:
parent
b358ebb759
commit
19604de13e
11
java/java.go
11
java/java.go
|
@ -2338,6 +2338,12 @@ type ImportProperties struct {
|
|||
|
||||
// set the name of the output
|
||||
Stem *string
|
||||
|
||||
Aidl struct {
|
||||
// directories that should be added as include directories for any aidl sources of modules
|
||||
// that depend on this module, as well as to aidl for this module.
|
||||
Export_include_dirs []string
|
||||
}
|
||||
}
|
||||
|
||||
type Import struct {
|
||||
|
@ -2351,6 +2357,7 @@ type Import struct {
|
|||
|
||||
combinedClasspathFile android.Path
|
||||
exportedSdkLibs []string
|
||||
exportAidlIncludeDirs android.Paths
|
||||
}
|
||||
|
||||
func (j *Import) sdkVersion() sdkSpec {
|
||||
|
@ -2424,6 +2431,8 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
||||
jarName, outputFile)
|
||||
}
|
||||
|
||||
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs)
|
||||
}
|
||||
|
||||
var _ Dependency = (*Import)(nil)
|
||||
|
@ -2458,7 +2467,7 @@ func (j *Import) DexJar() android.Path {
|
|||
}
|
||||
|
||||
func (j *Import) AidlIncludeDirs() android.Paths {
|
||||
return nil
|
||||
return j.exportAidlIncludeDirs
|
||||
}
|
||||
|
||||
func (j *Import) ExportedSdkLibs() []string {
|
||||
|
|
|
@ -1491,3 +1491,27 @@ func checkBootClasspathForSystemModule(t *testing.T, ctx *android.TestContext, m
|
|||
t.Errorf("bootclasspath of %q must start with --system and end with %q, but was %#v.", moduleName, expectedSuffix, bootClasspath)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAidlExportIncludeDirsFromImports(t *testing.T) {
|
||||
ctx, _ := testJava(t, `
|
||||
java_library {
|
||||
name: "foo",
|
||||
srcs: ["aidl/foo/IFoo.aidl"],
|
||||
libs: ["bar"],
|
||||
}
|
||||
|
||||
java_import {
|
||||
name: "bar",
|
||||
jars: ["a.jar"],
|
||||
aidl: {
|
||||
export_include_dirs: ["aidl/bar"],
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
aidlCommand := ctx.ModuleForTests("foo", "android_common").Rule("aidl").RuleParams.Command
|
||||
expectedAidlFlag := "-Iaidl/bar"
|
||||
if !strings.Contains(aidlCommand, expectedAidlFlag) {
|
||||
t.Errorf("aidl command %q does not contain %q", aidlCommand, expectedAidlFlag)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,8 @@ func TestConfig(buildDir string, env map[string]string, bp string, fs map[string
|
|||
"api/test-current.txt": nil,
|
||||
"api/test-removed.txt": nil,
|
||||
"framework/aidl/a.aidl": nil,
|
||||
"aidl/foo/IFoo.aidl": nil,
|
||||
"aidl/bar/IBar.aidl": nil,
|
||||
"assets_a/a": nil,
|
||||
"assets_b/b": nil,
|
||||
|
||||
|
|
Loading…
Reference in New Issue