diff options
author | John Cater <jcater@google.com> | 2023-10-05 14:44:06 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-10-05 14:44:46 -0700 |
commit | 0ed032dcd4c9b1d4baf79404c21d6722c578b399 (patch) | |
tree | 0efab1c2117012117498f2796ad9e4d85c252f58 | |
parent | c7c21794e108a72991e14b14cdb783678a2c4554 (diff) | |
download | bazelbuild-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.bzl | 45 | ||||
-rw-r--r-- | test/rules/android_sdk_repository/test_lib.sh | 15 |
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 |