From 30f5aaaa772b90cd1e3eff7af2a111e87a19a0b2 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Thu, 19 Nov 2020 05:38:02 -0500 Subject: [PATCH] Move bazel_module property to a common file, and add it to filegroup. This enables prototyping against aosp/1441774 to demonstrate mixed builds with converted BUILD files. Test: TH Presubmit Test: USE_BAZEL_ANALYSIS=1 m libc && prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-aosp_cf_x86_auto.ninja -t commands libc | grep bazel-out | wc -l # 2 build actions Bug: 171263886 Change-Id: I7b5cd0449d043ba26a339a0ef98b562fc62e13c8 --- android/Android.bp | 1 + android/filegroup.go | 4 ++++ bazel/Android.bp | 10 ++++++++++ bazel/properties.go | 27 +++++++++++++++++++++++++++ genrule/Android.bp | 1 + genrule/genrule.go | 12 +++--------- 6 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 bazel/Android.bp create mode 100644 bazel/properties.go diff --git a/android/Android.bp b/android/Android.bp index 66d361efa..279d44263 100644 --- a/android/Android.bp +++ b/android/Android.bp @@ -6,6 +6,7 @@ bootstrap_go_package { "blueprint-bootstrap", "soong", "soong-android-soongconfig", + "soong-bazel", "soong-env", "soong-shared", "soong-ui-metrics_proto", diff --git a/android/filegroup.go b/android/filegroup.go index 68311e39a..94256162a 100644 --- a/android/filegroup.go +++ b/android/filegroup.go @@ -15,6 +15,7 @@ package android import ( + "android/soong/bazel" "strings" ) @@ -37,6 +38,9 @@ type fileGroupProperties struct { // Create a make variable with the specified name that contains the list of files in the // filegroup, relative to the root of the source tree. Export_to_make_var *string + + // Properties for Bazel migration purposes. + bazel.Properties } type fileGroup struct { diff --git a/bazel/Android.bp b/bazel/Android.bp new file mode 100644 index 000000000..0113726c7 --- /dev/null +++ b/bazel/Android.bp @@ -0,0 +1,10 @@ +bootstrap_go_package { + name: "soong-bazel", + pkgPath: "android/soong/bazel", + srcs: [ + "properties.go", + ], + pluginFor: [ + "soong_build", + ], +} diff --git a/bazel/properties.go b/bazel/properties.go new file mode 100644 index 000000000..8bb195644 --- /dev/null +++ b/bazel/properties.go @@ -0,0 +1,27 @@ +// Copyright 2020 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 bazel + +type bazelModuleProperties struct { + // The label of the Bazel target replacing this Soong module. + Label string +} + +// Properties contains common module properties for migration purposes. +type Properties struct { + // In USE_BAZEL_ANALYSIS=1 mode, this represents the Bazel target replacing + // this Soong module. + Bazel_module bazelModuleProperties +} diff --git a/genrule/Android.bp b/genrule/Android.bp index ff543a61f..9690007dc 100644 --- a/genrule/Android.bp +++ b/genrule/Android.bp @@ -6,6 +6,7 @@ bootstrap_go_package { "blueprint-pathtools", "soong", "soong-android", + "soong-bazel", "soong-shared", ], srcs: [ diff --git a/genrule/genrule.go b/genrule/genrule.go index f85146c6b..0743e6724 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -26,6 +26,7 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" + "android/soong/bazel" ) func init() { @@ -78,13 +79,6 @@ type hostToolDependencyTag struct { blueprint.BaseDependencyTag label string } - -// TODO(cparsons): Move to a common location when there is more than just -// genrule with a bazel_module property. -type bazelModuleProperties struct { - Label string -} - type generatorProperties struct { // The command to run on one or more input files. Cmd supports substitution of a few variables // @@ -118,8 +112,8 @@ type generatorProperties struct { // input files to exclude Exclude_srcs []string `android:"path,arch_variant"` - // in bazel-enabled mode, the bazel label to evaluate instead of this module - Bazel_module bazelModuleProperties + // Properties for Bazel migration purposes. + bazel.Properties } type Module struct { android.ModuleBase