aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJinank Jain <ug201210017@iitj.ac.in>2015-05-06 15:33:28 +0200
committerMatt Brubeck <mbrubeck@limpet.net>2015-05-13 09:25:43 -0700
commitc98d55fe28596b2ea62a8b3dcc87ec306143cff2 (patch)
tree5412a47b567ecaff8298b98dd76addc203cb0acd
parentb3b9deafa7ed87bd0649849f3aa729f21c4ff45d (diff)
downloadservo-c98d55fe28596b2ea62a8b3dcc87ec306143cff2.tar.gz
servo-c98d55fe28596b2ea62a8b3dcc87ec306143cff2.zip
Add --dev option to mach build
Require either --dev or --release, unless a default build.mode is set in .servobuild. Fixes #5933.
-rw-r--r--README.md9
-rw-r--r--python/servo/build_commands.py14
-rw-r--r--python/servo/command_base.py2
-rw-r--r--servobuild.example3
4 files changed, 24 insertions, 4 deletions
diff --git a/README.md b/README.md
index 12697350369..b395e17f6d5 100644
--- a/README.md
+++ b/README.md
@@ -74,15 +74,18 @@ Mach tools to orchestrate the build and other tasks.
### Normal build
+
+To build Servo in development mode. This is useful for development, but
+the resulting binary is very slow.
+
``` sh
git clone https://github.com/servo/servo
cd servo
-./mach build
+./mach build --dev
./mach run tests/html/about-mozilla.html
```
-By default, Servo builds in debug mode. This is useful for development, but
-the resulting binary is very slow. For benchmarking, performance testing, or
+For benchmarking, performance testing, or
real-world use, add the `--release` flag to create an optimized build:
``` sh
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index 5d5da3298fe..b4b75b64c66 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -106,6 +106,20 @@ class MachCommands(CommandBase):
opts = params or []
features = []
+ if not (release or dev):
+ if self.config["build"]["mode"] == "dev":
+ dev = True
+ elif self.config["build"]["mode"] == "release":
+ release = True
+ else:
+ print("Please specify either --dev (-d) for a development")
+ print(" build, or --release (-r) for an optimized build.")
+ sys.exit(1)
+
+ if release and dev:
+ print("Please specify either --dev or --release.")
+ sys.exit(1)
+
if release:
opts += ["--release"]
if target:
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 8047bf44179..a46fd21dfc1 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -93,7 +93,7 @@ class CommandBase(object):
self.config.setdefault("build", {})
self.config["build"].setdefault("android", False)
-
+ self.config["build"].setdefault("mode", "")
self.config["build"].setdefault("debug-mozjs", False)
self.config.setdefault("android", {})
diff --git a/servobuild.example b/servobuild.example
index 1396c73126e..a29ec9aaf27 100644
--- a/servobuild.example
+++ b/servobuild.example
@@ -23,6 +23,9 @@ system-cargo = false
cargo-root = "/path/to/cargo"
[build]
+# Set "mode = dev" or use `mach build --dev` to build the project with warning.
+# or Set "mode = release" or use `mach build --release` for optimized build.
+mode = "dev"
# Set "android = true" or use `mach build --android` to build the Android app.
android = false
# Set "debug-mozjs" or use `mach build --debug-mozjs` to build a debug spidermonkey.