Support extra-verbose builds:
- The bootstrap crate currently passes -v to Cargo if itself invoked with -vv. But Cargo supports -vv (to show build script output), so make bootstrap pass that if itself invoked with -vvv. (More specifically, pass N '-v's to Cargo if invoked with N+1 of them.) - bootstrap.py currently tries to pass on up to two '-v's to cargo when building bootstrap, but incorrectly ('-v' is marked as 'store_true', so argparse stores either False or True, ignoring multiple '-v's). Fix this, allow passing any number of '-v's, and make it consistent with bootstrap's invocation of Cargo (i.e. subtract one from the number of '-v's). - Also improve bootstrap.py's config.toml 'parsing' to support arbitrary verbosity levels, + allow command line to override it.
This commit is contained in:
parent
178becdd7c
commit
ec49234f44
4 changed files with 7 additions and 14 deletions
|
@ -597,10 +597,8 @@ class RustBuild(object):
|
||||||
self.cargo()))
|
self.cargo()))
|
||||||
args = [self.cargo(), "build", "--manifest-path",
|
args = [self.cargo(), "build", "--manifest-path",
|
||||||
os.path.join(self.rust_root, "src/bootstrap/Cargo.toml")]
|
os.path.join(self.rust_root, "src/bootstrap/Cargo.toml")]
|
||||||
if self.verbose:
|
for _ in range(1, self.verbose):
|
||||||
args.append("--verbose")
|
args.append("--verbose")
|
||||||
if self.verbose > 1:
|
|
||||||
args.append("--verbose")
|
|
||||||
if self.use_locked_deps:
|
if self.use_locked_deps:
|
||||||
args.append("--locked")
|
args.append("--locked")
|
||||||
if self.use_vendored_sources:
|
if self.use_vendored_sources:
|
||||||
|
@ -675,7 +673,7 @@ def bootstrap(help_triggered):
|
||||||
parser.add_argument('--config')
|
parser.add_argument('--config')
|
||||||
parser.add_argument('--build')
|
parser.add_argument('--build')
|
||||||
parser.add_argument('--clean', action='store_true')
|
parser.add_argument('--clean', action='store_true')
|
||||||
parser.add_argument('-v', '--verbose', action='store_true')
|
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||||
|
|
||||||
args = [a for a in sys.argv if a != '-h' and a != '--help']
|
args = [a for a in sys.argv if a != '-h' and a != '--help']
|
||||||
args, _ = parser.parse_known_args(args)
|
args, _ = parser.parse_known_args(args)
|
||||||
|
@ -691,10 +689,9 @@ def bootstrap(help_triggered):
|
||||||
except (OSError, IOError):
|
except (OSError, IOError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if '\nverbose = 2' in build.config_toml:
|
match = re.search(r'\nverbose = (\d+)', build.config_toml)
|
||||||
build.verbose = 2
|
if match is not None:
|
||||||
elif '\nverbose = 1' in build.config_toml:
|
build.verbose = max(build.verbose, int(match.group(1)))
|
||||||
build.verbose = 1
|
|
||||||
|
|
||||||
build.use_vendored_sources = '\nvendor = true' in build.config_toml
|
build.use_vendored_sources = '\nvendor = true' in build.config_toml
|
||||||
|
|
||||||
|
|
|
@ -763,7 +763,7 @@ impl<'a> Builder<'a> {
|
||||||
cargo.env("WINAPI_NO_BUNDLED_LIBRARIES", "1");
|
cargo.env("WINAPI_NO_BUNDLED_LIBRARIES", "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.is_very_verbose() {
|
for _ in 1..self.verbosity {
|
||||||
cargo.arg("-v");
|
cargo.arg("-v");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ use cache::{Interned, INTERNER};
|
||||||
|
|
||||||
/// Deserialized version of all flags for this compile.
|
/// Deserialized version of all flags for this compile.
|
||||||
pub struct Flags {
|
pub struct Flags {
|
||||||
pub verbose: usize, // verbosity level: 0 == not verbose, 1 == verbose, 2 == very verbose
|
pub verbose: usize, // number of -v args; each extra -v after the first is passed to Cargo
|
||||||
pub on_fail: Option<String>,
|
pub on_fail: Option<String>,
|
||||||
pub stage: Option<u32>,
|
pub stage: Option<u32>,
|
||||||
pub keep_stage: Option<u32>,
|
pub keep_stage: Option<u32>,
|
||||||
|
|
|
@ -605,10 +605,6 @@ impl Build {
|
||||||
self.verbosity > 0
|
self.verbosity > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_very_verbose(&self) -> bool {
|
|
||||||
self.verbosity > 1
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Prints a message if this build is configured in verbose mode.
|
/// Prints a message if this build is configured in verbose mode.
|
||||||
fn verbose(&self, msg: &str) {
|
fn verbose(&self, msg: &str) {
|
||||||
if self.is_verbose() {
|
if self.is_verbose() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue