aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo
diff options
context:
space:
mode:
Diffstat (limited to 'python/servo')
-rw-r--r--python/servo/build_commands.py3
-rw-r--r--python/servo/command_base.py6
-rw-r--r--python/servo/devenv_commands.py33
3 files changed, 39 insertions, 3 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index a8cb0f9e4a9..48de80811ee 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -416,9 +416,8 @@ class MachCommands(CommandBase):
self.set_use_stable_rust()
self.ensure_bootstrapped()
- env = self.build_env(is_build=True)
+ env = self.build_env(is_build=True, geckolib=True)
geckolib_build_path = path.join(self.context.topdir, "target", "geckolib").encode("UTF-8")
- env["CARGO_TARGET_DIR"] = geckolib_build_path
ret = None
opts = []
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 8db1209a6e4..2dbeff53bfb 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -382,7 +382,7 @@ class CommandBase(object):
" --release" if release else ""))
sys.exit()
- def build_env(self, hosts_file_path=None, target=None, is_build=False):
+ def build_env(self, hosts_file_path=None, target=None, is_build=False, geckolib=False):
"""Return an extended environment dictionary."""
env = os.environ.copy()
if sys.platform == "win32" and type(env['PATH']) == unicode:
@@ -519,6 +519,10 @@ class CommandBase(object):
env['GIT_INFO'] = '-'.join(git_info)
+ if geckolib:
+ geckolib_build_path = path.join(self.context.topdir, "target", "geckolib").encode("UTF-8")
+ env["CARGO_TARGET_DIR"] = geckolib_build_path
+
return env
def servo_crate(self):
diff --git a/python/servo/devenv_commands.py b/python/servo/devenv_commands.py
index bb5ed6d2704..8fde8e3b361 100644
--- a/python/servo/devenv_commands.py
+++ b/python/servo/devenv_commands.py
@@ -38,6 +38,24 @@ class MachCommands(CommandBase):
return call(["cargo"] + params, env=self.build_env())
return call(['cargo'] + params, env=self.build_env())
+ @Command('cargo-geckolib',
+ description='Run Cargo with the same compiler version and root crate as build-geckolib',
+ category='devenv')
+ @CommandArgument(
+ 'params', default=None, nargs='...',
+ help="Command-line arguments to be passed through to Cargo")
+ def cargo_geckolib(self, params):
+ if not params:
+ params = []
+
+ self.set_use_stable_rust()
+ env = self.build_env(geckolib=True)
+
+ if self.context.topdir == getcwd():
+ with cd(path.join('ports', 'geckolib')):
+ return call(["cargo"] + params, env=env)
+ return call(['cargo'] + params, env=env)
+
@Command('cargo-update',
description='Same as update-cargo',
category='devenv')
@@ -97,6 +115,21 @@ class MachCommands(CommandBase):
params = []
return call(["rustc"] + params, env=self.build_env())
+ @Command('rustc-geckolib',
+ description='Run the Rust compiler with the same compiler version and root crate as build-geckolib',
+ category='devenv')
+ @CommandArgument(
+ 'params', default=None, nargs='...',
+ help="Command-line arguments to be passed through to rustc")
+ def rustc_geckolib(self, params):
+ if params is None:
+ params = []
+
+ self.set_use_stable_rust()
+ env = self.build_env(geckolib=True)
+
+ return call(["rustc"] + params, env=env)
+
@Command('rust-root',
description='Print the path to the root of the Rust compiler',
category='devenv')