diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 9d3ca1709..ff1742e09 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -7,9 +7,11 @@ tools_flags: &tools_flags ? "--incompatible_enable_android_toolchain_resolution=false" # Sandboxed SDK tools depend on libraries that require Java runtime 17 or higher. ? "--java_runtime_version=17" + ? "--android_platforms=//:armeabi-v7a" rules_flags: &rules_flags ? "--enable_bzlmod=false" ? "--incompatible_enable_android_toolchain_resolution=false" + ? "--android_platforms=//:armeabi-v7a" tools: &tools name: "Tools" diff --git a/MODULE.bazel b/MODULE.bazel index c3cb43f4b..c5109868e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ use_repo( ) # python-related dependency setup -bazel_dep(name = "rules_python", version = "0.28.0", repo_name = "rules_python") +bazel_dep(name = "rules_python", version = "0.29.0", repo_name = "rules_python") python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain( diff --git a/WORKSPACE b/WORKSPACE index 68bfc9ead..8e4e4d29f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -18,6 +18,9 @@ maybe( name = "androidndk", ) +load("@rules_python//python:repositories.bzl", "py_repositories") +py_repositories() + load("defs_dev.bzl", "rules_android_workspace") rules_android_workspace() diff --git a/defs.bzl b/defs.bzl index ac6ffcfba..c84bee840 100644 --- a/defs.bzl +++ b/defs.bzl @@ -23,7 +23,7 @@ load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_jav load("@rules_jvm_external//:defs.bzl", "maven_install") load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") load("@rules_python//python:pip.bzl", "pip_parse") -load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") +load("@rules_python//python:repositories.bzl", "python_register_toolchains") # Handle python pip requirements. load("//py_support:vendored_py_requirements.bzl", pip_install_deps = "install_deps") @@ -103,8 +103,6 @@ def rules_android_workspace(): rules_proto_dependencies() rules_proto_toolchains() - py_repositories() - python_register_toolchains( name = "python3_11", # Available versions are listed in @rules_python//python:versions.bzl. diff --git a/prereqs.bzl b/prereqs.bzl index 1b35e71b7..ac3767bcc 100644 --- a/prereqs.bzl +++ b/prereqs.bzl @@ -126,12 +126,12 @@ def rules_android_prereqs(dev_mode = False): maybe( http_archive, name = "rules_python", - strip_prefix = "rules_python-0.23.1", + sha256 = "d71d2c67e0bce986e1c5a7731b4693226867c45bfe0b7c5e0067228a536fc580", + strip_prefix = "rules_python-0.29.0", urls = [ - "https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz", - "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz", + "https://github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.29.0/rules_python-0.29.0.tar.gz", ], - sha256 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841", ) _apksig_archive() diff --git a/rules/android_binary_internal/attrs.bzl b/rules/android_binary_internal/attrs.bzl index 0246ed44b..9d23d56d1 100644 --- a/rules/android_binary_internal/attrs.bzl +++ b/rules/android_binary_internal/attrs.bzl @@ -128,6 +128,9 @@ ATTRS = _attrs.replace( default = "native", values = ["native", "legacy", "manual_main_dex"], ), + user_link_flags = attr.string( + default = "-Wl,-soname", + ), _java_toolchain = attr.label( default = Label("//tools/jdk:toolchain_android_only"), ), diff --git a/rules/android_binary_internal/rule.bzl b/rules/android_binary_internal/rule.bzl index cd18cbfa1..1bcfef9c3 100644 --- a/rules/android_binary_internal/rule.bzl +++ b/rules/android_binary_internal/rule.bzl @@ -97,4 +97,11 @@ def android_binary_internal_macro(**attrs): Args: **attrs: Rule attributes """ + user_link_flags = select({ + "@bazel_tools//src/conditions:darwin_x86_64": "-Wl,-install_name,lib{target_name}", + "@bazel_tools//src/conditions:darwin_arm64": "-Wl,-install_name,lib{target_name}", + "//conditions:default": "-Wl,-soname=lib{target_name}", + }) + # if 'user_link_flags' not in attrs: + # attrs["user_link_flags"] = user_link_flags android_binary_internal(**sanitize_attrs(attrs)) diff --git a/rules/native_deps.bzl b/rules/native_deps.bzl index ab5885053..805917baf 100644 --- a/rules/native_deps.bzl +++ b/rules/native_deps.bzl @@ -84,7 +84,7 @@ def process(ctx, filename, merged_native_libs = {}): ) linker_input = cc_common.create_linker_input( owner = ctx.label, - user_link_flags = ["-Wl,-soname=lib" + actual_target_name], + user_link_flags = [ ctx.attr.user_link_flags.format(target_name = actual_target_name) ] ) cc_info = cc_common.merge_cc_infos( cc_infos = _concat( diff --git a/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh b/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh index c8cc82ea6..3691fa5fe 100755 --- a/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh +++ b/src/tools/extract_desugar_pgcfg_flags/extract_desugar_pgcfg_flags_test.sh @@ -44,8 +44,8 @@ dummy_json_file="$(mktemp)" echo "{\"shrinker_config\": [\"-keepclassmembers a b c\", \"foobar\", \"-someflag 1 2 3\"], \"foo\": \"bar\"}" > "$dummy_json_file" # Dummy output dummy output file -test_output_file="$(mktemp -p /tmp test.XXXX)" -expected_output_file="$(mktemp -p /tmp golden.XXXX)" +test_output_file="$(mktemp /tmp/test.XXXX)" +expected_output_file="$(mktemp /tmp/golden.XXXX)" # Expected outcome is a\nb\nc echo -ne "-keepclassmembers a b c\nfoobar\n-someflag 1 2 3" > "$expected_output_file"