commit | a066bfed462ea941c248d083081b02efbd08bea1 | [log] [tgz] |
---|---|---|
author | Chris Fredrickson <cfredric@users.noreply.github.com> | Fri May 13 16:51:18 2022 -0400 |
committer | GitHub <noreply@github.com> | Fri May 13 22:51:18 2022 +0200 |
tree | d03efa36051e28e01f11a1e5afc88e873e3586dd | |
parent | 1b91e592d5ff91bc4969e3267be8009cb5da70fc [diff] |
Replace slashes with underscores in default crate names. (#1336) This is another attempt at #1334, which sought to make "/" characters legal in Rust target names. This PR differs from #1334 in how it handles build artifacts that are based on `crate_info.output`. There are a few places that currently assume that calling `ctx.actions.declare_file(...)` will always declare a file in the same directory as `crate_info.output`, i.e. as `ctx.actions.declare_file(ctx.label.name + ...)`. In a world where label names may include slashes (which is the case today!), this is not a safe assumption, since a slash in the target name causes bazel to create a subdirectory for the output. Specifically, this PR fixes incorrect locations for the following items (when the target name includes a slash): * PDB files * dSYM files * .lib files This leaves a few things that look like they make the same assumption, but I'm not sure how they're used or if they should be updated: * `"_ambiguous_libs/" + crate_info.output.basename + "/" + symlink_name` for ambiguous libraries * The linkstamp output path (`"_objs/" + crate_info.output.basename + "/" + ...`)
This repository provides rules for building Rust projects with Bazel.
General discussions and announcements take place in the GitHub Discussions, but there are additional places where community members gather to discuss rules_rust
.
Please refer to the full documentation.