diff options
| -rw-r--r-- | android/bazel.go | 16 | ||||
| -rw-r--r-- | android/bazel_paths.go | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/android/bazel.go b/android/bazel.go index 0d2c7776f..df30ff261 100644 --- a/android/bazel.go +++ b/android/bazel.go @@ -22,6 +22,7 @@ import ( "android/soong/ui/metrics/bp2build_metrics_proto" "github.com/google/blueprint" + "github.com/google/blueprint/bootstrap" "github.com/google/blueprint/proptools" "android/soong/android/allowlists" @@ -426,8 +427,23 @@ func MixedBuildsEnabled(ctx BaseModuleContext) MixedBuildEnabledStatus { return ModuleIncompatibility } +func isGoModule(module blueprint.Module) bool { + if _, ok := module.(*bootstrap.GoPackage); ok { + return true + } + if _, ok := module.(*bootstrap.GoBinary); ok { + return true + } + return false +} + // ConvertedToBazel returns whether this module has been converted (with bp2build or manually) to Bazel. func convertedToBazel(ctx BazelConversionContext, module blueprint.Module) bool { + // Special-case bootstrap_go_package and bootstrap_go_binary + // These do not implement Bazelable, but have been converted + if isGoModule(module) { + return true + } b, ok := module.(Bazelable) if !ok { return false diff --git a/android/bazel_paths.go b/android/bazel_paths.go index 756854315..b08a4cad7 100644 --- a/android/bazel_paths.go +++ b/android/bazel_paths.go @@ -431,7 +431,7 @@ func getOtherModuleLabel(ctx BazelConversionPathContext, dep, tag string, func BazelModuleLabel(ctx BazelConversionPathContext, module blueprint.Module) string { // TODO(b/165114590): Convert tag (":name{.tag}") to corresponding Bazel implicit output targets. - if !convertedToBazel(ctx, module) { + if !convertedToBazel(ctx, module) || isGoModule(module) { return bp2buildModuleLabel(ctx, module) } b, _ := module.(Bazelable) |