Add a --build-dir
flag to rustbuild
This commit is contained in:
parent
7425fb293f
commit
79f8dc0b89
3 changed files with 11 additions and 2 deletions
|
@ -866,6 +866,7 @@ def bootstrap(help_triggered):
|
|||
|
||||
parser = argparse.ArgumentParser(description='Build rust')
|
||||
parser.add_argument('--config')
|
||||
parser.add_argument('--build-dir')
|
||||
parser.add_argument('--build')
|
||||
parser.add_argument('--color', choices=['always', 'never', 'auto'])
|
||||
parser.add_argument('--clean', action='store_true')
|
||||
|
@ -915,7 +916,7 @@ def bootstrap(help_triggered):
|
|||
|
||||
build.check_vendored_status()
|
||||
|
||||
build_dir = build.get_toml('build-dir', 'build') or 'build'
|
||||
build_dir = args.build_dir or build.get_toml('build-dir', 'build') or 'build'
|
||||
build.build_dir = os.path.abspath(build_dir)
|
||||
|
||||
with open(os.path.join(build.rust_root, "src", "stage0.json")) as f:
|
||||
|
|
|
@ -857,7 +857,7 @@ impl Config {
|
|||
let build = toml.build.unwrap_or_default();
|
||||
|
||||
set(&mut config.initial_rustc, build.rustc.map(PathBuf::from));
|
||||
set(&mut config.out, build.build_dir.map(PathBuf::from));
|
||||
set(&mut config.out, flags.build_dir.or_else(|| build.build_dir.map(PathBuf::from)));
|
||||
// NOTE: Bootstrap spawns various commands with different working directories.
|
||||
// To avoid writing to random places on the file system, `config.out` needs to be an absolute path.
|
||||
if !config.out.is_absolute() {
|
||||
|
|
|
@ -51,6 +51,7 @@ pub struct Flags {
|
|||
pub host: Option<Vec<TargetSelection>>,
|
||||
pub target: Option<Vec<TargetSelection>>,
|
||||
pub config: Option<PathBuf>,
|
||||
pub build_dir: Option<PathBuf>,
|
||||
pub jobs: Option<u32>,
|
||||
pub cmd: Subcommand,
|
||||
pub incremental: bool,
|
||||
|
@ -174,6 +175,12 @@ To learn more about a subcommand, run `./x.py <subcommand> -h`",
|
|||
opts.optflagmulti("v", "verbose", "use verbose output (-vv for very verbose)");
|
||||
opts.optflag("i", "incremental", "use incremental compilation");
|
||||
opts.optopt("", "config", "TOML configuration file for build", "FILE");
|
||||
opts.optopt(
|
||||
"",
|
||||
"build-dir",
|
||||
"Build directory, overrides `build.build-dir` in `config.toml`",
|
||||
"DIR",
|
||||
);
|
||||
opts.optopt("", "build", "build target of the stage0 compiler", "BUILD");
|
||||
opts.optmulti("", "host", "host targets to build", "HOST");
|
||||
opts.optmulti("", "target", "target targets to build", "TARGET");
|
||||
|
@ -649,6 +656,7 @@ Arguments:
|
|||
None
|
||||
},
|
||||
config: matches.opt_str("config").map(PathBuf::from),
|
||||
build_dir: matches.opt_str("build-dir").map(PathBuf::from),
|
||||
jobs: matches.opt_str("jobs").map(|j| j.parse().expect("`jobs` should be a number")),
|
||||
cmd,
|
||||
incremental: matches.opt_present("incremental"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue