From a0ae81610d06ee58efe855260d190b2fa4e49db8 Mon Sep 17 00:00:00 2001 From: tigercosmos Date: Wed, 25 Oct 2017 23:31:21 +0800 Subject: [PATCH] Print the full path for errors occurring in the servo crate --- {ports/servo/.cargo => .cargo}/config | 8 ++++---- .gitignore | 3 ++- ports/servo/fake-ld-arm.sh | 2 +- ports/servo/fake-ld-arm64.sh | 2 +- ports/servo/fake-ld-armv7.sh | 2 +- python/servo/build_commands.py | 22 +++++++++++----------- python/servo/command_base.py | 9 +++++++++ 7 files changed, 29 insertions(+), 19 deletions(-) rename {ports/servo/.cargo => .cargo}/config (72%) diff --git a/ports/servo/.cargo/config b/.cargo/config similarity index 72% rename from ports/servo/.cargo/config rename to .cargo/config index 48820a5c3238..9b0e47abcd45 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 9083fa110362..f6cf0b30e19c 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 f5b339c9b2e8..db8937c3a5f1 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 5c23f5dd8777..7a59ebb697fc 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 12c4a8cb4575..694c22a56c87 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 ec20f18af5a3..228e0f15049b 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 @@ def build(self, target=None, release=False, dev=False, jobs=None, 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 @@ def build_cef(self, jobs=None, verbose=False, release=False, ret = None opts = [] + opts += ["--manifest-path", self.cef_manifest()] + if jobs is not None: opts += ["-j", jobs] if verbose: @@ -407,10 +410,7 @@ def build_cef(self, jobs=None, verbose=False, release=False, # 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 @@ def build_geckolib(self, jobs=None, verbose=False, release=False): 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 7dbbaa701a0e..4e66ae7427ef 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -545,6 +545,15 @@ def package_dir(package): 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 = []