From 9f52f6ba604b51a8e51e3681c51c161432a00083 Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Fri, 6 Oct 2023 16:47:00 -0400 Subject: [PATCH] Change openjdk9 specific props in bp2build/Soong JDK17 is the default java version, adding these props conditionally openjdk9 is no longer relevant Test: CI Change-Id: I5d80fd22f474cedf389d1e295620cfc17bc327a0 --- bp2build/java_library_conversion_test.go | 39 ++++++++++++++++++++++++ java/base.go | 8 +++++ java/java.go | 14 ++++++--- 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/bp2build/java_library_conversion_test.go b/bp2build/java_library_conversion_test.go index 9cb9443cc..2e205b16c 100644 --- a/bp2build/java_library_conversion_test.go +++ b/bp2build/java_library_conversion_test.go @@ -192,6 +192,45 @@ func TestJavaLibraryJavaVersion(t *testing.T) { }) } +func TestJavaLibraryOpenjdk9(t *testing.T) { + runJavaLibraryTestCase(t, Bp2buildTestCase{ + Blueprint: `java_library { + name: "java-lib-1", + srcs: ["a.java"], + exclude_srcs: ["b.java"], + javacflags: ["flag"], + target: { + android: { + srcs: ["android.java"], + }, + }, + openjdk9: { + srcs: ["b.java", "foo.java"], + javacflags: ["extraflag"], + }, + sdk_version: "current", +}`, + ExpectedBazelTargets: []string{ + MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{ + "srcs": `[ + "a.java", + "foo.java", + ] + select({ + "//build/bazel_common_rules/platforms/os:android": ["android.java"], + "//conditions:default": [], + })`, + "sdk_version": `"current"`, + "javacopts": `[ + "flag", + "extraflag", + ]`, + }), + MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"), + }, + }) + +} + func TestJavaLibraryErrorproneEnabledManually(t *testing.T) { runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{ StubbedBuildDefinitions: []string{"plugin2"}, diff --git a/java/base.go b/java/base.go index 03198b550..53f22a7c0 100644 --- a/java/base.go +++ b/java/base.go @@ -1024,7 +1024,12 @@ func (j *Module) collectJavacFlags( if flags.javaVersion.usesJavaModules() { javacFlags = append(javacFlags, j.properties.Openjdk9.Javacflags...) + } else if len(j.properties.Openjdk9.Javacflags) > 0 { + // java version defaults higher than openjdk 9, these conditionals should no longer be necessary + ctx.PropertyErrorf("openjdk9.javacflags", "JDK version defaults to higher than 9") + } + if flags.javaVersion.usesJavaModules() { if j.properties.Patch_module != nil { // Manually specify build directory in case it is not under the repo root. // (javac doesn't seem to expand into symbolic links when searching for patch-module targets, so @@ -1101,6 +1106,9 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath if flags.javaVersion.usesJavaModules() { j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk9.Srcs...) + } else if len(j.properties.Openjdk9.Javacflags) > 0 { + // java version defaults higher than openjdk 9, these conditionals should no longer be necessary + ctx.PropertyErrorf("openjdk9.srcs", "JDK version defaults to higher than 9") } srcFiles := android.PathsForModuleSrcExcludes(ctx, j.properties.Srcs, j.properties.Exclude_srcs) diff --git a/java/java.go b/java/java.go index 35fd7c2b8..a4e4b50ac 100644 --- a/java/java.go +++ b/java/java.go @@ -2935,8 +2935,8 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.Bp2buildMutatorContext archVariantProps := m.GetArchVariantProperties(ctx, &CommonProperties{}) for axis, configToProps := range archVariantProps { - for config, _props := range configToProps { - if archProps, ok := _props.(*CommonProperties); ok { + for config, p := range configToProps { + if archProps, ok := p.(*CommonProperties); ok { archSrcs := android.BazelLabelForModuleSrcExcludes(ctx, archProps.Srcs, archProps.Exclude_srcs) srcs.SetSelectValue(axis, config, archSrcs) if archProps.Jarjar_rules != nil { @@ -2946,6 +2946,11 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.Bp2buildMutatorContext } } } + srcs.Append( + bazel.MakeLabelListAttribute( + android.BazelLabelForModuleSrcExcludes(ctx, + m.properties.Openjdk9.Srcs, + m.properties.Exclude_srcs))) srcs.ResolveExcludes() javaSrcPartition := "java" @@ -3029,8 +3034,9 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.Bp2buildMutatorContext plugins := bazel.MakeLabelListAttribute( android.BazelLabelForModuleDeps(ctx, m.properties.Plugins), ) - if m.properties.Javacflags != nil { - javacopts = bazel.MakeStringListAttribute(m.properties.Javacflags) + if m.properties.Javacflags != nil || m.properties.Openjdk9.Javacflags != nil { + javacopts = bazel.MakeStringListAttribute( + append(append([]string{}, m.properties.Javacflags...), m.properties.Openjdk9.Javacflags...)) } epEnabled := m.properties.Errorprone.Enabled