aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Márquez Pérez Muñíz Díaz Púras Thaureaux <alexmarquez@google.com>2022-04-21 16:15:37 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-21 16:15:37 +0000
commit9898ac01c9525bf91d23a1c2b83fc401603cb6d3 (patch)
tree74393ec5dcc68491e5308c0f4d3bdc3fa1f58fcb
parente93f4df1af433ed9fd8dde71d09885b0c4409874 (diff)
parentda779c297139918058ddda747c0730d9e609ddd5 (diff)
downloadbazel-android13-qpr3-c-s8-release.tar.gz
Subsume prebuilt_etc through prebuilt_file usage am: 3dc924bdb4 am: 6234e86c39 am: a4ecd7a1d0 am: c7d5439fbb am: da779c2971android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r56android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-release
Original change: https://android-review.googlesource.com/c/platform/build/bazel/+/1980706 Change-Id: Iceb6d053350e286071490ca36c408909b13086ca Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--rules/apex.bzl17
-rw-r--r--rules/prebuilt_file.bzl42
2 files changed, 38 insertions, 21 deletions
diff --git a/rules/apex.bzl b/rules/apex.bzl
index 70e14a72..e5fc11ef 100644
--- a/rules/apex.bzl
+++ b/rules/apex.bzl
@@ -52,19 +52,12 @@ def _prepare_apexer_wrapper_inputs(ctx):
# Handle prebuilts
for dep in ctx.attr.prebuilts:
- # TODO: Support more prebuilts than just PrebuiltEtc
- prebuilt_etc_info = dep[PrebuiltFileInfo]
-
- directory = "etc"
- if prebuilt_etc_info.sub_dir != None and prebuilt_etc_info.sub_dir != "":
- directory = "/".join([directory, prebuilt_etc_info.sub_dir])
-
- if prebuilt_etc_info.filename != None and prebuilt_etc_info.filename != "":
- filename = prebuilt_etc_info.filename
+ prebuilt_file_info = dep[PrebuiltFileInfo]
+ if prebuilt_file_info.filename:
+ filename = prebuilt_file_info.filename
else:
filename = dep.label.name
-
- apex_manifest[(directory, filename)] = prebuilt_etc_info.src
+ apex_manifest[(prebuilt_file_info.dir, filename)] = prebuilt_file_info.src
# Handle binaries
for dep in ctx.attr.binaries:
@@ -350,7 +343,7 @@ _apex = rule(
],
cfg = apex_transition,
),
- "prebuilts": attr.label_list(providers = [PrebuiltEtcInfo], cfg = apex_transition),
+ "prebuilts": attr.label_list(providers = [PrebuiltFileInfo], cfg = apex_transition),
"apex_output": attr.output(doc = "signed .apex output"),
"capex_output": attr.output(doc = "signed .capex output"),
diff --git a/rules/prebuilt_file.bzl b/rules/prebuilt_file.bzl
index 210a42fa..12e69824 100644
--- a/rules/prebuilt_file.bzl
+++ b/rules/prebuilt_file.bzl
@@ -18,27 +18,50 @@ PrebuiltFileInfo = provider(
"Info needed for prebuilt_file modules",
fields = {
"src": "Source file of this prebuilt",
- "sub_dir": "Optional subdirectory into which to install",
+ "dir": "Directory into which to install",
"filename": "Optional name for the installed file",
"installable": "Whether this is directly installable into one of the partitions",
},
)
+_handled_dirs = ["etc", "usr/share"]
def _prebuilt_file_rule_impl(ctx):
+ srcs = ctx.files.src
+ if len(srcs) != 1:
+ fail("src for", ctx.label.name, "is expected to be singular, but is of len", len(srcs), ":\n", srcs)
+
+ # Is this an acceptable directory, or a subdir under one?
+ dir = ctx.attr.dir
+ acceptable = False
+ for d in _handled_dirs:
+ if dir == d or dir.startswith(d + "/"):
+ acceptable = True
+ break
+ if not acceptable:
+ fail("dir for", ctx.label.name, "is `", dir, "`, but we only handle these:\n", _handled_dirs)
+
return [
PrebuiltFileInfo(
- src = ctx.file.src,
- sub_dir = ctx.attr.sub_dir,
+ src = srcs[0],
+ dir = dir,
filename = ctx.attr.filename,
installable = ctx.attr.installable,
),
+ DefaultInfo(
+ files = depset(srcs),
+ ),
]
_prebuilt_file = rule(
implementation = _prebuilt_file_rule_impl,
attrs = {
- "src": attr.label(mandatory = True, allow_single_file = True),
- "sub_dir": attr.string(),
+ "src": attr.label(
+ mandatory = True,
+ allow_files = True,
+ # TODO(b/217908237): reenable allow_single_file
+ # allow_single_file = True,
+ ),
+ "dir": attr.string(mandatory = True),
"filename": attr.string(),
"installable": attr.bool(default = True),
},
@@ -47,18 +70,19 @@ _prebuilt_file = rule(
def prebuilt_file(
name,
src,
- sub_dir = None,
+ dir,
filename = None,
installable = True,
- # TODO(b/207489266): Fully support; data is currently simply dropped to prevent breakages.
+ # TODO(b/207489266): Fully support;
+ # data is currently dropped to prevent breakages from e.g. prebuilt_etc
data = [],
**kwargs):
- "Bazel macro to correspond with the prebuilt_etc Soong module."
+ "Bazel macro to correspond with the e.g. prebuilt_etc and prebuilt_usr_share Soong modules."
_prebuilt_file(
name = name,
src = src,
- sub_dir = sub_dir,
+ dir = dir,
filename = filename,
installable = installable,
**kwargs