author | Chris Manchester <cmanchester@mozilla.com> |
Wed, 20 Sep 2017 12:43:14 -0700 | |
changeset 431610 | 82f0e87bd0ef416dd878f992ab6a61376060d45a |
parent 431609 | 26f3a378ff0e95a74320d1dbe905776e30b67bda |
child 431611 | 300708364bfb309249b537f652887d0518ca1df2 |
push id | 7785 |
push user | ryanvm@gmail.com |
push date | Thu, 21 Sep 2017 13:39:55 +0000 |
treeherder | mozilla-beta@06d4034a8a03 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | glandium |
bugs | 1398897 |
milestone | 57.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
|
python/mozbuild/mozbuild/frontend/emitter.py | file | annotate | diff | comparison | revisions | |
python/mozbuild/mozbuild/test/frontend/test_emitter.py | file | annotate | diff | comparison | revisions |
--- a/python/mozbuild/mozbuild/frontend/emitter.py +++ b/python/mozbuild/mozbuild/frontend/emitter.py @@ -754,17 +754,22 @@ class TreeMetadataEmitter(LoggingMixin): lib.lib_defines.update(lib_defines) # Only emit sources if we have linkables defined in the same context. # Note the linkables are not emitted in this function, but much later, # after aggregation (because of e.g. USE_LIBS processing). if not (linkables or host_linkables): return - self._compile_dirs.add(context.objdir) + # Avoid emitting compile flags for directories only containing rust + # libraries. Emitted compile flags are only relevant to C/C++ sources + # for the time being. + if not all(isinstance(l, (RustLibrary, HostRustLibrary)) + for l in linkables + host_linkables): + self._compile_dirs.add(context.objdir) sources = defaultdict(list) gen_sources = defaultdict(list) all_flags = {} for symbol in ('SOURCES', 'HOST_SOURCES', 'UNIFIED_SOURCES'): srcs = sources[symbol] gen_srcs = gen_sources[symbol] context_srcs = context.get(symbol, [])
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py +++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py @@ -1089,19 +1089,18 @@ class TestEmitterBasic(unittest.TestCase self.read_topsrcdir(reader) def test_rust_library_dash_folding(self): '''Test that on-disk names of RustLibrary objects convert dashes to underscores.''' reader = self.reader('rust-library-dash-folding', extra_substs=dict(RUST_TARGET='i686-pc-windows-msvc')) objs = self.read_topsrcdir(reader) - self.assertEqual(len(objs), 2) - flags, lib = objs - self.assertIsInstance(flags, ComputedFlags) + self.assertEqual(len(objs), 1) + lib = objs[0] self.assertIsInstance(lib, RustLibrary) self.assertRegexpMatches(lib.lib_name, "random_crate") self.assertRegexpMatches(lib.import_name, "random_crate") self.assertRegexpMatches(lib.basename, "random-crate") def test_multiple_rust_libraries(self): '''Test that linking multiple Rust libraries throws an error''' reader = self.reader('multiple-rust-libraries', @@ -1110,19 +1109,18 @@ class TestEmitterBasic(unittest.TestCase 'Cannot link multiple Rust libraries'): self.read_topsrcdir(reader) def test_rust_library_features(self): '''Test that RustLibrary features are correctly emitted.''' reader = self.reader('rust-library-features', extra_substs=dict(RUST_TARGET='i686-pc-windows-msvc')) objs = self.read_topsrcdir(reader) - self.assertEqual(len(objs), 2) - flags, lib = objs - self.assertIsInstance(flags, ComputedFlags) + self.assertEqual(len(objs), 1) + lib = objs[0] self.assertIsInstance(lib, RustLibrary) self.assertEqual(lib.features, ['musthave', 'cantlivewithout']) def test_rust_library_duplicate_features(self): '''Test that duplicate RustLibrary features are rejected.''' reader = self.reader('rust-library-duplicate-features') with self.assertRaisesRegexp(SandboxValidationError, 'features for .* should not contain duplicates'): @@ -1181,29 +1179,29 @@ class TestEmitterBasic(unittest.TestCase self.assertEqual(objs[0].name, 'some') def test_host_rust_libraries(self): '''Test HOST_RUST_LIBRARIES emission.''' reader = self.reader('host-rust-libraries', extra_substs=dict(RUST_HOST_TARGET='i686-pc-windows-msvc', HOST_BIN_SUFFIX='.exe')) objs = self.read_topsrcdir(reader) - self.assertEqual(len(objs), 2) - self.assertIsInstance(objs[1], HostRustLibrary) - self.assertRegexpMatches(objs[1].lib_name, 'host_lib') - self.assertRegexpMatches(objs[1].import_name, 'host_lib') + self.assertEqual(len(objs), 1) + self.assertIsInstance(objs[0], HostRustLibrary) + self.assertRegexpMatches(objs[0].lib_name, 'host_lib') + self.assertRegexpMatches(objs[0].import_name, 'host_lib') def test_crate_dependency_path_resolution(self): '''Test recursive dependencies resolve with the correct paths.''' reader = self.reader('crate-dependency-path-resolution', extra_substs=dict(RUST_TARGET='i686-pc-windows-msvc')) objs = self.read_topsrcdir(reader) - self.assertEqual(len(objs), 2) - self.assertIsInstance(objs[1], RustLibrary) + self.assertEqual(len(objs), 1) + self.assertIsInstance(objs[0], RustLibrary) def test_android_res_dirs(self): """Test that ANDROID_RES_DIRS works properly.""" reader = self.reader('android-res-dirs') objs = self.read_topsrcdir(reader) self.assertEqual(len(objs), 1) self.assertIsInstance(objs[0], AndroidResDirs)