Skip to content

Commit 17a81b4

Browse files
committed
Use std::env::{split,join}_paths
1 parent df7a627 commit 17a81b4

File tree

1 file changed

+13
-19
lines changed
  • src/tools/run-make-support/src

1 file changed

+13
-19
lines changed

src/tools/run-make-support/src/lib.rs

+13-19
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::env;
2-
use std::path::PathBuf;
2+
use std::path::{Path, PathBuf};
33
use std::process::{Command, Output};
44

55
fn setup_common_build_cmd() -> Command {
@@ -88,36 +88,30 @@ impl AuxBuildInvocationBuilder {
8888
}
8989
}
9090

91-
fn path_sep(target: &str) -> char {
92-
if target.contains("windows") { ';' } else { ':' }
93-
}
94-
9591
fn run_common(bin_name: &str) -> (Command, Output) {
96-
let target = std::env::var("TARGET").unwrap();
92+
let target = env::var("TARGET").unwrap();
9793

9894
let bin_name =
9995
if target.contains("windows") { format!("{}.exe", bin_name) } else { bin_name.to_owned() };
10096

10197
let mut bin_path = PathBuf::new();
102-
bin_path.push(std::env::var("TMPDIR").unwrap());
98+
bin_path.push(env::var("TMPDIR").unwrap());
10399
bin_path.push(&bin_name);
104-
let ld_lib_path_envvar = std::env::var("LD_LIB_PATH_ENVVAR").unwrap();
100+
let ld_lib_path_envvar = env::var("LD_LIB_PATH_ENVVAR").unwrap();
105101
let mut cmd = Command::new(bin_path);
106102
cmd.env(&ld_lib_path_envvar, {
107-
let mut target_rpath_env_path = String::new();
108-
target_rpath_env_path.push_str(&std::env::var("TMPDIR").unwrap());
109-
target_rpath_env_path.push(path_sep(&target));
110-
target_rpath_env_path.push_str(&std::env::var("TARGET_RPATH_ENV").unwrap());
111-
target_rpath_env_path.push(path_sep(&target));
112-
target_rpath_env_path.push_str(&std::env::var(&ld_lib_path_envvar).unwrap());
113-
target_rpath_env_path
103+
let mut paths = vec![];
104+
paths.push(Path::new(&env::var("TMPDIR").unwrap()));
105+
paths.extend(env::split_paths(&env::var("TARGET_RPATH_ENV").unwrap()));
106+
paths.extend(env::split_paths(&env::var(&ld_lib_path_envvar).unwrap()));
107+
env::join_paths(paths.iter()).unwrap()
114108
});
115109

116110
if target.contains("windows") {
117-
let mut path = std::env::var("PATH").unwrap_or(String::new());
118-
path.push(path_sep(&target));
119-
path.push_str(&std::env::var("TARGET_RPATH_DIR").unwrap());
120-
cmd.env("PATH", &path);
111+
let mut paths = vec![];
112+
paths.extend(env::split_paths(&std::env::var("PATH").unwrap_or(String::new())));
113+
paths.push(Path::new(&std::env::var("TARGET_RPATH_DIR").unwrap()));
114+
cmd.env("PATH", env::join_paths(paths.iter()).unwrap());
121115
}
122116

123117
let output = cmd.output().unwrap();

0 commit comments

Comments
 (0)