author | Nathan Froyd <froydnj@mozilla.com> |
Thu, 23 Feb 2017 10:35:07 -0500 | |
changeset 344594 | 7b63c26dd7c1776c35b6fb9afbe5a90f980e4147 |
parent 344593 | 8fad3aa8fd4661df1fd0eb23c78849aa55dacaac |
child 344595 | 17b7f6a479363762110c33625771be609be00990 |
push id | 31414 |
push user | cbook@mozilla.com |
push date | Fri, 24 Feb 2017 10:47:41 +0000 |
treeherder | mozilla-central@be661bae6cb9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | chmanchester |
bugs | 1302704 |
milestone | 54.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/config/rules.mk +++ b/config/rules.mk @@ -931,17 +931,17 @@ rustflags = -C opt-level=0 # to explicitly disable them when MOZ_DEBUG is not set. ifndef MOZ_DEBUG rustflags += -C debug-assertions=no endif rustflags_override = RUSTFLAGS='$(rustflags)' endif CARGO_BUILD = env $(rustflags_override) \ - CARGO_TARGET_DIR=. \ + CARGO_TARGET_DIR=$(CARGO_TARGET_DIR) \ RUSTC=$(RUSTC) \ MOZ_DIST=$(ABS_DIST) \ LIBCLANG_PATH=$(MOZ_LIBCLANG_PATH) \ CLANG_PATH=$(MOZ_CLANG_PATH) \ PKG_CONFIG_ALLOW_CROSS=1 \ $(CARGO) build $(cargo_build_flags) ifdef RUST_LIBRARY_FILE
--- a/python/mozbuild/mozbuild/backend/recursivemake.py +++ b/python/mozbuild/mozbuild/backend/recursivemake.py @@ -1072,16 +1072,17 @@ class RecursiveMakeBackend(CommonBackend def _process_host_program(self, program, backend_file): backend_file.write('HOST_PROGRAM = %s\n' % program) def _process_rust_program_base(self, obj, backend_file, target_variable, target_cargo_variable): backend_file.write_once('CARGO_FILE := %s\n' % obj.cargo_file) + backend_file.write_once('CARGO_TARGET_DIR := .\n') backend_file.write('%s += %s\n' % (target_variable, obj.location)) backend_file.write('%s += %s\n' % (target_cargo_variable, obj.name)) def _process_rust_program(self, obj, backend_file): self._process_rust_program_base(obj, backend_file, 'RUST_PROGRAMS', 'RUST_CARGO_PROGRAMS') @@ -1245,16 +1246,17 @@ class RecursiveMakeBackend(CommonBackend def _process_rust_library(self, libdef, backend_file): lib_var = 'RUST_LIBRARY_FILE' feature_var = 'RUST_LIBRARY_FEATURES' if isinstance(libdef, HostRustLibrary): lib_var = 'HOST_RUST_LIBRARY_FILE' feature_var = 'HOST_RUST_LIBRARY_FEATURES' backend_file.write_once('%s := %s\n' % (libdef.LIB_FILE_VAR, libdef.import_name)) backend_file.write('CARGO_FILE := $(srcdir)/Cargo.toml\n') + backend_file.write('CARGO_TARGET_DIR := .\n') if libdef.features: backend_file.write('%s := %s\n' % (libdef.FEATURES_VAR, ' '.join(libdef.features))) def _process_host_library(self, libdef, backend_file): backend_file.write('HOST_LIBRARY_NAME = %s\n' % libdef.basename) def _build_target_for_obj(self, obj): return '%s/%s' % (mozpath.relpath(obj.objdir,
--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py +++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py @@ -759,73 +759,78 @@ class TestRecursiveMakeBackend(BackendTe env = self._consume('rust-library', RecursiveMakeBackend) backend_path = mozpath.join(env.topobjdir, 'backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] expected = [ 'RUST_LIBRARY_FILE := x86_64-unknown-linux-gnu/release/libgkrust.a', 'CARGO_FILE := $(srcdir)/Cargo.toml', + 'CARGO_TARGET_DIR := .', ] self.assertEqual(lines, expected) def test_host_rust_library(self): """Test that a Rust library is written to backend.mk correctly.""" env = self._consume('host-rust-library', RecursiveMakeBackend) backend_path = mozpath.join(env.topobjdir, 'backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] expected = [ 'HOST_RUST_LIBRARY_FILE := x86_64-unknown-linux-gnu/release/libhostrusttool.a', 'CARGO_FILE := $(srcdir)/Cargo.toml', + 'CARGO_TARGET_DIR := .', ] self.assertEqual(lines, expected) def test_host_rust_library_with_features(self): """Test that a host Rust library with features is written to backend.mk correctly.""" env = self._consume('host-rust-library-features', RecursiveMakeBackend) backend_path = mozpath.join(env.topobjdir, 'backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] expected = [ 'HOST_RUST_LIBRARY_FILE := x86_64-unknown-linux-gnu/release/libhostrusttool.a', 'CARGO_FILE := $(srcdir)/Cargo.toml', + 'CARGO_TARGET_DIR := .', 'HOST_RUST_LIBRARY_FEATURES := musthave cantlivewithout', ] self.assertEqual(lines, expected) def test_rust_library_with_features(self): """Test that a Rust library with features is written to backend.mk correctly.""" env = self._consume('rust-library-features', RecursiveMakeBackend) backend_path = mozpath.join(env.topobjdir, 'backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] expected = [ 'RUST_LIBRARY_FILE := x86_64-unknown-linux-gnu/release/libgkrust.a', 'CARGO_FILE := $(srcdir)/Cargo.toml', + 'CARGO_TARGET_DIR := .', 'RUST_LIBRARY_FEATURES := musthave cantlivewithout', ] self.assertEqual(lines, expected) def test_rust_programs(self): """Test that {HOST_,}RUST_PROGRAMS are written to backend.mk correctly.""" env = self._consume('rust-programs', RecursiveMakeBackend) backend_path = mozpath.join(env.topobjdir, 'code/backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] expected = [ 'CARGO_FILE := %s/code/Cargo.toml' % env.topsrcdir, + 'CARGO_TARGET_DIR := .', 'RUST_PROGRAMS += i686-pc-windows-msvc/release/target.exe', 'RUST_CARGO_PROGRAMS += target', 'HOST_RUST_PROGRAMS += i686-pc-windows-msvc/release/host.exe', 'HOST_RUST_CARGO_PROGRAMS += host', ] self.assertEqual(lines, expected)