aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cargo/config (renamed from ports/servo/.cargo/config)8
-rw-r--r--.gitignore3
-rwxr-xr-xports/servo/fake-ld-arm.sh2
-rwxr-xr-xports/servo/fake-ld-arm64.sh2
-rwxr-xr-xports/servo/fake-ld-armv7.sh2
-rw-r--r--python/servo/build_commands.py22
-rw-r--r--python/servo/command_base.py9
7 files changed, 29 insertions, 19 deletions
diff --git a/ports/servo/.cargo/config b/.cargo/config
index 48820a5c323..9b0e47abcd4 100644
--- a/ports/servo/.cargo/config
+++ b/.cargo/config
@@ -1,13 +1,13 @@
[target.arm-linux-androideabi]
-linker = "./fake-ld-arm.sh"
+linker = "./ports/servo/fake-ld-arm.sh"
ar = "arm-linux-androideabi-ar"
[target.armv7-linux-androideabi]
-linker = "./fake-ld-armv7.sh"
+linker = "./ports/servo/fake-ld-armv7.sh"
ar = "arm-linux-androideabi-ar"
[target.aarch64-linux-android]
-linker = "./fake-ld-arm64.sh"
+linker = "./ports/servo/fake-ld-arm64.sh"
ar = "aarch64-linux-android-ar"
[target.arm-unknown-linux-gnueabihf]
@@ -19,4 +19,4 @@ linker = "aarch64-linux-gnu-gcc"
ar = "aarch64-linux-gnu-ar"
[target.'cfg(target_os=windows)']
-linker = "./fake-ld.cmd" \ No newline at end of file
+linker = "./ports/servo/fake-ld.cmd" \ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 9083fa11036..f6cf0b30e19 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
/.servo
-/.cargo
+/.cargo/*
+!/.cargo/config.*
/.servobuild
/target
/ports/android/bin
diff --git a/ports/servo/fake-ld-arm.sh b/ports/servo/fake-ld-arm.sh
index f5b339c9b2e..db8937c3a5f 100755
--- a/ports/servo/fake-ld-arm.sh
+++ b/ports/servo/fake-ld-arm.sh
@@ -8,7 +8,7 @@ set -o errexit
set -o nounset
set -o pipefail
-source fake-ld.sh
+source ./ports/servo/fake-ld.sh
export _GCC_PARAMS="${@}"
call_gcc "arch-arm" "arm-linux-androideabi" "android-18" "armeabi"
diff --git a/ports/servo/fake-ld-arm64.sh b/ports/servo/fake-ld-arm64.sh
index 5c23f5dd877..7a59ebb697f 100755
--- a/ports/servo/fake-ld-arm64.sh
+++ b/ports/servo/fake-ld-arm64.sh
@@ -8,7 +8,7 @@ set -o errexit
set -o nounset
set -o pipefail
-source fake-ld.sh
+source ./ports/servo/fake-ld.sh
export _GCC_PARAMS="${@}"
call_gcc "arch-arm64" "aarch64-linux-android" "android-21" "arm64-v8a"
diff --git a/ports/servo/fake-ld-armv7.sh b/ports/servo/fake-ld-armv7.sh
index 12c4a8cb457..694c22a56c8 100755
--- a/ports/servo/fake-ld-armv7.sh
+++ b/ports/servo/fake-ld-armv7.sh
@@ -8,7 +8,7 @@ set -o errexit
set -o nounset
set -o pipefail
-source fake-ld.sh
+source ./ports/servo/fake-ld.sh
export _GCC_PARAMS="${@}"
call_gcc "arch-arm" "arm-linux-androideabi" "android-18" "armeabi-v7a"
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index ec20f18af5a..228e0f15049 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -176,12 +176,14 @@ class MachCommands(CommandBase):
def build(self, target=None, release=False, dev=False, jobs=None,
features=None, android=None, verbose=False, debug_mozjs=False, params=None,
with_debug_assertions=False):
+
+ opts = params or []
+ opts += ["--manifest-path", self.servo_manifest()]
+
if android is None:
android = self.config["build"]["android"]
features = features or self.servo_features()
- opts = params or []
-
base_path = self.get_target_dir()
release_path = path.join(base_path, "release", "servo")
dev_path = path.join(base_path, "debug", "servo")
@@ -318,8 +320,7 @@ class MachCommands(CommandBase):
cargo_binary = "cargo" + BIN_SUFFIX
status = call(
- [cargo_binary, "build"] + opts,
- env=env, cwd=self.servo_crate(), verbose=verbose)
+ [cargo_binary, "build"] + opts, env=env, verbose=verbose)
elapsed = time() - build_start
# Do some additional things if the build succeeded
@@ -384,6 +385,8 @@ class MachCommands(CommandBase):
ret = None
opts = []
+ opts += ["--manifest-path", self.cef_manifest()]
+
if jobs is not None:
opts += ["-j", jobs]
if verbose:
@@ -407,10 +410,7 @@ class MachCommands(CommandBase):
# common dependencies with the same flags.
opts += ["--", "-C", "link-args=-Xlinker -undefined -Xlinker dynamic_lookup"]
- with cd(path.join("ports", "cef")):
- ret = call(["cargo", "rustc"] + opts,
- env=env,
- verbose=verbose)
+ ret = call(["cargo", "rustc"] + opts, env=env, verbose=verbose)
elapsed = time() - build_start
# Generate Desktop Notification if elapsed-time > some threshold value
@@ -441,20 +441,20 @@ class MachCommands(CommandBase):
ret = None
opts = []
+ opts += ["--manifest-path", self.geckolib_manifest()]
features = []
+
if jobs is not None:
opts += ["-j", jobs]
if verbose:
opts += ["-v"]
if release:
opts += ["--release"]
-
if features:
opts += ["--features", ' '.join(features)]
build_start = time()
- with cd(path.join("ports", "geckolib")):
- ret = call(["cargo", "build"] + opts, env=env, verbose=verbose)
+ ret = call(["cargo", "build"] + opts, env=env, verbose=verbose)
elapsed = time() - build_start
# Generate Desktop Notification if elapsed-time > some threshold value
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 7dbbaa701a0..4e66ae7427e 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -545,6 +545,15 @@ class CommandBase(object):
def servo_crate(self):
return path.join(self.context.topdir, "ports", "servo")
+ def servo_manifest(self):
+ return path.join(self.context.topdir, "ports", "servo", "Cargo.toml")
+
+ def geckolib_manifest(self):
+ return path.join(self.context.topdir, "ports", "geckolib", "Cargo.toml")
+
+ def cef_manifest(self):
+ return path.join(self.context.topdir, "ports", "cef", "Cargo.toml")
+
def servo_features(self):
"""Return a list of optional features to enable for the Servo crate"""
features = []