Skip to content

Commit

Permalink
Add a --build-dir flag to rustbuild
Browse files Browse the repository at this point in the history
  • Loading branch information
thomcc committed Jun 30, 2022
1 parent 7425fb2 commit 79f8dc0
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/bootstrap/bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
8 changes: 8 additions & 0 deletions src/bootstrap/flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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"),
Expand Down

0 comments on commit 79f8dc0

Please sign in to comment.