Граф коммитов

1885 Коммитов

Автор SHA1 Сообщение Дата
Mike Shal deedb1fd3b Bug 1305157 - Move GeneratedFile handling into its own function; r=gps
MozReview-Commit-ID: HbZBYVugj9E

--HG--
extra : rebase_source : 576aa8d93c964740f5c44a9cf151fd1b9cf4bcef
2016-09-27 13:41:16 -04:00
Carsten "Tomcat" Book b5206d37f5 Merge mozilla-central to mozilla-inbound 2016-09-28 16:25:01 +02:00
Carsten "Tomcat" Book 572e74ee99 merge mozilla-inbound to mozilla-central a=merge 2016-09-28 15:56:33 +02:00
Phil Ringnalda 3e7326c4fd Backed out 6 changesets (bug 1286900) for making wpt-7 permanently fail on Windows debug
CLOSED TREE

Backed out changeset 859457467e3c (bug 1286900)
Backed out changeset 4b08ed30e0a5 (bug 1286900)
Backed out changeset 3928e945b584 (bug 1286900)
Backed out changeset 5b0f69c86028 (bug 1286900)
Backed out changeset 01c3527edde5 (bug 1286900)
Backed out changeset 6b5f059a85ad (bug 1286900)
2016-09-27 18:24:38 -07:00
Matthew Gregan de2a95a064 Bug 1305604 - Convert dashes to underscores in crate name when generating --extern option. r=froydnj 2016-09-28 10:07:47 +13:00
Ted Mielczarek 6fba0e392a bug 1256642 - have the build system automatically detect LIB_IS_C_ONLY. r=glandium
MozReview-Commit-ID: 3xWSEe0Tmp9

--HG--
extra : rebase_source : 473fd5911dcf5e6d0122cb74de16e7d41cd35cdc
2016-08-24 11:29:00 -04:00
Chris Manchester 732cc6b973 Bug 1304522 - Fix the "when" argument to check_header to actually make checks conditional. r=glandium
MozReview-Commit-ID: JlYUFsPRGAV

--HG--
extra : rebase_source : 8cd667969fefb043f9769f35ba1fd12fe209a2b4
2016-09-21 22:02:43 -07:00
Gregory Szorc 13bf17ed00 Bug 1286900 - Stop producing web-platform tests zip file; r=ted
Now that we access WPT related files from a source checkout, we no
longer need the web-platform tests zip file produced or consumed by
automation. So stop producing it.

MozReview-Commit-ID: Ea8KjKZJ5Yx

--HG--
extra : rebase_source : ee6ec00689696a710faf390d3dec5c5d02d8ec74
2016-09-20 18:41:06 -07:00
Mike Shal 366bb17910 Bug 1304125 - Perform WebIDL code generation in the tup backend; r=gps
MozReview-Commit-ID: Fnw8380zyGU

--HG--
extra : rebase_source : 4cad1fc9699260ce2dd25530060596de51212deb
2016-09-19 13:30:03 -04:00
Mike Shal b48e8b54f9 Bug 1304129 - Use xpidllex.py / xpidlyacc.py from GENERATED_FILES; r=gps
MozReview-Commit-ID: 8w50kZWinzl

--HG--
extra : rebase_source : c2231f6e776cc8195063dad8c1480cec88bd5e62
2016-09-19 13:47:32 -04:00
Mike Shal 2275e6ed2e Bug 1304129 - Build GENERATED_FILES in the tup backend; r=gps
MozReview-Commit-ID: IaVAuRWIjmC

--HG--
extra : rebase_source : 66e28cea04873ba1ebace456a6607f1ee05f923f
2016-09-19 13:47:05 -04:00
Henrik Skupin 401257b7ed Bug 1301334 - Package Marionette tests via moz.build entries r=gps
Move packaging for Marionette from make to test_archiver by using root manifest files.

MozReview-Commit-ID: 1cxEBYQeJ2Z
**

--HG--
extra : rebase_source : 372a407d9207bfbccbfb88c689df60b8cc1abcaf
2016-09-20 18:05:43 +02:00
Henrik Skupin e20a8e6f48 Bug 1302364 - Include firefox-ui and puppeteer in all-tests.json, and allow to run tests via "mach test". r=gps
MozReview-Commit-ID: EwONsQSgAym

--HG--
extra : rebase_source : 4bcf4497a2af79790378ddc1bbe47712e4c0ea6c
2016-09-21 10:31:05 +02:00
Henrik Skupin 3cd74b7623 Bug 1302364 - Update TEST_MANIFESTS documentation for install_root in resolve_tests(). r=gps
MozReview-Commit-ID: 9EXT3Jakwx1

--HG--
extra : rebase_source : 2e3752e385e2e9ed9ad38549539f24126452da07
2016-09-21 10:16:33 +02:00
Michael Layzell 73b988acc6 Bug 1303223 - Ensure that panic = 'abort' is specified for all toplevel Cargo.tomls, r=froydnj
MozReview-Commit-ID: GX0FJjDVA5q
2016-09-20 13:56:09 -04:00
Michael Layzell 05bd5a1076 Bug 1300208 - Allow specifying multiple rust crates to mozbuild within the same FINAL_LIBRARY, r=froydnj
MozReview-Commit-ID: IIjV4Kg7wOv
2016-09-20 11:26:43 -04:00
Yen Chi Hsuan 80b867a458 Bug 1143421 - install file copies instead of symlinks for Spidermonkey. r=glandium 2016-08-25 15:51:55 +08:00
Mike Hommey 94ad81b0b0 Bug 1295542 - Ensure at least an empty chrome.manifest next to each omnijar file. r=gps 2016-09-20 13:43:54 +09:00
Chris Manchester d8c54a3aa5 Bug 1303436 - Log status when invoking configure directly from Python. r=mshal
MozReview-Commit-ID: H5gbEdBWCds

--HG--
extra : rebase_source : 35384e0451b7cef96e88b5f3e3c80d2922f9f1ba
2016-09-16 14:25:51 -07:00
Sebastian Hengst 6247ecc4b9 Backed out changeset e92048c87179 (bug 1302364) for failing test_emitter.py in e.g. spidermonkey tests. r=backout on a CLOSED TREE 2016-09-16 11:25:55 +02:00
Sebastian Hengst 99e7648673 Backed out changeset 1df8bde64853 (bug 1302364) 2016-09-16 11:24:29 +02:00
Henrik Skupin 3418dc5d58 Bug 1302364 - Include firefox-ui and puppeteer in all-tests.json, and allow to run tests via "mach test". r=gps
MozReview-Commit-ID: EwONsQSgAym

--HG--
extra : rebase_source : 61870a85c3f749ac3da202e08c2ba91fa87a261b
2016-09-13 17:21:52 +02:00
Henrik Skupin 2f20475d5e Bug 1302364 - Update TEST_MANIFESTS documentation for install_root in resolve_tests(). r=gps
MozReview-Commit-ID: 9EXT3Jakwx1

--HG--
extra : rebase_source : ba1f6afcaa35103a52e5bbad7618fa2c9f08f2a1
2016-09-13 17:16:51 +02:00
Ted Mielczarek e254cc07b8 bug 1298422 - vendor byteorder into third-party/rust. r=froydnj
MozReview-Commit-ID: ChKCKiIVEfq

--HG--
extra : rebase_source : c0da7411a2f0b7fc171c9ebb99fce91361944aa5
2016-09-08 15:12:34 -07:00
Phil Ringnalda 3748f182f6 Merge m-i to m-c, a=merge 2016-09-10 00:14:21 -07:00
Sebastian Hengst 9d51c314ab Backed out changeset c2115d200aeb (bug 1300152) for permafailing test_crash_rust_panic.js on Windows 8 x64 pgo. r=backout 2016-09-09 16:54:57 +02:00
Shing Lyu db11558e50 Bug 1288350 - Temporary reftest list for Stylo vs Gecko test r=heycam,manishearth
--HG--
extra : rebase_source : 4772418bd2813d4e79643a833eb09e47fe893d84
2016-09-05 11:45:39 +08:00
Carsten "Tomcat" Book d98e95abb8 Merge mozilla-central to autoland 2016-09-08 12:51:52 +02:00
Carsten "Tomcat" Book 38f7eb71e0 Backed out changeset d392d81c5b9e (bug 1297585) for breaking artifact desktop builds
--HG--
extra : rebase_source : 0a2e4754b68f2fd5ed98872c4b2981b18c37aa5a
2016-09-08 11:57:29 +02:00
Wes Kocher 5cbc382303 Merge inbound to m-c a=merge 2016-09-07 17:54:24 -07:00
Wes Kocher 4c4ea87ae0 Backed out 2 changesets (bug 1283919) for being the wrong way to fix this a=backout
Backed out changeset a328778db08d (bug 1283919)
Backed out changeset 7e1f25f59298 (bug 1283919)
2016-09-07 14:22:21 -07:00
Carsten "Tomcat" Book 1c61ba654e merge mozilla-inbound to mozilla-central a=merge 2016-09-07 17:20:12 +02:00
Ted Mielczarek b482f0e214 bug 1300152 - add rust to mozinfo.json. r=mshal
This patch also reworks how we set all the boolean flags in mozinfo.py.

MozReview-Commit-ID: IhjXCFsx5J1

--HG--
extra : rebase_source : d984d9ecaed765126600c8d85847a82585ab3e67
2016-09-02 11:57:11 -04:00
Henrik Skupin 996622f983 Bug 1283919 - Improve test package archiver for collecting files from directories referenced by a root manifest r=gps
MozReview-Commit-ID: EuGK3OS8XLj

--HG--
extra : rebase_source : 50a4e94b868f8c8931415e3afe30b820e5b6e806
2016-09-07 23:39:45 +02:00
Mike Shal 9f2ce6ecc0 Bug 1293448 - Build XPIDL files in the tup backend; r=glandium,gps
MozReview-Commit-ID: zyojbOFLLn

--HG--
extra : rebase_source : 17ebd8701bf1dc1a45559a3620a3f6703f950070
2016-07-29 13:43:29 -04:00
Mike Shal 62ce34650a Bug 1293448 - Allow build backends to specify custom build commands; r=glandium
MozReview-Commit-ID: G6fICkYUDxd

--HG--
extra : rebase_source : c839919cae6683ce07cfaa9e701e7e9e50652040
2016-08-17 23:20:51 -04:00
Al Tsai 8f598a057d Bug 1297585 - Modify parameters for buildUrl to satisfy taskcluster changes. r=glandium 2016-09-01 15:02:09 +08:00
Mike Hommey 6070365bf2 Bug 1289946 - Work around preprocessor default defines in get_compiler_info(). r=gps
Some compilers on some platforms by default #define some of the values
we're using in the source we use in get_compiler_info(). Namely,
mingw-gcc #defines WINNT by default, and the WINNT in the source is then
replaced by 1, breaking the check.

The C preprocessor, fortunately, doesn't expand macros inside C strings.
So instead of `%KERNEL WINNT`, we output `%KERNEL "WINNT"`, and strip
out the double quotes. For good measure, we do this for all values in
the source used in get_compiler_info().

--HG--
extra : rebase_source : dd4cc2b8c3bf0cb508b09598706b74ccc12162be
2016-09-08 07:27:56 +09:00
Mike Shal 42ab09bca2 Bug 1297718 - Add config.status to sys.modules for dependency detection; r=glandium
MozReview-Commit-ID: J5WaTPYc0vJ
2016-08-26 10:04:07 -04:00
Henrik Skupin 1aa1a59ead Bug 1283919 - Move packaging of Marionette from make to the test archiver r=gps
MozReview-Commit-ID: AOQHcA46bCh

--HG--
extra : rebase_source : e313c669ad0ae999ecba954538572d22ae28b120
2016-08-17 13:43:51 +02:00
Henrik Skupin c2f0ef7c09 Bug 1283919 - Improve test package archiver for collecting files from directories referenced by a root manifest r=gps
MozReview-Commit-ID: EuGK3OS8XLj

--HG--
extra : rebase_source : 1a547d02d0da68fac3ca5401df36589357f0bbbe
2016-08-17 13:41:59 +02:00
Xidorn Quan a448b4c2d7 Bug 1298210 - Move remove objdir code into clobber.py so that autoclobber and clobber command share the same code. r=gps
MozReview-Commit-ID: 5X1AQac8Fqi

--HG--
extra : source : f6c73c140316b9d6a43b5864b5f36a2620d10b3a
2016-08-30 19:54:38 +10:00
Mike Hommey f97add6317 Bug 1296503 - Switch config.status to unicode literals. r=ted
Ironically, the first thing we do with those unicode literals is convert
them to byte strings because the build backends don't like them yet.
2016-08-24 07:32:52 +09:00
Mike Hommey 31a17a020e Bug 1296503 - Add an indented_repr function to mozbuild.util. r=ted 2016-08-24 07:32:51 +09:00
Myk Melez 3050b7932b Bug 1296798 - set depth to chrome_src for refs in common.gypi; r=ted
MozReview-Commit-ID: EJTQNk6dbJ1
2016-08-23 14:58:27 -07:00
Myk Melez 1895887f26 Bug 1296798 - specify root_targets; r=ted
MozReview-Commit-ID: 6Ip87xChI8o
2016-08-23 14:58:23 -07:00
Mike Hommey b65bccd9ce Bug 1276003 - Move --enable-necko-protocols to python configure. r=chmanchester
--HG--
extra : rebase_source : 6187c1a382b240e2fa01f38f4c739000d5f177ce
2016-08-18 09:57:06 +09:00
Gregory Szorc 579fbb5cf2 Bug 1290201 - Don't clobber .mozbuild directory by default; r=ted
.mozbuild/last_log.json is opened by the process doing the deleting.
On Windows, you can't delete an opened file.

So stop clobbering the .mozbuild directory.

This directory only holds non-essential artifacts from mach/build
invocations. I don't think keeping it around will break anything.

MozReview-Commit-ID: 9b0AC2ywAAZ

--HG--
extra : rebase_source : 9236e3e282d1db2595e8b36353008bc98e2ae6cf
2016-08-19 11:11:48 -07:00
Mike Hommey 885b56f5f4 Bug 1296502 - Serialize lists when preparing a context for the preprocessor in build backends. r=gps
Some substs values are lists, and some CONFIGURE_SUBST_FILES use them,
and don't expect the substitution to use a pythonic expression of the
value. So serialize those lists.

--HG--
extra : rebase_source : 848962c326236607609bca2b92180c8f6f4ad079
2016-08-19 11:33:18 +09:00
Mike Hommey ce060d48bf Bug 1257049 - Stop spawning a separate process for config.status from configure.py. r=gps
--HG--
extra : rebase_source : c3a76c32eaca7a9a192e239ac143174d599fb28c
2016-08-19 11:11:57 +09:00
Ryan VanderMeulen 01c4e8cc1b Merge inbound to m-c. a=merge 2016-08-19 09:52:53 -04:00
Gregory Szorc 4a0f2d02bc Bug 974281 - Do not clobber msvc directory by default; r=ted
The "remove_objdir" method has been rewritten to support partial
clobber. It still defaults to full clobber. But the "full" argument
can be passed as False to limit to a partial clobber where currently
the "msvc" directory (contains Visual Studio files) is not clobbered.

On Windows, there might be a regression with this change because
we'll be invoking N winrm.exe processes and new processes have
a non-trivial overhead on Windows. However, it is hopefully unlikely
that new processes are more overhead than deleting hundreds of thousands
of files.

MozReview-Commit-ID: 7yeMttztwic

--HG--
extra : rebase_source : 646992be199e1059f0b09cf8bed3334085293fe0
2016-03-11 15:11:33 -08:00
Gregory Szorc 303d2ef97a Bug 974281 - Use mozfile.remove since rmtree is deprecated; r=ted
My Python editor told me rmtree has been marked as deprecated. Use
mozfile.remove instead.

MozReview-Commit-ID: FYkXk1fnxvC

--HG--
extra : rebase_source : df392e8832e52501950f09acda208943c9e3d707
2016-03-11 15:08:54 -08:00
Wes Kocher 45575a7f86 Merge m-c to autoland, a=merge
a=release for the webidl hook for a comment-only change

--HG--
extra : amend_source : e590e515ab273d097f88b35be0e5c999502ebdf4
2016-08-16 22:07:30 -07:00
Wes Kocher 48b8d407c8 Merge inbound to central, a=merge
a=release to get around the webidl hook for a comment-only change

--HG--
extra : amend_source : f7e57101e1a25d3cf3536a256898ec2a21c54b38
2016-08-16 17:05:30 -07:00
Gregory Szorc 2562138ede Bug 1291944 - Verify makensis binary is 32-bits; r=glandium
This required implementing a utility function to resolve the binary
type. I used GetBinaryTypeW via ctypes because this seems the fastest.
I arbitrarily limited the function to testing 32-bit and 64-bit Windows
executables because hopefully those are the only executables we'll
ever encounter. We can expand the binary detection later, if needed.
This includes support for running on non-Windows platforms.

MozReview-Commit-ID: CYwyDWQrePc

--HG--
extra : rebase_source : 8fd7ca7f253d9e9e18d64784652a5ff934ad2272
2016-08-15 18:11:48 -07:00
Mike Hommey c6d1e73834 Bug 1294585 - Move --with-*-keyfile options to python configure. r=chmanchester 2016-08-16 08:32:51 +09:00
Gregory Szorc 46ad65f8b8 Bug 1293868 - Write mozinfo.json deterministically; r=glandium
And with indentation so it is easier for humans to read.

MozReview-Commit-ID: Kkd6vmfLNUf

--HG--
extra : rebase_source : 9f2b4ad2223f361dd6dd1ec9cdda71bd5a8560e3
2016-08-09 19:11:54 -07:00
Mike Shal 355501af0c Bug 1294510 - cleanup CompileDB backend; r=glandium
MozReview-Commit-ID: Lj4ahLzZJh9

--HG--
extra : rebase_source : 3a2ce98147327094b2a65429a64ee03b67ef0580
2016-08-11 15:50:31 -04:00
Wes Kocher a177bd0ff1 Merge m-c to inbound a=merge 2016-08-17 17:24:02 -07:00
Chris Manchester bea5e287fc Bug 1240134 - Fixup TarFinder test on Windows by closing the TarFile after the test. r=me
MozReview-Commit-ID: EbP4o5XLCeB
2016-08-17 16:12:14 -07:00
Chris Manchester b0b84a1928 Bug 1240134 - Incorporate the interfaces.xpt from downloaded artifacts instead of building XPIDL during an artifact build. r=glandium
MozReview-Commit-ID: 8oEyS1xLOwV
2016-08-17 15:02:31 -07:00
Chris Manchester 337f05f14a Bug 1240134 - Use the UnpackFinder when extracting from archives for an artifact build. r=glandium
MozReview-Commit-ID: C5Y9oC6ywwP
2016-08-17 15:02:31 -07:00
Chris Manchester a22526073a Bug 1240134 - Implement a TarFinder to facilitate extracting files from compressed Firefox archives. r=glandium
MozReview-Commit-ID: F4l8505bvwR
2016-08-17 15:02:31 -07:00
Chris Manchester 309a20b1c8 Bug 1240134 - Re-factor UnpackFinder to contain a Finder instance it delegates to rather than inheriting from FileFinder. r=glandium
MozReview-Commit-ID: LKYCROED06S
2016-08-17 15:02:31 -07:00
Wes Kocher 02224536e4 Merge m-c to autoland, a=merge 2016-08-10 16:56:26 -07:00
Mike Hommey 202b56d2fe Bug 1293840 - Determine HAVE_64BIT_BUILD from --target. r=chmanchester
Until now, HAVE_64BIT_BUILD was entirely determined by a compiler check.
But we didn't run the check on e.g. artifact builds, while relying on
its result for some non-compilation related things, leading to subtle
discrepancies.

This changes the configure check to derive HAVE_64BIT_BUILD from bitness
determined by the target CPU, and double checked with a compiler check.

--HG--
extra : rebase_source : 5dc0cf2369ed4457bdd9a15736a70265a771d919
2016-08-10 11:39:16 +09:00
Mike Hommey 93ac00658e Bug 1293837 - Change try_compile() to return True when the test passes. r=chmanchester
Currently, it returns either None or the contents of the compiler's stdout,
which is always expected to be an empty string, and is not very useful. So
instead, return True in the latter case.

--HG--
extra : rebase_source : ee69cdeab38d27178ce759591fb394da65e694ac
2016-08-10 10:00:43 +09:00
Elias Probst fa561f244a Bug 1293234 - Use octal notation for permission modes in the build system; r=gps
As of Python 3, decimal notations of octal values for permission modes
are no longer permitted and will result in a `SyntaxError` exception
(`invalid token`).

Using the proper octal notation which is also Python 2.7 compatible will
fix this issue.

--HG--
extra : rebase_source : 2e897c51f04ad0ee69071f84b98df224f3af72d3
2016-08-08 13:45:17 +02:00
Mike Hommey 77ee4f3ce4 Bug 1292463 - Move MOZ_C{,XX}_SUPPORTS_WARNING to python configure. r=chmanchester 2016-08-10 10:50:01 +09:00
Mike Hommey 7a80b4e7ee Bug 1292463 - Rename compilechecks.configure and test_header_checks.py. r=chmanchester
to, respectively, compile-checks.configure and test_compile_checks.py.


--HG--
rename : build/moz.configure/compilechecks.configure => build/moz.configure/compile-checks.configure
2016-08-10 10:49:59 +09:00
Carsten "Tomcat" Book d9e0b4c565 merge mozilla-inbound to mozilla-central a=merge 2016-08-09 15:44:51 +02:00
Mike Hommey afa6c4d5f3 Bug 1292046 - Add a check that the compiler works with -c out of the box. r=chmanchester
The base compiler check in python configure does some preprocessing,
which ensures the compiler works to some extent. Autoconf used to have
a more complete test, doing a compile/link. We do have plenty of tests
afterwards that do that anyways, but it's better if we fail early if
the toolchain fails somehow.

This refactors try_compile such that the *_compiler variable themselves
can be used to trigger compiler tests. Eventually, we'll want something
similar for preprocessing and possibly other invocations.

This also removes similar tests from build/autoconf/toolchain.m4.

--HG--
extra : rebase_source : c60d1d6e39b6bd2a377516687affd9b8932ebc12
2016-08-04 15:51:47 +09:00
Mike Hommey 6bdf5756ec Bug 1292046 - Add language to the compiler namespace. r=chmanchester
--HG--
extra : rebase_source : c258416a1cec59627e27d4f59e40f1425464f9c5
2016-08-04 16:24:29 +09:00
Mike Hommey 69e768cba4 Bug 1292439 - Use a fake _winreg module during tests. r=chmanchester
While on automation, there is no MSVC to find through the registry, the
story is different on local builds, and that can interfere with tests.

Specifically, it breaks test_toolchain_configure.py because it's not
expecting the registry to provide a valid path to an almost valid
compiler, and then fails because that compiler doesn't match the
expected target CPU.

And because build/moz.configure/toolchain.configure also affects the PATH
environment variable, subsequent tests end up failing even earlier
because executing the empty mozconfig with the modified environment then
fails because of the unicode value of PATH.

This change implements enough of _winreg to make the get_registry_values
function return nothing.

--HG--
extra : rebase_source : f70e40ddabaed1197f6cddce67832bb112f1969d
2016-08-05 14:16:35 +09:00
Mike Shal 035d0ca1a0 Bug 1293385 - Remove idls attribute from BackendMakeFile; r=gps
MozReview-Commit-ID: 4X9iIJArkYg

--HG--
extra : rebase_source : e31ff98109e0f25fadc6f17c685302a2252b214a
2016-08-05 13:23:44 -04:00
Mike Hommey 50a4467ec3 Bug 1282256 - Make MozbuildObject.resolve_config_guess an instance method. r=gps
The last use that didn't have an existing instance was just removed.

--HG--
extra : rebase_source : 81f99e8a8d8046c9741e8a27072a6c4773fa7292
2016-08-04 13:43:47 +09:00
Mike Hommey e6fb85ebb3 Bug 1282256 - Make MozbuildObject.resolve_mozconfig_topobjdir an instance method. r=gps
The only use that didn't have an existing instance was just removed.

--HG--
extra : rebase_source : 47891a9bd5c6ecef31d8a2c7053c1ae8efe36fa5
2016-08-04 13:41:57 +09:00
Mike Hommey ad5e3fa4c4 Bug 1282256 - Remove MozbuildObject._config_guess. r=gps
Back when it was added, it was used, but it is not anymore, outside
test_base.py.

--HG--
extra : rebase_source : f0b9a4dab2985e89e9950eda774ae853c7de764c
2016-08-04 10:07:56 +09:00
Mike Hommey 6168f0df5b Bug 1282256 - Avoid loading mozconfig in MozbuildObject.from_environment. r=gps
We've been reading the mozconfig in MozbuildObject.from_environment to
check whether the mozconfig topobjdir matches the detected topobjdir.

Since bug 1278415, everything using the buildconfig python module now
calls MozbuildObject.from_environment, which reads the mozconfig. A lot
of things to that during the build. But none of them actually need the
data from the mozconfig, and the topobjdir match test has been breaking
things randomly on multiple occasions.

The topobjdir match test, however, really only needs to happen once:
when a mach command starts. So we can move the test to MachCommandBase,
where it belongs, and anything actively using MozbuildObject.mozconfig
will have the mozconfig read, but everything else won't.

On a Linux64 opt build, this brings down the number of times the
mozconfig is read during `mach build` from 979 to 9.

--HG--
extra : rebase_source : 6b340f1fcf73a3c3987033c37f8f14ef06a44f04
2016-08-04 11:17:41 +09:00
Nathan Froyd f7fb6722a6 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-06 00:49:26 -04:00
Nathan Froyd eb1514a4c1 Bug 1231764 - part 3 - rename RustRlibLibrary to RustCrate; r=chmanchester
rlibs are going to be less important once we start building with cargo:
the focus will move to crates instead, so that's what we should call the
moz.build object.
2016-08-06 00:49:26 -04:00
Nathan Froyd 63d290c934 Bug 1231764 - part 2 - pass the srcdir of an rlib in the moz.build object; r=chmanchester 2016-08-06 00:49:26 -04:00
Nathan Froyd 4fb1a7545d Bug 1231764 - part 0 - only link librul once; r=chmanchester
Through an oversight, we listed librul.a twice when linking libxul: once
as part of the "objects" we were linking, and once as a static library.
This duplication is unnecessary and would cause problems later when we
try to generate librul.a via cargo, as cargo will put it someplace
different from where we expect and the two names will conflict.  Let's
have rules.mk be the single source of truth for how librul.a is named,
and then the code to link libxul can simply refer to that name.
2016-08-06 00:49:26 -04:00
Wes Kocher 9605851be0 Backed out 7 changesets (bug 1231764) for apparently causing linux debug wpt bustage
Backed out changeset 4b71272c92cf (bug 1231764)
Backed out changeset 234d8a930afa (bug 1231764)
Backed out changeset f9b204c2f5a7 (bug 1231764)
Backed out changeset f933119e57e4 (bug 1231764)
Backed out changeset e3af0b1d3473 (bug 1231764)
Backed out changeset 643b03aae1dd (bug 1231764)
Backed out changeset a945dbf63410 (bug 1231764)

--HG--
extra : rebase_source : e71360fa4b5e3e74859c82e74e183e13e6211c4c
2016-08-03 16:27:06 -07:00
Nathan Froyd 6b2618fb44 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-03 19:40:41 -04:00
Nathan Froyd be1a17c817 Bug 1231764 - part 3 - rename RustRlibLibrary to RustCrate; r=chmanchester
rlibs are going to be less important once we start building with cargo:
the focus will move to crates instead, so that's what we should call the
moz.build object.
2016-08-03 19:40:41 -04:00
Nathan Froyd c94c59b23b Bug 1231764 - part 2 - pass the srcdir of an rlib in the moz.build object; r=chmanchester 2016-08-03 19:40:41 -04:00
Nathan Froyd a79d68b929 Bug 1231764 - part 0 - only link librul once; r=chmanchester
Through an oversight, we listed librul.a twice when linking libxul: once
as part of the "objects" we were linking, and once as a static library.
This duplication is unnecessary and would cause problems later when we
try to generate librul.a via cargo, as cargo will put it someplace
different from where we expect and the two names will conflict.  Let's
have rules.mk be the single source of truth for how librul.a is named,
and then the code to link libxul can simply refer to that name.
2016-08-03 19:40:41 -04:00
Mike Hommey da40819e21 Bug 1290040 - Make find_program return short paths automatically when paths contain spaces on Windows. r=gps
Also fake enough of ctypes to keep the configure unit tests passing
after these changes.
2016-08-02 13:20:44 +09:00
Mike Hommey 318ded3048 Bug 1289949 - Make mozpack.path properly handle paths on mingw python. r=gps
Mingw python has a different os.path setup from native python, and has
os.sep and os.altsep reversed. In that case, the normsep function was
doing the wrong thing, leading to all sorts of problems.

While fixing this, also ensure the corresponding unit test covers this
peculiarity, even when running under the native win32 python.

--HG--
extra : rebase_source : 8fb18e0d4dc669c1d7e069f73fc44c22d419d43c
2016-07-28 18:50:57 +09:00
Ehsan Akhgari 926b72001b Bug 1281968 - Include the flags passed through CC/CXX in ./mach compileflags; r=gps 2016-07-28 15:12:12 -04:00
Mike Hommey e6ea4a5bfe Bug 1195748 - Make mach clobber never auto-log. r=gps
This never was a problem since auto-logging was broken on Windows, but
having mach clobber auto-log is a problem on Windows since it tries to
remove the log file while itself has it open, which fails.

--HG--
extra : rebase_source : 6da9f3e6148c201eade01d4598ce9c4becd051a0
2016-07-27 16:29:02 +09:00
Mike Hommey 6283835342 Bug 1195748 - Fix mach auto-logging on Windows. r=gps
We were relying on the log manager's terminal to know whether we're
running on a terminal to turn on auto-logging, but the log manager's
terminal is always None on Windows because blessings imports curses,
which doesn't work on Windows.

So instead, just use a plain os.isatty() call.

The same problem also applies to the show-log command to trigger the
pager (less). At the same time, fix the environment setting for LESS,
as on Windows, unicode literals are not allowed in the environment.

--HG--
extra : rebase_source : 1462849608c8cb86afcb080184efb50caf6d2f9e
2016-07-27 13:42:18 +09:00
Carsten "Tomcat" Book 7293066753 merge mozilla-inbound to mozilla-central a=merge 2016-07-27 16:35:44 +02:00
Nick Alexander c6f2ef4d51 Bug 1268944 - Remove GeckoView packaging. r=chmanchester
The best kind of patch: bulk deletion.  This removes two separate but
similar build flags, and an unsupported integration piece.  The first
packaged Fennec's resources into an ill-defined GeckoView archive; the
second built on the first to produce an Android ARchive for external
consumption.  Neither of these artifacts are supported or have
consumers; in fact, they mislead potential consumers, since they're
known to be broken.  The Gradle build work under the --with-gradle
flag, and significant follow-up, is the path forward if Mozilla wants
to invest in packaging GeckoView on Android for external consumption.
That is, rather than hacking together AAR files, we'll use the
well-supported Gradle mechanisms for building and publishing such
libraries.

MozReview-Commit-ID: 4Z1jJ8z0cyJ

--HG--
extra : rebase_source : b8e65f39c286313fe8963bf3832d9b6977ef188f
2016-07-25 11:54:03 -07:00
Gregory Szorc 217ec4c7cc Bug 1288610 - Add functions for creating deterministic tar archives; r=ted
I have a need to create tar archives deterministically
and reproducibly. Since we already have similar functionality in
mozpack for producting zip/jar archives, I figured it made sense for
this functionality to live in mozpack.

I made the functionality as simple as possible: we only accept
files from the filesystem and the set of files must be known in
advance. No class to hold/buffer state: just a simple function
that takes a mapping of files and writes to a stream.

MozReview-Commit-ID: If0NTcA7wpc

--HG--
extra : rebase_source : 9cbea36347ba2840dd5bff9dffefd994a73a0725
2016-07-25 12:46:07 -07:00
Carsten "Tomcat" Book b9a6c687fa merge mozilla-inbound to mozilla-central a=merge 2016-07-25 15:50:41 +02:00
Mike Hommey cb0e41dd08 Bug 1288313 - Ensure the host and target compilers build for the right endianness. r=chmanchester
--HG--
extra : rebase_source : d47263faac601a0d1b5a89ac6e9d3d373f0b15a1
2016-07-21 08:24:45 +09:00
Geoff Brown 0d1fe4cb03 Bug 1288450 - Add min sdk version to mozinfo.json; r=ahal 2016-07-22 14:31:36 -06:00