Skip to content

Commit c4661d2

Browse files
ted-xiecopybara-github
authored andcommitted
Merge #291 by ted-xie: Remove final dependencies/references to --experimental_legacy_google_apis
Closes #291 COPYBARA_INTEGRATE_REVIEW=#291 from ted-xie:cleanup_bazelrc 013b589 PiperOrigin-RevId: 704417448 Change-Id: I9fca951543afe0b9c04418e65b9bd5973323e029
1 parent 8a91c36 commit c4661d2

7 files changed

Lines changed: 144 additions & 51 deletions

File tree

.bazelrc

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1 @@
1-
common --experimental_google_legacy_api
2-
common --experimental_enable_android_migration_apis
31
common --java_runtime_version=17
4-
common --android_sdk=@androidsdk//:sdk
5-
6-
# Autoloads are disabled for rule repositories (and their deps).
7-
# These autoloads are still helpful for rules_android to load rules in
8-
# non-rule repositories such as gazelle, though.
9-
# See https://github.com/bazelbuild/bazel/blob/14538435c8e96d1ed8cb9557209a35ebd2683356/src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java#L598
10-
common --incompatible_autoload_externally=+@rules_shell,+@rules_java,+@rules_cc,+@rules_python,+@protobuf

examples/basicapp/.bazelrc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
# Flags needed while the Android rules are being migrated to Starlark.
2-
common --experimental_google_legacy_api
3-
common --experimental_enable_android_migration_apis
4-
common --android_sdk=@androidsdk//:sdk
1+
# Config for library desugaring
52
common:core_library_desugaring --desugar_java8_libs
63

74
# Flags to enable mobile-install v3

rules/android_binary/impl.bzl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,11 @@ def _process_jvm(ctx, db_ctx, packaged_resources_ctx, proto_ctx, stamp_ctx, **_u
228228
strict_deps = "DEFAULT",
229229
java_toolchain = common.get_java_toolchain(ctx),
230230
)
231-
java_info = java_common.add_constraints(
232-
java_info,
233-
constraints = ["android"],
234-
)
231+
if getattr(java_common, "add_constraints", None):
232+
java_info = java_common.add_constraints(
233+
java_info,
234+
constraints = ["android"],
235+
)
235236

236237
java_infos = [packaged_resources_ctx.r_java]
237238
if proto_ctx.java_info:

rules/android_library/impl.bzl

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,29 @@ def _process_aar(ctx, java_package, resources_ctx, proguard_ctx, **unused_ctx):
348348
value = _AARContextInfo(**aar_ctx),
349349
)
350350

351+
def _get_cc_link_params_infos(ctx, idl_ctx):
352+
infos = []
353+
for info in utils.collect_providers(JavaInfo, ctx.attr.deps, ctx.attr.exports, idl_ctx.idl_deps):
354+
if getattr(info, "cc_link_params_info", None):
355+
infos.append(info.cc_link_params_info)
356+
else:
357+
# cc_link_params_info attr not available without --experimental_google_legacy_api
358+
infos.append(
359+
CcInfo(
360+
compilation_context = None,
361+
linking_context = cc_common.create_linking_context(
362+
linker_inputs = depset([
363+
cc_common.create_linker_input(
364+
owner = ctx.label,
365+
libraries = info.transitive_native_libraries,
366+
),
367+
]),
368+
),
369+
),
370+
)
371+
372+
return infos
373+
351374
def _process_native(ctx, idl_ctx, **unused_ctx):
352375
return ProviderInfo(
353376
name = "native_ctx",
@@ -368,15 +391,7 @@ def _process_native(ctx, idl_ctx, **unused_ctx):
368391
),
369392
AndroidCcLinkParamsInfo(
370393
link_params = cc_common.merge_cc_infos(
371-
cc_infos = [
372-
info.cc_link_params_info
373-
for info in utils.collect_providers(
374-
JavaInfo,
375-
ctx.attr.deps,
376-
ctx.attr.exports,
377-
idl_ctx.idl_deps,
378-
)
379-
] +
394+
cc_infos = _get_cc_link_params_infos(ctx, idl_ctx) +
380395
[
381396
info.link_params
382397
for info in utils.collect_providers(

rules/android_local_test/impl.bzl

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,32 +135,34 @@ def _process_jvm(ctx, resources_ctx, **_unused_sub_ctxs):
135135
java_start_class = TEST_RUNNER_CLASS
136136
coverage_start_class = None
137137

138-
java_info = java_common.add_constraints(
139-
java.compile_android(
140-
ctx,
141-
ctx.outputs.jar,
142-
ctx.actions.declare_file(ctx.label.name + "-src.jar"),
143-
srcs = ctx.files.srcs,
144-
resources = ctx.files.resources,
145-
javac_opts = ctx.attr.javacopts,
146-
r_java = resources_ctx.r_java,
147-
deps = (
148-
utils.collect_providers(JavaInfo, deps) +
149-
[
150-
JavaInfo(
151-
output_jar = get_android_sdk(ctx).android_jar,
152-
compile_jar = get_android_sdk(ctx).android_jar,
153-
# The android_jar must not be compiled into the test, it
154-
# will bloat the Jar with no benefit.
155-
neverlink = True,
156-
),
157-
]
158-
),
159-
plugins = utils.collect_providers(JavaPluginInfo, ctx.attr.plugins),
160-
java_toolchain = common.get_java_toolchain(ctx),
138+
java_info = java.compile_android(
139+
ctx,
140+
ctx.outputs.jar,
141+
ctx.actions.declare_file(ctx.label.name + "-src.jar"),
142+
srcs = ctx.files.srcs,
143+
resources = ctx.files.resources,
144+
javac_opts = ctx.attr.javacopts,
145+
r_java = resources_ctx.r_java,
146+
deps = (
147+
utils.collect_providers(JavaInfo, deps) +
148+
[
149+
JavaInfo(
150+
output_jar = get_android_sdk(ctx).android_jar,
151+
compile_jar = get_android_sdk(ctx).android_jar,
152+
# The android_jar must not be compiled into the test, it
153+
# will bloat the Jar with no benefit.
154+
neverlink = True,
155+
),
156+
]
161157
),
162-
constraints = ["android"],
158+
plugins = utils.collect_providers(JavaPluginInfo, ctx.attr.plugins),
159+
java_toolchain = common.get_java_toolchain(ctx),
163160
)
161+
if getattr(java_common, "add_constraints", None):
162+
java_info = java_common.add_constraints(
163+
java_info,
164+
constraints = ["android"],
165+
)
164166

165167
# TODO(timpeut): some conformance tests require a filtered JavaInfo
166168
# with no transitive_ deps.

rules/native_deps.bzl

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,30 @@ def _get_libs_dir_name(target_platform):
4747
name = target_platform.name
4848
return name
4949

50+
def _get_cc_link_params_infos(ctx, deps):
51+
infos = []
52+
for dep in deps:
53+
if JavaInfo in dep:
54+
if getattr(dep[JavaInfo], "cc_link_params_info", None):
55+
infos.append(dep[JavaInfo].cc_link_params_info)
56+
else:
57+
# cc_link_params_info attr not available without --experimental_google_legacy_api
58+
infos.append(
59+
CcInfo(
60+
compilation_context = None,
61+
linking_context = cc_common.create_linking_context(
62+
linker_inputs = depset([
63+
cc_common.create_linker_input(
64+
owner = ctx.label,
65+
libraries = dep[JavaInfo].transitive_native_libraries,
66+
),
67+
]),
68+
),
69+
),
70+
)
71+
72+
return infos
73+
5074
def process(ctx, filename, merged_libraries_map = {}):
5175
"""Links native deps into a shared library
5276
@@ -88,7 +112,7 @@ def process(ctx, filename, merged_libraries_map = {}):
88112
[CcInfo(linking_context = cc_common.create_linking_context(
89113
linker_inputs = depset([linker_input]),
90114
))],
91-
[dep[JavaInfo].cc_link_params_info for dep in deps if JavaInfo in dep],
115+
_get_cc_link_params_infos(ctx, deps),
92116
[dep[AndroidCcLinkParamsInfo].link_params for dep in deps if AndroidCcLinkParamsInfo in dep],
93117
[dep[CcInfo] for dep in deps if CcInfo in dep],
94118
),

test/rules/android_binary/BUILD

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
load("@bazel_skylib//rules:build_test.bzl", "build_test")
2+
load("@rules_cc//cc:cc_library.bzl", "cc_library")
3+
load("@rules_java//java:java_library.bzl", "java_library")
14
load("//rules:rules.bzl", "android_binary", "android_library")
25
load(":test.bzl", "fake_cc_toolchain_config", "multiple_android_platforms_test")
36

@@ -40,6 +43,33 @@ toolchain(
4043
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
4144
)
4245

46+
genrule(
47+
name = "native_cc",
48+
outs = ["native.cc"],
49+
cmd = "echo 'int native() {return 0;}' > $@",
50+
)
51+
52+
cc_library(
53+
name = "native_lib",
54+
srcs = ["native.cc"],
55+
toolchains = [
56+
":fake_arm64-v8a_toolchain",
57+
":fake_armeabi-v7a_toolchain",
58+
],
59+
)
60+
61+
genrule(
62+
name = "Foo_java",
63+
outs = ["Foo.java"],
64+
cmd = "echo 'package com.example; public class Foo {}' > $@",
65+
)
66+
67+
java_library(
68+
name = "Foo_java_lib",
69+
srcs = ["Foo.java"],
70+
deps = [":native_lib"],
71+
)
72+
4373
android_binary(
4474
name = "basicapp",
4575
srcs = ["java/com/binary/AJavaClass.java"],
@@ -58,3 +88,36 @@ multiple_android_platforms_test(
5888
name = "multiple_android_platforms_test",
5989
target_under_test = ":basicapp",
6090
)
91+
92+
android_library(
93+
name = "basiclib_with_native_dep",
94+
srcs = [
95+
"java/com/foo/AJavaClass.java",
96+
"java/com/foo/AndroidManifest.xml",
97+
],
98+
deps = [":native_lib"],
99+
)
100+
101+
android_binary(
102+
name = "basicapp_with_native_dep_from_java_lib",
103+
srcs = ["java/com/binary/AJavaClass.java"],
104+
custom_package = "com.binary",
105+
manifest = "AndroidManifest.xml",
106+
resource_files = ["res/layout/main.xml"],
107+
deps = [":basiclib_with_native_dep"],
108+
)
109+
110+
genrule(
111+
name = "so_file_from_app",
112+
srcs = [":basicapp_with_native_dep_from_java_lib.apk"],
113+
outs = ["lib_from_app.so"],
114+
cmd = "set -e; unzip -q $(SRCS); find lib -name \"*.so\" -exec cp {} $@ \\;",
115+
)
116+
117+
build_test(
118+
name = "so_file_from_app_test",
119+
size = "small",
120+
targets = [
121+
":so_file_from_app",
122+
],
123+
)

0 commit comments

Comments
 (0)