mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-10-30 03:27:44 +00:00 
			
		
		
		
	allow using null to unset an environment variable
				
					
				
			this makes three changes: - all callsites of `toolchain::command` are changed to use `command(path, extra_env)`, instead of manually adding the env after the fact. - all `map<str, str>` are changed to `map<str, option<str>>`. - `command` checks for None and calls `env_remove` if so. this caught several places where environment variables weren't being propagated: - when running `rustc --print=target-libdir` - when running `cargo rustc -- --print=target-spec-json` - when running the custom DiscoverLinkedProjects config. I *think* this is for use with non-cargo build systems, so I didn't change it.
This commit is contained in:
		
							parent
							
								
									a09a5502c3
								
							
						
					
					
						commit
						3b964a7105
					
				
					 19 changed files with 114 additions and 91 deletions
				
			
		|  | @ -62,11 +62,10 @@ pub(crate) fn inject_rustc_tool_env(env: &mut Env, cargo_name: &str, kind: Targe | |||
| 
 | ||||
| pub(crate) fn cargo_config_env( | ||||
|     manifest: &ManifestPath, | ||||
|     extra_env: &FxHashMap<String, String>, | ||||
|     extra_env: &FxHashMap<String, Option<String>>, | ||||
|     sysroot: &Sysroot, | ||||
| ) -> Env { | ||||
|     let mut cargo_config = sysroot.tool(Tool::Cargo, manifest.parent()); | ||||
|     cargo_config.envs(extra_env); | ||||
|     let mut cargo_config = sysroot.tool(Tool::Cargo, manifest.parent(), extra_env); | ||||
|     cargo_config | ||||
|         .args(["-Z", "unstable-options", "config", "get", "env"]) | ||||
|         .env("RUSTC_BOOTSTRAP", "1"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 jyn
						jyn