-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Canonicalize default target if it ends with .json
#6778
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
@bors: r+ Thanks! |
📌 Commit 7196d6944c22e77d9825286202cf52287f3299e8 has been approved by |
⌛ Testing commit 7196d6944c22e77d9825286202cf52287f3299e8 with merge e80c47a3376345cd55a3dc612f3403c62d3b79ad... |
@alexcrichton I just noticed that this solution has a problem with building from subdirectories because it does not create paths relative to the config file. I have a new solution without that problem almost ready. Could you abort the current build? Sorry for not telling you earlier, I wasn't sure whether the new approach would work! |
7196d69
to
3de1f51
Compare
@bors: r- No worries! |
3de1f51
to
0f7f152
Compare
Thanks! I just pushed the new version. It creates a new |
It turns out that So this should be ready for review now, @alexcrichton. Sorry for the confusion! |
Having the duplication in logic here is somewhat unfortunate because ideally we'd just have the ".json" suffix check in the same function. I wonder if we can do that and also avoid canonicalization for config paths? We already have |
64ccbe8
to
9475ea6
Compare
9475ea6
to
703f7a7
Compare
You're right, it seems like the config path is already canonicalized. I pushed a new version that avoids the duplication. Instead of |
@bors: r+ |
📌 Commit 703f7a7 has been approved by |
…hton Canonicalize default target if it ends with `.json` Targets that end with `.json` are not target triples but paths to target configuration files. We currently canonicalize all `.json` paths that are passed as `--target` so that the paths are still valid when building dependencies (where the current working directory is changed). This commit adds the same canonicalization to default targets specified in a `build.target` key in a `.cargo/config` file by adding a new `Config::target_triple` function.
☀️ Test successful - checks-travis, status-appveyor |
Update cargo Update cargo 22 commits in 0e35bd8af0ec72d3225c4819b330b94628f0e9d0..63231f438a2b5b84ccf319a5de22343ee0316323 2019-03-13 06:52:51 +0000 to 2019-03-27 12:26:45 +0000 - Code cleanup (rust-lang/cargo#6787) - Add cargo:rustc-link-arg to pass custom linker arguments (rust-lang/cargo#6298) - Testsuite: remove some unnecessary is_nightly checks. (rust-lang/cargo#6786) - cargo metadata: Don't show `null` deps. (rust-lang/cargo#6534) - Some fingerprint cleanup. (rust-lang/cargo#6785) - Fix fingerprint for canceled build script. (rust-lang/cargo#6782) - Canonicalize default target if it ends with `.json` (rust-lang/cargo#6778) - Fix setting `panic=unwind` compiling lib a extra time. (rust-lang/cargo#6781) - Always nicely show errors from crates.io if possible (rust-lang/cargo#6771) - Testsuite: Make `cwd()` relative to project root. (rust-lang/cargo#6768) - Allow `cargo fix` if gitignore matches root working dir. (rust-lang/cargo#6767) - Remove redundant imports (rust-lang/cargo#6763) - Handle backcompat hazard with `toml` crate (rust-lang/cargo#6761) - Fix spurious error in dirty_both_lib_and_test. (rust-lang/cargo#6756) - Update toml requirement from 0.4.2 to 0.5.0 (rust-lang/cargo#6760) - Reuse std::env::consts::EXE_SUFFIX (rust-lang/cargo#6758) - Proptest 0.9.1 (rust-lang/cargo#6753) - Don't need extern crate in 2018 (rust-lang/cargo#6752) - Release a jobserver token while locking a file (rust-lang/cargo#6748) - Minor doc fix for publish command synopsis (rust-lang/cargo#6749) - Stricter package change detection. (rust-lang/cargo#6740) - Fix resolving yanked crates when using a local registry. (rust-lang/cargo#6742)
51: Rewrite build system r=phil-opp a=phil-opp - [x] Blocked on rust-lang/rust#59351 - [x] Blocked on rust-lang/cargo#6778 Fixes #33 Fixes #48 Co-authored-by: Philipp Oppermann <dev@phil-opp.com>
Targets that end with
.json
are not target triples but paths to target configuration files. We currently canonicalize all.json
paths that are passed as--target
so that the paths are still valid when building dependencies (where the current working directory is changed).This commit adds the same canonicalization to default targets specified in a
build.target
key in a.cargo/config
file by adding a newConfig::target_triple
function.