aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2015-03-06 23:19:37 +0530
committerManish Goregaokar <manishsmail@gmail.com>2015-03-08 01:34:38 +0530
commitcfdad335bd2cdadb446f9e7a5fbd907506cdadbc (patch)
treead20680f34b70345c8746370a1b69695a1488946 /python
parent4f3feed2bea957de0910a136d33dff4fb3c07a22 (diff)
downloadservo-cfdad335bd2cdadb446f9e7a5fbd907506cdadbc.tar.gz
servo-cfdad335bd2cdadb446f9e7a5fbd907506cdadbc.zip
Add support for $CARGO_HOME in servobuild
Diffstat (limited to 'python')
-rw-r--r--python/servo/command_base.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 4bcae97c11b..b8474c85044 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -51,6 +51,13 @@ class CommandBase(object):
def __init__(self, context):
self.context = context
+ def resolverelative(category, key):
+ # Allow ~
+ self.config[category][key] = path.expanduser(self.config[category][key])
+ # Resolve relative paths
+ self.config[category][key] = path.join(context.topdir,
+ self.config[category][key])
+
if not hasattr(self.context, "bootstrapped"):
self.context.bootstrapped = False
@@ -64,8 +71,13 @@ class CommandBase(object):
self.config.setdefault("tools", {})
self.config["tools"].setdefault("cache-dir",
path.join(context.topdir, ".servo"))
- # Allow "~" in cache-dir
- context.sharedir = path.expanduser(self.config["tools"]["cache-dir"])
+ resolverelative("tools", "cache-dir")
+
+ self.config["tools"].setdefault("cargo-home-dir",
+ path.join(context.topdir, ".cargo"))
+ resolverelative("tools", "cargo-home-dir")
+
+ context.sharedir = self.config["tools"]["cache-dir"]
self.config["tools"].setdefault("system-rust", False)
self.config["tools"].setdefault("system-cargo", False)
@@ -126,6 +138,10 @@ class CommandBase(object):
if extra_path:
env["PATH"] = "%s%s%s" % (
os.pathsep.join(extra_path), os.pathsep, env["PATH"])
+
+ if "CARGO_HOME" not in env:
+ env["CARGO_HOME"] = self.config["tools"]["cargo-home-dir"]
+
if extra_lib:
if sys.platform == "darwin":
env["DYLD_LIBRARY_PATH"] = "%s%s%s" % \