Add unstable rustc-check-cfg build script output#10539
Add unstable rustc-check-cfg build script output#10539bors merged 4 commits intorust-lang:masterfrom
rustc-check-cfg build script output#10539Conversation
|
r? @ehuss (rust-highfive has picked a reviewer for you, use r? to override) |
|
☔ The latest upstream changes (presumably #10486) made this pull request unmergeable. Please resolve the merge conflicts. |
3679ccc to
637a7a5
Compare
|
☔ The latest upstream changes (presumably #10609) made this pull request unmergeable. Please resolve the merge conflicts. |
637a7a5 to
ca984f6
Compare
|
☔ The latest upstream changes (presumably #10611) made this pull request unmergeable. Please resolve the merge conflicts. |
ca984f6 to
9d5c359
Compare
ehuss
left a comment
There was a problem hiding this comment.
This doesn't seem to pass the --check-cfg flag to rustdoc, was that intentional?
9d5c359 to
76fff18
Compare
No, not at all. Fixed and added a test for it. I also fixed or responded to the review comments. |
100429f to
63ee29f
Compare
src/cargo/core/compiler/mod.rs
Outdated
There was a problem hiding this comment.
I'd like to see a little bit of cleanup to add the --cfg flag handling in rustc and rustdoc. It looks like there is a bit of duplication and inconsistency around handling build-script flags (like --cfg, --check-cfg, and env).
A rough outline of the changes I'm thinking:
- Add a new function to
cargo::core::compilerthat will handle adding these common flags. I think it might have the signature of something likefn add_custom_flags(cmd: &mut ProcessBuilder, build_script_outputs: &BuildScriptOutputs, metadata: Option<Metadata>) - Move all of
add_custom_envto that function. - Move all of
--cfgflag handling to that function. - Move all of
--check-cfgflag handling to that function. - Use that function in both
rustcandrustdocremoving the duplicate code.
How does that sound?
There was a problem hiding this comment.
@ehuss Sound good. Do you want to do it in this PR or as a follow-up ? (I feel like it doesn't really make sense to do it in this PR, but your call)
There was a problem hiding this comment.
Here is good because it is adding the --check-cfg arg.
There was a problem hiding this comment.
Done (expect for doc-tests because of it's specificity that make it unable to use the new function).
63ee29f to
276c6d1
Compare
|
Thanks! @bors r+ |
|
📌 Commit f2a1e43 has been approved by |
|
☀️ Test successful - checks-actions |
Update cargo 10 commits in a4c1cd0eb6b18082a7e693f5a665548fe1534be4..39ad1039d9e3e1746177bf5d134af4c164f95528 2022-05-20 00:55:25 +0000 to 2022-05-25 00:50:02 +0000 * doc: discuss build script instruction order (rust-lang/cargo#10600) * Require http-registry URLs to end with a '/' (rust-lang/cargo#10698) * No printing executable names when running tests and benchmarks with json message format (rust-lang/cargo#10691) * Restore proper error for crate not in local reg (rust-lang/cargo#10683) * Update libcurl (rust-lang/cargo#10696) * Fixed small typos (rust-lang/cargo#10693) * fix bugs with `workspace` key and `update_toml` (rust-lang/cargo#10685) * Bump to 0.64.0, update changelog (rust-lang/cargo#10687) * List C compiler as a build dependency in README (rust-lang/cargo#10678) * Add unstable `rustc-check-cfg` build script output (rust-lang/cargo#10539) r? `@ehuss`
…weihanglo Fix panic when running cargo tree on a package with a cross compiled bindep ### What does this PR try to resolve? This is an attempt to close out `@rukai's` [PR](#13207 (comment)) for #12358 and #10593 by adjusting the new integration test and resolving merge conflicts. I have also separated the changes into atomic commits as per [previous review](#13207 (comment)). ### How should we test and review this PR? The integration test that has been edited here is sufficient, plus the new integration test that confirms a more specific case where `cargo tree` throws an error. ### Additional information I have confirmed the test `artifact_dep_target_specified` fails on master branch and succeeds on this branch. The first commit fixes the panic and the integration test. Commits 2 and 3 add other tests that confirm behaviour mentioned in related issues. Commits: 1. [Fix panic when running cargo tree on a package with a cross compiled bindep](5c5ea78) - fixes some panics and changes the integration test to succeed 2. [test: cargo tree panic on artifact dep target deactivated](ed294ab) - adds test to confirm the behaviour for the specific panic from [#10539 (comment)](#10593 (comment))
This PR adds a new build script output as unstable behind
-Zcheck-cfg=output:rustc-check-cfg.What does this PR try to resolve?
This PR add a way to add to use the unstable
--check-cfgcommand line option ofrustcandrustdoc.It was discover in Bump bootstrap compiler to 1.61.0 beta that
rustc_llvmsets some customcfgfrom a build script and because--check-cfg=values()is globally enable in the Rust codebase that cause the compilation to fail. For now no values are checked in stage 0 for the entire codebase which is a shame and should be fixed with the addition of this feature.How should we test and review this PR?
Commits are separated in: implementation, tests and doc.
Testing should simply be done by adding a valid
cargo:rustc-check-cfgin a build script.Watch the added tests or doc to have an example.
Additional information
This PR is also the logical next step after
-Zcheck-cfg-features.