Skip to content

Commit

Permalink
Test removing _android_sdk attribute
Browse files Browse the repository at this point in the history
  • Loading branch information
JiaYan Lin committed Feb 27, 2024
1 parent a542286 commit 7fbb09d
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 34 deletions.
2 changes: 0 additions & 2 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ bazel: last_green

tools_flags: &tools_flags
? "--enable_bzlmod=false"
? "--incompatible_enable_android_toolchain_resolution=false"
# Sandboxed SDK tools depend on libraries that require Java runtime 17 or higher.
? "--java_runtime_version=17"
rules_flags: &rules_flags
? "--enable_bzlmod=false"
? "--incompatible_enable_android_toolchain_resolution=false"

tools: &tools
name: "Tools"
Expand Down
2 changes: 0 additions & 2 deletions kokoro/presubmit/presubmit_main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,9 @@ function main() {
"--java_language_version=11"
"--java_runtime_version=17"
"--noenable_bzlmod"
"--noincompatible_enable_android_toolchain_resolution"
)
RULE_ARGS=(
"--noenable_bzlmod"
"--noincompatible_enable_android_toolchain_resolution"
)

# Go to rules_android workspace and run relevant tests.
Expand Down
3 changes: 2 additions & 1 deletion rules/aar_import/impl.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ load(
load(
"//rules:utils.bzl",
"ANDROID_TOOLCHAIN_TYPE",
"get_android_sdk",
_get_android_toolchain = "get_android_toolchain",
_utils = "utils",
)
Expand Down Expand Up @@ -158,7 +159,7 @@ def _process_resources(

# Tool and Processing related inputs
aapt = _get_android_toolchain(ctx).aapt2.files_to_run,
android_jar = ctx.attr._android_sdk[AndroidSdkInfo].android_jar,
android_jar = get_android_sdk(ctx).android_jar,
android_kit = _get_android_toolchain(ctx).android_kit.files_to_run,
busybox = _get_android_toolchain(ctx).android_resources_busybox.files_to_run,
java_toolchain = _common.get_java_toolchain(ctx),
Expand Down
5 changes: 5 additions & 0 deletions rules/aar_import/rule.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@

"""aar_import rule."""

load(
"//rules:utils.bzl",
"ANDROID_SDK_TOOLCHAIN_TYPE",
)
load(":attrs.bzl", _ATTRS = "ATTRS")
load(":impl.bzl", _impl = "impl")

Expand Down Expand Up @@ -56,5 +60,6 @@ aar_import = rule(
toolchains = [
"//toolchains/android:toolchain_type",
"@bazel_tools//tools/jdk:toolchain_type",
ANDROID_SDK_TOOLCHAIN_TYPE,
],
)
7 changes: 5 additions & 2 deletions rules/android_application/android_application_rule.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ load(
)
load(
"//rules:utils.bzl",
"ANDROID_SDK_TOOLCHAIN_TYPE",
"get_android_sdk",
"get_android_toolchain",
_log = "log",
)
Expand Down Expand Up @@ -84,7 +86,7 @@ def _process_feature_module(
base_apk,
java_package,
feature_target,
ctx.attr._android_sdk[AndroidSdkInfo].aapt2,
get_android_toolchain(ctx).aapt2.files_to_run,
ctx.executable._feature_manifest_script,
ctx.executable._priority_feature_manifest_script,
get_android_toolchain(ctx).android_resources_busybox,
Expand Down Expand Up @@ -124,7 +126,7 @@ def _process_feature_module(
transitive_r_txts = [res.transitive_r_txts],
additional_apks_to_link_against = [base_apk],
proto_format = True, # required for aab.
android_jar = ctx.attr._android_sdk[AndroidSdkInfo].android_jar,
android_jar = get_android_sdk(ctx).android_jar,
aapt = get_android_toolchain(ctx).aapt2.files_to_run,
busybox = get_android_toolchain(ctx).android_resources_busybox.files_to_run,
host_javabase = _common.get_host_javabase(ctx),
Expand Down Expand Up @@ -403,6 +405,7 @@ android_application = rule(
toolchains = [
"//toolchains/android:toolchain_type",
"@bazel_tools//tools/jdk:toolchain_type",
ANDROID_SDK_TOOLCHAIN_TYPE,
],
_skylark_testable = True,
)
Expand Down
3 changes: 2 additions & 1 deletion rules/android_library/rule.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ load(
"//rules:attrs.bzl",
_attrs = "attrs",
)
load("//rules:utils.bzl", "ANDROID_SDK_TOOLCHAIN_TYPE")
load(":attrs.bzl", _ATTRS = "ATTRS")
load(":impl.bzl", _impl = "impl")

Expand Down Expand Up @@ -174,8 +175,8 @@ def make_rule(
outputs = outputs,
toolchains = [
"//toolchains/android:toolchain_type",
"//toolchains/android_sdk:toolchain_type",
"@bazel_tools//tools/jdk:toolchain_type",
ANDROID_SDK_TOOLCHAIN_TYPE,
] + additional_toolchains,
_skylark_testable = True,
)
Expand Down
8 changes: 0 additions & 8 deletions rules/attrs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,6 @@ _JAVA_RUNTIME = dict(

# Android SDK attribute.
_ANDROID_SDK = dict(
_android_sdk = attr.label(
allow_rules = ["android_sdk"],
default = configuration_field(
fragment = "android",
name = "android_sdk_label",
),
providers = [AndroidSdkInfo],
),
_dummy_android_sdk = attr.label(
default = "//toolchains/android_sdk:dummy_sdk_tools",
),
Expand Down
4 changes: 3 additions & 1 deletion rules/utils.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ load(":providers.bzl", "FailureInfo")

ANDROID_TOOLCHAIN_TYPE = Label("//toolchains/android:toolchain_type")

ANDROID_SDK_TOOLCHAIN_TYPE = Label("//toolchains/android_sdk:toolchain_type")

_CUU = "\033[A"
_EL = "\033[K"
_DEFAULT = "\033[0m"
Expand Down Expand Up @@ -420,7 +422,7 @@ def get_android_toolchain(ctx):

def get_android_sdk(ctx):
if hasattr(ctx.fragments.android, "incompatible_use_toolchain_resolution") and ctx.fragments.android.incompatible_use_toolchain_resolution:
return ctx.toolchains["//toolchains/android_sdk:toolchain_type"].android_sdk_info
return ctx.toolchains[ANDROID_SDK_TOOLCHAIN_TYPE].android_sdk_info
else:
return ctx.attr._android_sdk[AndroidSdkInfo]

Expand Down
28 changes: 11 additions & 17 deletions tools/android/defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,21 @@

"""A rule that returns android.jar from the current android sdk."""

load(
"//rules:utils.bzl",
"ANDROID_SDK_TOOLCHAIN_TYPE",
)

def _android_jar_impl(ctx):
sdk_info = ctx.toolchains[ANDROID_SDK_TOOLCHAIN_TYPE].android_sdk_info
return DefaultInfo(
files = depset([ctx.attr._sdk[AndroidSdkInfo].android_jar]),
files = depset([sdk_info.android_jar]),
)

android_jar = rule(
implementation = _android_jar_impl,
# TODO: Should use a toolchain instead of a configuration_field on
# --android_sdk as below, however that appears to be broken when used
# from an local_repository: b/183060658.
#toolchains = [
# "//toolchains/android_sdk:toolchain_type",
#],
attrs = {
"_sdk": attr.label(
allow_rules = ["android_sdk"],
default = configuration_field(
fragment = "android",
name = "android_sdk_label",
),
providers = [AndroidSdkInfo],
),
},
toolchains = [
ANDROID_SDK_TOOLCHAIN_TYPE,
],
fragments = ["android"],
)

0 comments on commit 7fbb09d

Please sign in to comment.