Merge "Bp2build converter for java_host_for_device." am: 15807fa7ed
am: e1a37d8189
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2522155 Change-Id: Ie13b276c1ad8e898a368b7bf19c5293687f8d8e8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -132,6 +132,7 @@ var (
|
|||||||
"external/f2fs-tools": Bp2BuildDefaultTrue,
|
"external/f2fs-tools": Bp2BuildDefaultTrue,
|
||||||
"external/flac": Bp2BuildDefaultTrueRecursively,
|
"external/flac": Bp2BuildDefaultTrueRecursively,
|
||||||
"external/fmtlib": Bp2BuildDefaultTrueRecursively,
|
"external/fmtlib": Bp2BuildDefaultTrueRecursively,
|
||||||
|
"external/guava": Bp2BuildDefaultTrueRecursively,
|
||||||
"external/google-benchmark": Bp2BuildDefaultTrueRecursively,
|
"external/google-benchmark": Bp2BuildDefaultTrueRecursively,
|
||||||
"external/googletest": Bp2BuildDefaultTrueRecursively,
|
"external/googletest": Bp2BuildDefaultTrueRecursively,
|
||||||
"external/gwp_asan": Bp2BuildDefaultTrueRecursively,
|
"external/gwp_asan": Bp2BuildDefaultTrueRecursively,
|
||||||
@@ -397,7 +398,6 @@ var (
|
|||||||
"external/bazelbuild-rules_license":/* recursive = */ true,
|
"external/bazelbuild-rules_license":/* recursive = */ true,
|
||||||
"external/bazelbuild-kotlin-rules":/* recursive = */ true,
|
"external/bazelbuild-kotlin-rules":/* recursive = */ true,
|
||||||
"external/bazel-skylib":/* recursive = */ true,
|
"external/bazel-skylib":/* recursive = */ true,
|
||||||
"external/guava":/* recursive = */ true,
|
|
||||||
"external/protobuf":/* recursive = */ false,
|
"external/protobuf":/* recursive = */ false,
|
||||||
"external/python/absl-py":/* recursive = */ true,
|
"external/python/absl-py":/* recursive = */ true,
|
||||||
|
|
||||||
@@ -711,6 +711,8 @@ var (
|
|||||||
|
|
||||||
// allowlisting for kotlinx_coroutines
|
// allowlisting for kotlinx_coroutines
|
||||||
"kotlinx_coroutines",
|
"kotlinx_coroutines",
|
||||||
|
"kotlinx_coroutines-device",
|
||||||
|
"kotlinx_coroutines-host",
|
||||||
"annotations",
|
"annotations",
|
||||||
"kotlinx-coroutines-android-annotation-stubs",
|
"kotlinx-coroutines-android-annotation-stubs",
|
||||||
|
|
||||||
|
@@ -61,6 +61,7 @@ bootstrap_go_package {
|
|||||||
"genrule_conversion_test.go",
|
"genrule_conversion_test.go",
|
||||||
"gensrcs_conversion_test.go",
|
"gensrcs_conversion_test.go",
|
||||||
"java_binary_host_conversion_test.go",
|
"java_binary_host_conversion_test.go",
|
||||||
|
"java_host_for_device_conversion_test.go",
|
||||||
"java_import_conversion_test.go",
|
"java_import_conversion_test.go",
|
||||||
"java_library_conversion_test.go",
|
"java_library_conversion_test.go",
|
||||||
"java_library_host_conversion_test.go",
|
"java_library_host_conversion_test.go",
|
||||||
|
63
bp2build/java_host_for_device_conversion_test.go
Normal file
63
bp2build/java_host_for_device_conversion_test.go
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
// Copyright 2023 Google Inc. All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package bp2build
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"android/soong/android"
|
||||||
|
"android/soong/java"
|
||||||
|
)
|
||||||
|
|
||||||
|
func runJavaHostForDeviceTestCaseWithRegistrationCtxFunc(t *testing.T, tc Bp2buildTestCase, registrationCtxFunc func(ctx android.RegistrationContext)) {
|
||||||
|
t.Helper()
|
||||||
|
(&tc).ModuleTypeUnderTest = "java_host_for_device"
|
||||||
|
(&tc).ModuleTypeUnderTestFactory = java.HostForDeviceFactory
|
||||||
|
RunBp2BuildTestCase(t, registrationCtxFunc, tc)
|
||||||
|
}
|
||||||
|
|
||||||
|
func runJavaHostForDeviceTestCase(t *testing.T, tc Bp2buildTestCase) {
|
||||||
|
t.Helper()
|
||||||
|
runJavaHostForDeviceTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) {
|
||||||
|
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestJavaHostForDevice(t *testing.T) {
|
||||||
|
runJavaHostForDeviceTestCase(t, Bp2buildTestCase{
|
||||||
|
Description: "java_host_for_device test",
|
||||||
|
Blueprint: `java_host_for_device {
|
||||||
|
name: "java-lib-1",
|
||||||
|
libs: ["java-lib-2"],
|
||||||
|
bazel_module: { bp2build_available: true },
|
||||||
|
}
|
||||||
|
|
||||||
|
java_library {
|
||||||
|
name: "java-lib-2",
|
||||||
|
srcs: ["b.java"],
|
||||||
|
bazel_module: { bp2build_available: true },
|
||||||
|
}`,
|
||||||
|
ExpectedBazelTargets: []string{
|
||||||
|
MakeBazelTarget("java_host_for_device", "java-lib-1", AttrNameToString{
|
||||||
|
"deps": `[":java-lib-2"]`,
|
||||||
|
}),
|
||||||
|
MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"),
|
||||||
|
MakeBazelTarget("java_library", "java-lib-2", AttrNameToString{
|
||||||
|
"srcs": `["b.java"]`,
|
||||||
|
}),
|
||||||
|
MakeNeverlinkDuplicateTarget("java_library", "java-lib-2"),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
@@ -19,12 +19,14 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
|
"android/soong/bazel"
|
||||||
"android/soong/dexpreopt"
|
"android/soong/dexpreopt"
|
||||||
)
|
)
|
||||||
|
|
||||||
type DeviceHostConverter struct {
|
type DeviceHostConverter struct {
|
||||||
android.ModuleBase
|
android.ModuleBase
|
||||||
android.DefaultableModuleBase
|
android.DefaultableModuleBase
|
||||||
|
android.BazelModuleBase
|
||||||
|
|
||||||
properties DeviceHostConverterProperties
|
properties DeviceHostConverterProperties
|
||||||
|
|
||||||
@@ -76,6 +78,7 @@ func HostForDeviceFactory() android.Module {
|
|||||||
module.AddProperties(&module.properties)
|
module.AddProperties(&module.properties)
|
||||||
|
|
||||||
InitJavaModule(module, android.DeviceSupported)
|
InitJavaModule(module, android.DeviceSupported)
|
||||||
|
android.InitBazelModule(module)
|
||||||
return module
|
return module
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,3 +189,30 @@ func (d *DeviceHostConverter) AndroidMk() android.AndroidMkData {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type bazelDeviceHostConverterAttributes struct {
|
||||||
|
Deps bazel.LabelListAttribute
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *DeviceHostConverter) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
||||||
|
ctx.CreateBazelTargetModule(
|
||||||
|
bazel.BazelTargetModuleProperties{
|
||||||
|
Rule_class: "java_host_for_device",
|
||||||
|
Bzl_load_location: "//build/bazel/rules/java:host_for_device.bzl",
|
||||||
|
},
|
||||||
|
android.CommonAttributes{Name: d.Name()},
|
||||||
|
&bazelDeviceHostConverterAttributes{
|
||||||
|
Deps: bazel.MakeLabelListAttribute(android.BazelLabelForModuleDeps(ctx, d.properties.Libs)),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
neverlinkProp := true
|
||||||
|
neverLinkAttrs := &javaLibraryAttributes{
|
||||||
|
Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + d.Name()}),
|
||||||
|
Neverlink: bazel.BoolAttribute{Value: &neverlinkProp},
|
||||||
|
}
|
||||||
|
ctx.CreateBazelTargetModule(
|
||||||
|
javaLibraryBazelTargetModuleProperties(),
|
||||||
|
android.CommonAttributes{Name: d.Name() + "-neverlink"},
|
||||||
|
neverLinkAttrs)
|
||||||
|
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user