summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jingwen Chen <jingwen@google.com> 2021-04-20 21:45:18 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-04-20 21:45:18 +0000
commiteff37d79bdbf5e695da4dd1aa508bbd9de9b7203 (patch)
tree91bf7da536173346df3920a2e27d9413e4c38764
parent2cb4cfc59349a8d93f279e5eea6c77015700ded4 (diff)
parent38e6264fffbfdf164b8e93700b74b6a7f2214b7b (diff)
Merge "Rename Label.Bp_text to OriginalModuleName."
-rw-r--r--android/bazel_paths.go8
-rw-r--r--bazel/properties.go24
-rw-r--r--genrule/genrule.go4
3 files changed, 26 insertions, 10 deletions
diff --git a/android/bazel_paths.go b/android/bazel_paths.go
index 13f494922..9727cc7fe 100644
--- a/android/bazel_paths.go
+++ b/android/bazel_paths.go
@@ -91,7 +91,7 @@ func BazelLabelForModuleDeps(ctx BazelConversionPathContext, modules []string) b
}
if m, t := SrcIsModuleWithTag(module); m != "" {
l := getOtherModuleLabel(ctx, m, t)
- l.Bp_text = bpText
+ l.OriginalModuleName = bpText
labels.Includes = append(labels.Includes, l)
} else {
ctx.ModuleErrorf("%q, is not a module reference", module)
@@ -156,8 +156,8 @@ func directoryHasBlueprint(fs pathtools.FileSystem, prefix string, components []
func transformSubpackagePath(ctx BazelConversionPathContext, path bazel.Label) bazel.Label {
var newPath bazel.Label
- // Don't transform Bp_text
- newPath.Bp_text = path.Bp_text
+ // Don't transform OriginalModuleName
+ newPath.OriginalModuleName = path.OriginalModuleName
if strings.HasPrefix(path.Label, "//") {
// Assume absolute labels are already correct (e.g. //path/to/some/package:foo.h)
@@ -247,7 +247,7 @@ func expandSrcsForBazel(ctx BazelConversionPathContext, paths, expandedExcludes
if m, tag := SrcIsModuleWithTag(p); m != "" {
l := getOtherModuleLabel(ctx, m, tag)
if !InList(l.Label, expandedExcludes) {
- l.Bp_text = fmt.Sprintf(":%s", m)
+ l.OriginalModuleName = fmt.Sprintf(":%s", m)
labels.Includes = append(labels.Includes, l)
}
} else {
diff --git a/bazel/properties.go b/bazel/properties.go
index 4bb239101..5d3299b76 100644
--- a/bazel/properties.go
+++ b/bazel/properties.go
@@ -35,11 +35,27 @@ const BazelTargetModuleNamePrefix = "__bp2build__"
var productVariableSubstitutionPattern = regexp.MustCompile("%(d|s)")
-// Label is used to represent a Bazel compatible Label. Also stores the original bp text to support
-// string replacement.
+// Label is used to represent a Bazel compatible Label. Also stores the original
+// bp text to support string replacement.
type Label struct {
- Bp_text string
- Label string
+ // The string representation of a Bazel target label. This can be a relative
+ // or fully qualified label. These labels are used for generating BUILD
+ // files with bp2build.
+ Label string
+
+ // The original Soong/Blueprint module name that the label was derived from.
+ // This is used for replacing references to the original name with the new
+ // label, for example in genrule cmds.
+ //
+ // While there is a reversible 1:1 mapping from the module name to Bazel
+ // label with bp2build that could make computing the original module name
+ // from the label automatic, it is not the case for handcrafted targets,
+ // where modules can have a custom label mapping through the { bazel_module:
+ // { label: <label> } } property.
+ //
+ // With handcrafted labels, those modules don't go through bp2build
+ // conversion, but relies on handcrafted targets in the source tree.
+ OriginalModuleName string
}
// LabelList is used to represent a list of Bazel labels.
diff --git a/genrule/genrule.go b/genrule/genrule.go
index 3a9aeccea..77dae755a 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -856,8 +856,8 @@ func GenruleBp2Build(ctx android.TopDownMutatorContext) {
cmd = strings.Replace(cmd, "$(locations)", fmt.Sprintf("$(locations %s)", tools.Value.Includes[0].Label), -1)
}
for _, l := range allReplacements.Includes {
- bpLoc := fmt.Sprintf("$(location %s)", l.Bp_text)
- bpLocs := fmt.Sprintf("$(locations %s)", l.Bp_text)
+ bpLoc := fmt.Sprintf("$(location %s)", l.OriginalModuleName)
+ bpLocs := fmt.Sprintf("$(locations %s)", l.OriginalModuleName)
bazelLoc := fmt.Sprintf("$(location %s)", l.Label)
bazelLocs := fmt.Sprintf("$(locations %s)", l.Label)
cmd = strings.Replace(cmd, bpLoc, bazelLoc, -1)