Merge "Bp2Build for libs property in java_library"
This commit is contained in:
@@ -53,11 +53,13 @@ java_library {
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
"srcs": `["a.java"]`,
|
||||
"deps": `[":java-lib-2"]`,
|
||||
"deps": `[":java-lib-2-neverlink"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
MakeBazelTarget("java_library", "java-lib-2", AttrNameToString{
|
||||
"srcs": `["b.java"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-2"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -87,11 +89,12 @@ java_library {
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
"srcs": `["a.java"]`,
|
||||
"deps": `[
|
||||
":java-lib-2",
|
||||
":java-lib-2-neverlink",
|
||||
":java-lib-3",
|
||||
]`,
|
||||
"exports": `[":java-lib-3"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -113,6 +116,7 @@ java_library {
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
"exports": `[":java-lib-2"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -152,6 +156,7 @@ java_plugin {
|
||||
MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{
|
||||
"plugins": `[":java-plugin-1"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
}, func(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("java_plugin", java.PluginFactory)
|
||||
@@ -170,6 +175,7 @@ func TestJavaLibraryJavaVersion(t *testing.T) {
|
||||
"srcs": `["a.java"]`,
|
||||
"javacopts": `["-source 11 -target 11"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -193,6 +199,7 @@ func TestJavaLibraryErrorproneJavacflagsEnabledManually(t *testing.T) {
|
||||
]`,
|
||||
"srcs": `["a.java"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -212,6 +219,7 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledByDefault(t *testing.T
|
||||
"javacopts": `["-Xsuper-fast"]`,
|
||||
"srcs": `["a.java"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -232,6 +240,7 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T)
|
||||
"javacopts": `["-Xsuper-fast"]`,
|
||||
"srcs": `["a.java"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -265,6 +274,7 @@ func TestJavaLibraryLogTags(t *testing.T) {
|
||||
":example_lib_logtags",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "example_lib"),
|
||||
}})
|
||||
}
|
||||
|
||||
@@ -286,6 +296,7 @@ func TestJavaLibraryResources(t *testing.T) {
|
||||
"res/b.res",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -310,6 +321,7 @@ func TestJavaLibraryResourceDirs(t *testing.T) {
|
||||
"res/dir1/b.res",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -330,6 +342,7 @@ func TestJavaLibraryResourcesExcludeDir(t *testing.T) {
|
||||
"resource_strip_prefix": `"res"`,
|
||||
"resources": `["res/a.res"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -354,6 +367,7 @@ func TestJavaLibraryResourcesExcludeFile(t *testing.T) {
|
||||
"res/dir1/b.res",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -406,6 +420,7 @@ func TestJavaLibraryAidl(t *testing.T) {
|
||||
"b.java",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "example_lib"),
|
||||
}})
|
||||
}
|
||||
|
||||
@@ -435,6 +450,7 @@ java_library {
|
||||
"exports": `[":example_lib_java_aidl_library"]`,
|
||||
"srcs": `["a.java"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "example_lib"),
|
||||
},
|
||||
}, func(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
@@ -490,6 +506,7 @@ java_library {
|
||||
":random_other_files",
|
||||
]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "example_lib"),
|
||||
MakeBazelTargetNoRestrictions("filegroup", "random_other_files", AttrNameToString{
|
||||
"srcs": `[
|
||||
"a.java",
|
||||
@@ -529,6 +546,7 @@ java_library {
|
||||
MakeBazelTarget("java_library", "foo", AttrNameToString{
|
||||
"exports": `[":foo_java_aidl_library"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "foo"),
|
||||
},
|
||||
}, func(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
|
@@ -48,7 +48,15 @@ java_library_host {
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("java_library", "java-lib-host-1", AttrNameToString{
|
||||
"srcs": `["a.java"]`,
|
||||
"deps": `[":java-lib-host-2"]`,
|
||||
"deps": `[":java-lib-host-2-neverlink"]`,
|
||||
"target_compatible_with": `select({
|
||||
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
}),
|
||||
MakeBazelTarget("java_library", "java-lib-host-1-neverlink", AttrNameToString{
|
||||
"exports": `[":java-lib-host-1"]`,
|
||||
"neverlink": `True`,
|
||||
"target_compatible_with": `select({
|
||||
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
@@ -60,6 +68,14 @@ java_library_host {
|
||||
"target_compatible_with": `select({
|
||||
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
}),
|
||||
MakeBazelTarget("java_library", "java-lib-host-2-neverlink", AttrNameToString{
|
||||
"exports": `[":java-lib-host-2"]`,
|
||||
"neverlink": `True`,
|
||||
"target_compatible_with": `select({
|
||||
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
}),
|
||||
},
|
||||
|
@@ -91,6 +91,7 @@ func TestJavaProto(t *testing.T) {
|
||||
MakeBazelTarget("java_library", "java-protos", AttrNameToString{
|
||||
"exports": fmt.Sprintf(`[":%s"]`, javaLibraryName),
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-protos"),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -119,6 +120,7 @@ func TestJavaProtoDefault(t *testing.T) {
|
||||
"exports": `[":java-protos_java_proto_lite"]`,
|
||||
"javacopts": `["-source 1.7 -target 1.7"]`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTarget("java_library", "java-protos"),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@@ -532,3 +532,10 @@ func makeCcStubSuiteTargets(name string, attrs AttrNameToString) string {
|
||||
}
|
||||
return MakeBazelTarget("cc_stub_suite", name+"_stub_libs", stubSuiteAttrs)
|
||||
}
|
||||
|
||||
func MakeNeverlinkDuplicateTarget(moduleType string, name string) string {
|
||||
return MakeBazelTarget(moduleType, name+"-neverlink", AttrNameToString{
|
||||
"neverlink": `True`,
|
||||
"exports": `[":` + name + `"]`,
|
||||
})
|
||||
}
|
||||
|
15
java/java.go
15
java/java.go
@@ -2622,7 +2622,7 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext)
|
||||
if m.properties.Libs != nil {
|
||||
|
||||
// TODO 244210934 ALIX Check if this else statement breaks presubmits get rid of it if it doesn't
|
||||
if strings.HasPrefix(ctx.ModuleType(), "java_binary") {
|
||||
if strings.HasPrefix(ctx.ModuleType(), "java_binary") || strings.HasPrefix(ctx.ModuleType(), "java_library") {
|
||||
for _, d := range m.properties.Libs {
|
||||
neverlinkLabel := android.BazelLabelForModuleDepSingle(ctx, d)
|
||||
neverlinkLabel.Label = neverlinkLabel.Label + "-neverlink"
|
||||
@@ -2690,12 +2690,21 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) {
|
||||
Deps: deps,
|
||||
Exports: depLabels.StaticDeps,
|
||||
}
|
||||
name := m.Name()
|
||||
|
||||
if !bp2BuildInfo.hasKotlinSrcs && len(m.properties.Common_srcs) == 0 {
|
||||
props = bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "java_library",
|
||||
Bzl_load_location: "//build/bazel/rules/java:library.bzl",
|
||||
}
|
||||
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
|
||||
neverlinkProp := true
|
||||
neverLinkAttrs := &javaLibraryAttributes{
|
||||
Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + name}),
|
||||
Neverlink: bazel.BoolAttribute{Value: &neverlinkProp},
|
||||
}
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name + "-neverlink"}, neverLinkAttrs)
|
||||
} else {
|
||||
attrs.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, m.properties.Common_srcs))
|
||||
|
||||
@@ -2703,10 +2712,10 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) {
|
||||
Rule_class: "kt_jvm_library",
|
||||
Bzl_load_location: "@rules_kotlin//kotlin:jvm_library.bzl",
|
||||
}
|
||||
// TODO (b/244210934): create neverlink-duplicate target once kt_jvm_library supports neverlink attribute
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
|
||||
}
|
||||
|
||||
name := m.Name()
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
|
||||
}
|
||||
|
||||
type javaBinaryHostAttributes struct {
|
||||
|
Reference in New Issue
Block a user