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
This commit is contained in:
Jingwen Chen
2020-11-19 05:38:02 -05:00
parent b26070efef
commit 30f5aaaa77
6 changed files with 46 additions and 9 deletions

View File

@@ -6,6 +6,7 @@ bootstrap_go_package {
"blueprint-bootstrap", "blueprint-bootstrap",
"soong", "soong",
"soong-android-soongconfig", "soong-android-soongconfig",
"soong-bazel",
"soong-env", "soong-env",
"soong-shared", "soong-shared",
"soong-ui-metrics_proto", "soong-ui-metrics_proto",

View File

@@ -15,6 +15,7 @@
package android package android
import ( import (
"android/soong/bazel"
"strings" "strings"
) )
@@ -37,6 +38,9 @@ type fileGroupProperties struct {
// Create a make variable with the specified name that contains the list of files in the // 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. // filegroup, relative to the root of the source tree.
Export_to_make_var *string Export_to_make_var *string
// Properties for Bazel migration purposes.
bazel.Properties
} }
type fileGroup struct { type fileGroup struct {

10
bazel/Android.bp Normal file
View File

@@ -0,0 +1,10 @@
bootstrap_go_package {
name: "soong-bazel",
pkgPath: "android/soong/bazel",
srcs: [
"properties.go",
],
pluginFor: [
"soong_build",
],
}

27
bazel/properties.go Normal file
View File

@@ -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
}

View File

@@ -6,6 +6,7 @@ bootstrap_go_package {
"blueprint-pathtools", "blueprint-pathtools",
"soong", "soong",
"soong-android", "soong-android",
"soong-bazel",
"soong-shared", "soong-shared",
], ],
srcs: [ srcs: [

View File

@@ -26,6 +26,7 @@ import (
"github.com/google/blueprint/proptools" "github.com/google/blueprint/proptools"
"android/soong/android" "android/soong/android"
"android/soong/bazel"
) )
func init() { func init() {
@@ -78,13 +79,6 @@ type hostToolDependencyTag struct {
blueprint.BaseDependencyTag blueprint.BaseDependencyTag
label string 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 { type generatorProperties struct {
// The command to run on one or more input files. Cmd supports substitution of a few variables // 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 // input files to exclude
Exclude_srcs []string `android:"path,arch_variant"` Exclude_srcs []string `android:"path,arch_variant"`
// in bazel-enabled mode, the bazel label to evaluate instead of this module // Properties for Bazel migration purposes.
Bazel_module bazelModuleProperties bazel.Properties
} }
type Module struct { type Module struct {
android.ModuleBase android.ModuleBase