diff options
-rw-r--r-- | .cargo/config (renamed from ports/servo/.cargo/config) | 8 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rwxr-xr-x | ports/servo/fake-ld-arm.sh | 2 | ||||
-rwxr-xr-x | ports/servo/fake-ld-arm64.sh | 2 | ||||
-rwxr-xr-x | ports/servo/fake-ld-armv7.sh | 2 | ||||
-rw-r--r-- | python/servo/build_commands.py | 22 | ||||
-rw-r--r-- | python/servo/command_base.py | 9 |
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 = [] |