aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Cater <jcater@google.com>2023-10-05 14:44:06 -0700
committerCopybara-Service <copybara-worker@google.com>2023-10-05 14:44:46 -0700
commit0ed032dcd4c9b1d4baf79404c21d6722c578b399 (patch)
tree0efab1c2117012117498f2796ad9e4d85c252f58
parentc7c21794e108a72991e14b14cdb783678a2c4554 (diff)
downloadbazelbuild-rules_android-0ed032dcd4c9b1d4baf79404c21d6722c578b399.tar.gz
Add a dummy SDK for rules_android.
Related to https://github.com/bazelbuild/bazel/issues/19600 PiperOrigin-RevId: 571134930 Change-Id: Ia2c4a8c3af87695855055fa933c39b040b002372
-rw-r--r--rules/android_sdk_repository/helper.bzl45
-rw-r--r--test/rules/android_sdk_repository/test_lib.sh15
2 files changed, 59 insertions, 1 deletions
diff --git a/rules/android_sdk_repository/helper.bzl b/rules/android_sdk_repository/helper.bzl
index 43f715f..3a2eba4 100644
--- a/rules/android_sdk_repository/helper.bzl
+++ b/rules/android_sdk_repository/helper.bzl
@@ -235,6 +235,8 @@ def create_android_sdk_rules(
],
)
+ create_dummy_sdk_toolchain()
+
native.alias(
name = "org_apache_http_legacy",
actual = ":org_apache_http_legacy-%d" % default_api_level,
@@ -504,4 +506,45 @@ def create_system_images_filegroups(system_image_dirs):
native.filegroup(
name = "%s_qemu2_extra" % name,
srcs = [],
- )
+ ) # buildifier: disable=unnamed-macro
+
+# This is a dummy sdk toolchain that matches any platform. It will
+# fail if actually resolved to and used.
+# buildifier: disable=unnamed-macro
+def create_dummy_sdk_toolchain():
+ "Create a dummy SDK for fallback builds"
+
+ native.toolchain(
+ name = "sdk-dummy-toolchain",
+ toolchain = ":sdk-dummy",
+ toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type",
+ )
+
+ native.filegroup(name = "jar-filegroup", srcs = ["dummy.jar"])
+
+ native.genrule(
+ name = "genrule",
+ srcs = [],
+ outs = ["empty.sh"],
+ cmd = "echo '' >> \"$@\"",
+ executable = 1,
+ )
+
+ native.sh_binary(name = "empty-binary", srcs = [":genrule"])
+
+ native.android_sdk(
+ name = "sdk-dummy",
+ aapt = ":empty-binary",
+ adb = ":empty-binary",
+ aidl = ":empty-binary",
+ android_jar = ":jar-filegroup",
+ apksigner = ":empty-binary",
+ dx = ":empty-binary",
+ framework_aidl = "dummy.jar",
+ main_dex_classes = "dummy.jar",
+ main_dex_list_creator = ":empty-binary",
+ proguard = ":empty-binary",
+ shrinked_android_jar = "dummy.jar",
+ tags = ["__ANDROID_RULES_MIGRATION__"],
+ zipalign = ":empty-binary",
+ )
diff --git a/test/rules/android_sdk_repository/test_lib.sh b/test/rules/android_sdk_repository/test_lib.sh
index 17d2485..a5abbba 100644
--- a/test/rules/android_sdk_repository/test_lib.sh
+++ b/test/rules/android_sdk_repository/test_lib.sh
@@ -33,6 +33,21 @@ source "$(rlocation rules_android/test/rules/android_sdk_repository/android_help
# Actual tests for Android Sdk Repository
+# Test that the dummy SDK exists.
+function test_dummy_sdk() {
+ # Create android SDK
+ local sdk_path="$(create_android_sdk_basic)"
+
+ cat >> WORKSPACE <<EOF
+android_sdk_repository(
+ name = "androidsdk",
+ path = "${sdk_path}",
+)
+EOF
+
+ "${BIT_BAZEL_BINARY}" query @androidsdk//:sdk-dummy >& $TEST_log || fail "Dummy SDK missing"
+}
+
# Check that the empty BUILD file was created.
function test_android_sdk_repository_no_path_or_android_home() {
cat >> WORKSPACE <<EOF