Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove conditional attribute switch from rules_rust #2425

Open
buildbreaker2021 opened this issue Jan 16, 2024 · 0 comments
Open

Remove conditional attribute switch from rules_rust #2425

buildbreaker2021 opened this issue Jan 16, 2024 · 0 comments
Assignees

Comments

@buildbreaker2021
Copy link
Contributor

Currently Bazel is using native CcToolchainInfo - meaning Java implementation of the provider.
There is an ongoing effort to rewrite provider in Starlark. Once that happens and Bazel knows of Starlark version of the provider remove conditional switch so that it always points to Starlark attribute. So instead of:

  if hasattr(cc_toolchain, "_linker_files"):
      linker_depset = cc_toolchain._linker_files
  else:
      linker_depset = cc_toolchain.linker_files()

We would have:

linker_depset = cc_toolchain._linker_files
@buildbreaker2021 buildbreaker2021 self-assigned this Jan 16, 2024
daivinhtran pushed a commit to daivinhtran/rules_rust that referenced this issue Jan 17, 2024
daivinhtran pushed a commit to daivinhtran/rules_rust that referenced this issue Jan 17, 2024
Drop import macro (bazelbuild#2411)

As discussed over at
bazelbuild#2383

Fix rustfmt toolchains when consuming rules_rust with bzlmod. (bazelbuild#2410)

Fixes bazelbuild#2260

Provide a better error message when trying to generate rust-project.json (bazelbuild#2196)

Currently when trying to generate a `rust-project.json`, if there aren't
actually any Rust targets defined, the script mysteriously fails.

This adds a better error message.

Update android example to use Starlark version of android_ndk_repository (bazelbuild#2417)

The native version of `android_ndk_repository` rule no longer work with
the newer ndk versions.

When I set `ANDROID_NDK_HOME` to
`/usr/local/vinhdaitran/Android/Sdk/ndk/26.1.10909125`, the rule expects
a different structure from the Android NDK path.
```
ERROR: /usr/local/vinhdaitran/github/rules_rust/examples/android/WORKSPACE.bazel:67:23: fetching android_ndk_repository rule //external:androidndk: java.io.IOException:
Expected directory at /usr/local/vinhdaitran/Android/Sdk/ndk/26.1.10909125/platforms but it is not a directory or it does not exist.
Unable to read the Android NDK at /usr/local/vinhdaitran/Android/Sdk/ndk/26.1.10909125, the path may be invalid. Is the path in android_ndk_repository() or ANDROID_NDK_HOME set correctly?
If the path is correct, the contents in the Android NDK directory may have been modified.
```

Using the Starlark version of the rule, as recommended in
https://bazel.build/reference/be/android#android_ndk_repository, fixes
the issue.

cc: @keith

Allow ~ in repository names (bazelbuild#2427)

Fixes bazelbuild#2426

Prepare rust rules for Starlark CcToolchainInfo. (bazelbuild#2424)

bazelbuild#2425
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant