aboutsummaryrefslogtreecommitdiff
path: root/rules/common.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'rules/common.bzl')
-rw-r--r--rules/common.bzl63
1 files changed, 17 insertions, 46 deletions
diff --git a/rules/common.bzl b/rules/common.bzl
index 6e84559..508413f 100644
--- a/rules/common.bzl
+++ b/rules/common.bzl
@@ -14,13 +14,11 @@
"""Bazel common library for the Android rules."""
-load(":java.bzl", _java = "java")
-load(":utils.bzl", "get_android_sdk", "get_android_toolchain", _log = "log")
+load(":utils.bzl", "get_android_toolchain", _log = "log")
+load("//rules/android_common:reexport_android_common.bzl", _native_android_common = "native_android_common")
-# TODO(ostonge): Remove once kotlin/jvm_library.internal.bzl
-# is updated and released to use the java.resolve_package function
-def _java_package(label, custom_package):
- return _java.resolve_package_from_label(label, custom_package)
+# Suffix attached to the Starlark portion of android_binary target
+_PACKAGED_RESOURCES_SUFFIX = "_RESOURCES_DO_NOT_USE"
# Validates that the packages listed under "deps" all have the given constraint. If a package
# does not have this attribute, an error is generated.
@@ -45,44 +43,6 @@ def _get_host_javabase(ctx):
_log.error("Missing _host_javabase attr")
return ctx.attr._host_javabase
-def _sign_apk(ctx, unsigned_apk, signed_apk, keystore = None, signing_keys = [], signing_lineage = None):
- """Signs an apk. Usage of keystore is deprecated. Prefer using signing_keys."""
- inputs = [unsigned_apk]
- signer_args = ctx.actions.args()
- signer_args.add("sign")
-
- if signing_keys:
- inputs.extend(signing_keys)
- for i, key in enumerate(signing_keys):
- if i > 0:
- signer_args.add("--next-signer")
- signer_args.add("--ks")
- signer_args.add(key.path)
- signer_args.add("--ks-pass")
- signer_args.add("pass:android")
- if signing_lineage:
- inputs.append(signing_lineage)
- signer_args.add("--lineage", signing_lineage.path)
- elif keystore:
- inputs.append(keystore)
- signer_args.add("--ks", keystore.path)
- signer_args.add("--ks-pass", "pass:android")
-
- signer_args.add("--v1-signing-enabled", ctx.fragments.android.apk_signing_method_v1)
- signer_args.add("--v1-signer-name", "CERT")
- signer_args.add("--v2-signing-enabled", ctx.fragments.android.apk_signing_method_v2)
- signer_args.add("--out", signed_apk.path)
- signer_args.add(unsigned_apk.path)
- ctx.actions.run(
- executable = get_android_sdk(ctx).apk_signer,
- inputs = inputs,
- outputs = [signed_apk],
- arguments = [signer_args],
- mnemonic = "ApkSignerTool",
- progress_message = "Signing APK for %s" % unsigned_apk.path,
- )
- return signed_apk
-
def _filter_zip(ctx, in_zip, out_zip, filters = []):
"""Creates a copy of a zip file with files that match filters."""
args = ctx.actions.args()
@@ -101,11 +61,22 @@ def _filter_zip(ctx, in_zip, out_zip, filters = []):
progress_message = "Filtering %s" % in_zip.short_path,
)
+def _create_signer_properties(ctx, oldest_key):
+ properties = ctx.actions.declare_file("%s/keystore.properties" % ctx.label.name)
+ ctx.actions.expand_template(
+ template = ctx.file._bundle_keystore_properties,
+ output = properties,
+ substitutions = {"%oldest_key%": oldest_key.short_path},
+ )
+ return properties
+
common = struct(
+ PACKAGED_RESOURCES_SUFFIX = _PACKAGED_RESOURCES_SUFFIX,
check_rule = _check_rule,
+ create_signer_properties = _create_signer_properties,
get_host_javabase = _get_host_javabase,
get_java_toolchain = _get_java_toolchain,
filter_zip = _filter_zip,
- java_package = _java_package,
- sign_apk = _sign_apk,
)
+
+android_common = _native_android_common