Loading java/java.go +10 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -2351,6 +2357,7 @@ type Import struct { combinedClasspathFile android.Path exportedSdkLibs []string exportAidlIncludeDirs android.Paths } func (j *Import) sdkVersion() sdkSpec { Loading Loading @@ -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) Loading Loading @@ -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 { Loading java/java_test.go +24 −0 Original line number Diff line number Diff line Loading @@ -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) } } java/testing.go +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
java/java.go +10 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -2351,6 +2357,7 @@ type Import struct { combinedClasspathFile android.Path exportedSdkLibs []string exportAidlIncludeDirs android.Paths } func (j *Import) sdkVersion() sdkSpec { Loading Loading @@ -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) Loading Loading @@ -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 { Loading
java/java_test.go +24 −0 Original line number Diff line number Diff line Loading @@ -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) } }
java/testing.go +2 −0 Original line number Diff line number Diff line Loading @@ -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