mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 21:05:02 +00:00
Allow sysroots to only consist of the source root dir
This commit is contained in:
parent
5717622c95
commit
bd37e2790b
18 changed files with 277 additions and 361 deletions
|
@ -65,7 +65,7 @@ impl WorkspaceBuildScripts {
|
|||
allowed_features: &FxHashSet<String>,
|
||||
manifest_path: &ManifestPath,
|
||||
toolchain: Option<&Version>,
|
||||
sysroot: Option<&Sysroot>,
|
||||
sysroot: &Sysroot,
|
||||
) -> io::Result<Command> {
|
||||
const RUST_1_75: Version = Version::new(1, 75, 0);
|
||||
let mut cmd = match config.run_build_script_command.as_deref() {
|
||||
|
@ -75,7 +75,7 @@ impl WorkspaceBuildScripts {
|
|||
cmd
|
||||
}
|
||||
_ => {
|
||||
let mut cmd = Sysroot::tool(sysroot, Tool::Cargo);
|
||||
let mut cmd = sysroot.tool(Tool::Cargo);
|
||||
|
||||
cmd.args(["check", "--quiet", "--workspace", "--message-format=json"]);
|
||||
cmd.args(&config.extra_args);
|
||||
|
@ -149,7 +149,7 @@ impl WorkspaceBuildScripts {
|
|||
workspace: &CargoWorkspace,
|
||||
progress: &dyn Fn(String),
|
||||
toolchain: Option<&Version>,
|
||||
sysroot: Option<&Sysroot>,
|
||||
sysroot: &Sysroot,
|
||||
) -> io::Result<WorkspaceBuildScripts> {
|
||||
let current_dir = match &config.invocation_location {
|
||||
InvocationLocation::Root(root) if config.run_build_script_command.is_some() => {
|
||||
|
@ -195,7 +195,7 @@ impl WorkspaceBuildScripts {
|
|||
// This is not gonna be used anyways, so just construct a dummy here
|
||||
&ManifestPath::try_from(workspace_root.clone()).unwrap(),
|
||||
None,
|
||||
None,
|
||||
&Sysroot::empty(),
|
||||
)?;
|
||||
// NB: Cargo.toml could have been modified between `cargo metadata` and
|
||||
// `cargo check`. We shouldn't assume that package ids we see here are
|
||||
|
@ -412,7 +412,7 @@ impl WorkspaceBuildScripts {
|
|||
rustc: &CargoWorkspace,
|
||||
current_dir: &AbsPath,
|
||||
extra_env: &FxHashMap<String, String>,
|
||||
sysroot: Option<&Sysroot>,
|
||||
sysroot: &Sysroot,
|
||||
) -> Self {
|
||||
let mut bs = WorkspaceBuildScripts::default();
|
||||
for p in rustc.packages() {
|
||||
|
@ -420,7 +420,7 @@ impl WorkspaceBuildScripts {
|
|||
}
|
||||
let res = (|| {
|
||||
let target_libdir = (|| {
|
||||
let mut cargo_config = Sysroot::tool(sysroot, Tool::Cargo);
|
||||
let mut cargo_config = sysroot.tool(Tool::Cargo);
|
||||
cargo_config.envs(extra_env);
|
||||
cargo_config
|
||||
.current_dir(current_dir)
|
||||
|
@ -429,7 +429,7 @@ impl WorkspaceBuildScripts {
|
|||
if let Ok(it) = utf8_stdout(cargo_config) {
|
||||
return Ok(it);
|
||||
}
|
||||
let mut cmd = Sysroot::tool(sysroot, Tool::Rustc);
|
||||
let mut cmd = sysroot.tool(Tool::Rustc);
|
||||
cmd.envs(extra_env);
|
||||
cmd.args(["--print", "target-libdir"]);
|
||||
utf8_stdout(cmd)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue