Auto merge of #14025 - iamrohit7:debug-assertions, r=Wafflespeanut

Add --with-debug-assertions flag for Mach

I tested out building a release with the flag and added a `debug_assert!(false)` in `fn main` and it panicked.
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14009  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are manually tested

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14025)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-11-05 22:57:44 -05:00 committed by GitHub
commit dbce416ad4
2 changed files with 17 additions and 13 deletions

View file

@ -153,8 +153,13 @@ class MachCommands(CommandBase):
help='Print verbose output')
@CommandArgument('params', nargs='...',
help="Command-line arguments to be passed through to Cargo")
@CommandArgument('--with-debug-assertions',
default=None,
action='store_true',
help='Enable debug assertions in release')
def build(self, target=None, release=False, dev=False, jobs=None,
features=None, android=None, verbose=False, debug_mozjs=False, params=None):
features=None, android=None, verbose=False, debug_mozjs=False, params=None,
with_debug_assertions=False):
if android is None:
android = self.config["build"]["android"]
features = features or self.servo_features()
@ -217,10 +222,7 @@ class MachCommands(CommandBase):
build_start = time()
env = self.build_env(target=target, is_build=True)
# TODO: If this ends up making it, we should probably add a
# --release-with-debug-assertions option or similar, so it's easier to
# build locally.
if env.get("SERVO_ENABLE_DEBUG_ASSERTIONS", None):
if with_debug_assertions:
env["RUSTFLAGS"] = "-C debug_assertions"
if android:
@ -339,7 +341,12 @@ class MachCommands(CommandBase):
@CommandArgument('--release', '-r',
action='store_true',
help='Build in release mode')
def build_cef(self, jobs=None, verbose=False, release=False):
@CommandArgument('--with-debug-assertions',
default=None,
action='store_true',
help='Enable debug assertions in release')
def build_cef(self, jobs=None, verbose=False, release=False,
with_debug_assertions=False):
self.ensure_bootstrapped()
ret = None
@ -358,10 +365,7 @@ class MachCommands(CommandBase):
build_start = time()
env = self.build_env(is_build=True)
# TODO: If this ends up making it, we should probably add a
# --release-with-debug-assertions option or similar, so it's easier to
# build locally.
if env.get("SERVO_ENABLE_DEBUG_ASSERTIONS", None):
if with_debug_assertions:
env["RUSTFLAGS"] = "-C debug_assertions"
with cd(path.join("ports", "cef")):