Commit Graph

1894 Commits

Author SHA1 Message Date
Mike Hommey
b91ae3e89f Bug 1234439 - Add a jar.mn to the end-to-end test. r=gps
Also add the corner case that broke mach build faster on Windows in bug 1191230.
2015-12-24 13:12:34 +09:00
Mike Hommey
2eabcb84c2 Bug 1234439 - Use new install manifests feature for chrome manifests in the FasterMake backend. r=gps
Bug 1191230 added override lines with # characters to chrome manifests
for Windows.

So far, chrome manifests were handled with buildlist.py like in the
RecursiveMake backend, fed with Make variables. Without proper quoting,
those Make variables are just truncated by Make on the first # character,
and this results in mach build faster failing because of that.

However, the reason why chrome manifests were handled with buildlist.py
originally is that not all chrome manifest entries were known to the
FasterMake backend, but they now all are.

So instead of relying on Make variables and buildlist.py, we can now
rely on the newly added install manifests feature allowing to create files
with a given content.
2015-12-24 13:12:29 +09:00
Mike Hommey
4e978ebeda Bug 1234439 - Add support for files with a given content to install manifests. r=gps
This will be used for chrome manifests in the faster make backend.
2015-12-24 13:12:24 +09:00
Carsten "Tomcat" Book
011504aa73 Merge mozilla-central to mozilla-inbound 2015-12-23 12:47:45 +01:00
Carsten "Tomcat" Book
719ce6825c merge mozilla-inbound to mozilla-central a=merge 2015-12-23 12:00:09 +01:00
Mike Hommey
dc1355e42f Bug 1233282 - Add generated FinalTargetFiles as optional_exists in install manifests. r=gps
Otherwise there's a possibility of race condition in some cases.
2015-12-23 16:18:51 +09:00
Mike Hommey
76e43de367 Bug 1233282 - Make CONFIGURE_DEFINE_FILES considered more as GENERATED_FILES in the emitter. r=gps
From the backend perspective, CONFIGURE_DEFINE_FILES is the same as
GENERATED_FILES because in both cases a GeneratedFile object is emitted, but
from the perspective of some checks in the emitter, they aren't the same,
and that causes errors when adding a CONFIGURE_DEFINE_FILES to e.g. EXPORTS.
2015-12-23 16:15:41 +09:00
Kris Maglione
8d948cbdfc Bug 1230776: Support scripts from HTML files in eslint. r=gps
Also removes related unused variables in mach_commands.py.

--HG--
extra : commitid : IiDVMuEZtA5
extra : rebase_source : 575a51dd0ad5450323b4da5f441f8e5d721e41d6
2015-12-05 13:17:49 -08:00
Chris Peterson
90c0e0da61 Bug 1232223 - Part 3: Remove MOZ_WAVE #ifdefs because Wave is always supported. r=jya 2015-12-18 00:51:16 -08:00
Chris Peterson
88051371a9 Bug 1232223 - Part 1: Remove MOZ_WEBM #ifdefs because WebM is always supported, though not necessarily enabled. r=jya r=glandium 2015-12-12 13:49:07 -05:00
Jean-Yves Avenard
42c92612f4 Bug 1234092: P3. Remove dependencies on gstreamer packages. r=glandium 2015-12-23 01:14:23 +11:00
Ms2ger
fdb675bc31 No bug - Note the bug in a todo comment. 2015-12-18 11:13:00 +01:00
Mike Hommey
8ad03f4a21 Backout changesets 53a9d03e4223, e61d18180feb and f07752f611f6 (bug 1233282) for a race condition bustage on a CLOSED TREE. 2015-12-18 17:07:13 +09:00
Mike Hommey
abf55a5284 Bug 1233282 - Make CONFIGURE_DEFINE_FILES considered more as GENERATED_FILES in the emitter. r=gps
From the backend perspective, CONFIGURE_DEFINE_FILES is the same as
GENERATED_FILES because in both cases a GeneratedFile object is emitted, but
from the perspective of some checks in the emitter, they aren't the same,
and that causes errors when adding a CONFIGURE_DEFINE_FILES to e.g. EXPORTS.
2015-12-18 15:57:12 +09:00
Carsten "Tomcat" Book
af252b574e merge mozilla-inbound to mozilla-central a=merge 2015-12-17 11:59:41 +01:00
Gregory Szorc
ee27b8ebce Bug 1225599 - Pull Mercurial repos with common 3rd party extensions disabled; r=dminor
Running old extensions with newer versions of Mercurial may crash `hg`
due to the old extension accessing something or doing something that has
been changed in the new release.

To minimize the risk of this happening, we disable common 3rd party
extensions when cloning or pulling as part of `mach mercurial-setup`. We
don't want to disable everything because some extensions (like
remotenames) provide features the user may want enabled as part of the
clone/update. This leaves the door open for more failures. Hopefully
this approach is sufficient. We can always revisit later.

--HG--
extra : rebase_source : 92e7d8fe227f29fc64c0f69021bd731ba762faf3
2015-12-15 10:47:33 -08:00
Carsten "Tomcat" Book
ee3a10a104 Merge mozilla-central to mozilla-inbound 2015-12-16 12:03:47 +01:00
Carsten "Tomcat" Book
a77b9d40f7 merge mozilla-inbound to mozilla-central a=merge 2015-12-16 12:01:46 +01:00
Wes Kocher
dcd5150ad9 Merge m-c to inbound, a=merge
--HG--
extra : commitid : wg0tOahMU6
2015-12-15 15:52:44 -08:00
Nick Alexander
4899166b70 Bug 1227248 - Part 1: Allow extending StrictOrderingOnAppendListWithFlags. r=gps
In order to use StrictOrderingOnAppendListWithFlags instances in
mozbuild template functions, we need += to work correctly.  This patch
implements extend and the associated functions (including +=),
disallowing some behaviour where convenient.

There's a subtle point hidden in the isinstance() tests: before this
patch, it was not easy to compare two
StrictOrderingOnAppendListWithFlags instances to see if they had the
*same* set of flags.  That was because two instances may not have the
same class, and would only share the common
StrictOrderingOnAppendList, which isn't enough to infer the presence
of flags.  To be slightly more clear, concrete instances will have
class StrictOrderingOnAppendListWithFlagsSpecialization (although
there are still multiple instances of that class) and all extend from
the unique class StrictOrderingOnAppendListWithFlags.

--HG--
extra : commitid : AMVDYt8khR
extra : rebase_source : 1ce0698691fc03fbdf6a976e92017c1d60bad15d
extra : histedit_source : 4812a565179fb4fac2e4b5cd89c4efe74e794dfa
2015-12-14 11:50:06 -08:00
Nick Alexander
a196b3a8a7 Bug 1230848 - Remove Gradle configuration rooted in the object directory. r=gps
DONTBUILD NPOTB

The top source directory configuration requires
mobile/android/gradle/m2repo/**, so it stays.  There's no value
changing the location; it contains an Android-specific Gradle plugin.

We note the removal of |mach gradle-install| and point to the new
documentation.

--HG--
extra : commitid : 9Nhz2dnBIgY
extra : rebase_source : 32a2b8a92d57f963feac2bae28fed5a9f1b26f93
extra : amend_source : bf53a0b2d3d4ac0618bc82fe79914bdeaf1c1e0a
2015-12-06 15:02:11 -08:00
Carsten "Tomcat" Book
5a86bca15a merge mozilla-inbound to mozilla-central a=merge 2015-12-15 12:16:29 +01:00
Brian Murray
4bbd072a06 Bug 1232486 - Implement |mach bootstrap| for Fennec on Fedora. r=nalexander
DONTBUILD NPOTB

--HG--
extra : commitid : 8vOjqwGEMbK
extra : amend_source : 4175892eff7aa506471734946c8d74a24ab8f0ab
2015-12-14 17:20:09 -08:00
Brian Murray
52931434b2 Bug 1232715 - Bootstrap ignores --no-interactive flag when using dnf groupinstall; r=gps
DONTBUILD (NPOTB)

--HG--
extra : commitid : F1laIL5bUHN
extra : amend_source : a21757bd9a69cd7ddadb16e49ab89cdd45841b03
2015-12-15 13:59:23 -08:00
Gijs Kruitbosch
b63e88e1a7 Bug 1232421 - followup: fix test to not use 'inline comments' which are not supported elsewhere, rs=bustage on a CLOSED TREE
--HG--
extra : commitid : JqObbyNgDTC
extra : amend_source : 84a1aacb62cfb28c45012c64edbb38ef392ba9b7
2015-12-16 14:03:20 +00:00
Gijs Kruitbosch
d83623503a Bug 1232421 - force matching the start of the line for comments, r=glandium
--HG--
extra : commitid : KomtUxWCGB6
extra : rebase_source : efa6f6f1f48b2e142536cddebabf1581b732e9b2
2015-12-14 20:33:57 +00:00
Rail Aliiev
7744523519 Bug 1232887 - "make package MOZ_PKG_PRETTYNAMES=1" is busted. r=glandium 2015-12-15 23:23:18 -05:00
Mike Hommey
b13b86d3cc Bug 1231315 - Build CONFIGURE_DEFINE_FILES at build time instead of during configure. r=gps 2015-12-15 08:06:11 +09:00
Mike Hommey
347d2ccc90 Bug 1231314 - Turn mozilla-config.h and js-confdefs.h into CONFIGURE_DEFINE_FILES. r=gps
Both these files, are, after all, define files, like other CONFIGURE_DEFINE_FILES.
They only happen to have a special requirement for an expansion for all defines,
which doesn't need to happen through traditional preprocessing.

This change adds consistency in how configure-related headers are being handled.
2015-12-15 08:06:11 +09:00
Gregory Szorc
aa64dfaae7 Bug 1231989 - Install watchman via Homebrew and MacPorts; r=ahal
This is needed to support hgwatchman.

--HG--
extra : commitid : 8D2A8YPNimB
extra : rebase_source : 7d5932aa049dfb352b93a87c2c8087dd7b324aab
extra : histedit_source : 9863189f265eca9e0b9363e13c59a7d55f5c633d
2015-12-11 12:40:41 -05:00
Felipe Gomes
4680ffb080 Bug 1231720 - Log when ESLint finishes running. r=nalexander
--HG--
extra : commitid : 5u08LIBan4s
2015-12-10 14:31:14 -05:00
Carsten "Tomcat" Book
ffb37c03fb merge mozilla-inbound to mozilla-central a=merge 2015-12-10 12:05:03 +01:00
Mike Hommey
158e08c29b Bug 1230355 - Remove include_deps. r=mshal
We used to use include_deps to trigger a fast-path in pymake, but we don't
use pymake anymore, so we can use normal includes now.
2015-12-09 19:23:53 +09:00
Ted Mielczarek
47dba5ed8c bug 1160185 - support GENERATED_FILES in EXPORTS. r=glandium
This change allows specifying objdir-relative paths in EXPORTS to enable
exporting entries from GENERATED_FILES. Objdir paths in EXPORTS that are
not in GENERATED_FILES will raise an exception.

Example:
```
EXPORTS += ['!g.h', 'f.h']
GENERATED_FILES += ['g.h']
```

Given the implementation, this should also work for FINAL_TARGET_FILES,
FINAL_TARGET_PP_FILES, and TESTING_FILES, but those are not well-tested.

This patch also renames the install manifest for '_tests' to match the
directory name for convenience in some code I refactored.

--HG--
extra : commitid : CwayzXtxv1O
extra : rebase_source : 5fb6f461fc740da9bce14bbdbfabdfe618af8803
2015-12-01 09:53:16 -05:00
Mike Hommey
e876eeef92 Bug 1230060 - Don't fail to read an install manifest containing non-actionable items. r=gps
Future improvements to process_install_manifest's --track option will require
adding data in the tracking dump that uses an install manifest form, and I don't
want e.g. switching branches or bisection to require to clobber in order to do the
right thing, so this change future-proofs the install manifest reader.
2015-12-05 11:04:21 +09:00
Mike Hommey
a6e5352b39 Bug 1230060 - Add a --track option to process_install_manifest. r=gps
There are currently two operating modes for process_install_manifest:
- default, which removes any file in the destination directory that is not
  in the install manifest
- --no-remove, which doesn't do the above.

While install manifests also have the ability to deal with files that may
be left in the destination directory some other way, that requires knowing the
list of those files in advance, which is not always possible.

For instance:
- with the FasterMake build backend, install manifests are split such that
  there is one manifest per application of addon directory (to allow more
  parallelism), which means there is one for dist/bin and one for several
  of its sub-directories.
- With --disable-compile-environment combined with artefacts, the backends
  are not aware of e.g. all the libraries and executables that end up in
  dist/bin.

If we want to properly remove files when they are removed from moz.build
or jar.mn, we can't use --no-remove, but the alternative would remove those
files

So add an option that keeps a list of all the files that were installed as
part of processing the given install manifest(s). That information is simply
a dump of the install manifest, which, while it contains more information
than currently required, will allow to do smarter things in the future.
2015-12-05 11:04:21 +09:00
Mike Hommey
dab94e1f70 Bug 1230060 - Allow to restrict what unaccounted files to remove when copying from a FileCopier. r=gps
The default behavior for a FileCopier's copy is to remove all the files and
directories in the destination that aren't in its registry.

The remove_unaccounted argument can be passed as False to disable this
behavior.

This change adds another possibility, where remove_unaccounted may be a
FileRegistry, in which case only the files in that registry are removed.

This allows to e.g. only remove files that were copied from a previous
FileCopier.copy, leaving aside files that were in the destination for some
other reason.
2015-12-05 11:04:21 +09:00
Carsten "Tomcat" Book
71e373189a Backed out changeset 9d1f7f04a682 (bug 1230060) to complete backout 2015-12-04 15:22:52 +01:00
Carsten "Tomcat" Book
70e80c658e Backed out changeset 0dcea48cbf38 (bug 1230060) for bustage due to race conditions of some sort 2015-12-04 15:18:07 +01:00
Carsten "Tomcat" Book
3e46254e72 Backed out changeset 1e44f391a3cb (bug 1230060) 2015-12-04 15:17:38 +01:00
Mike Hommey
27d503c493 Bug 1230067 - Normalize install target when processing JarManifestParser data in FasterMake backend. r=gps
The loop addon jar.mn data uses '.' as base, and join(path, '.') returns
'{path}/.'. So normalize that so that it becomes '{path}'.
2015-12-04 19:25:42 +09:00
Mike Hommey
3d1b660fdf Bug 1230060 - Don't fail to read an install manifest containing non-actionable items. r=gps
Future improvements to process_install_manifest's --track option will require
adding data in the tracking dump that uses an install manifest form, and I don't
want e.g. switching branches or bisection to require to clobber in order to do the
right thing, so this change future-proofs the install manifest reader.
2015-12-04 19:25:42 +09:00
Mike Hommey
831f8542c7 Bug 1230060 - Add a --track option to process_install_manifest. r=gps
There are currently two operating modes for process_install_manifest:
- default, which removes any file in the destination directory that is not
  in the install manifest
- --no-remove, which doesn't do the above.

While install manifests also have the ability to deal with files that may
be left in the destination directory some other way, that requires knowing the
list of those files in advance, which is not always possible.

For instance:
- with the FasterMake build backend, install manifests are split such that
  there is one manifest per application of addon directory (to allow more
  parallelism), which means there is one for dist/bin and one for several
  of its sub-directories.
- With --disable-compile-environment combined with artefacts, the backends
  are not aware of e.g. all the libraries and executables that end up in
  dist/bin.

If we want to properly remove files when they are removed from moz.build
or jar.mn, we can't use --no-remove, but the alternative would remove those
files

So add an option that keeps a list of all the files that were installed as
part of processing the given install manifest(s). That information is simply
a dump of the install manifest, which, while it contains more information
than currently required, will allow to do smarter things in the future.
2015-12-04 19:25:42 +09:00
Mike Hommey
0a5ad30ee1 Bug 1230060 - Allow to restrict what unaccounted files to remove when copying from a FileCopier. r=gps
The default behavior for a FileCopier's copy is to remove all the files and
directories in the destination that aren't in its registry.

The remove_unaccounted argument can be passed as False to disable this
behavior.

This change adds another possibility, where remove_unaccounted may be a
FileRegistry, in which case only the files in that registry are removed.

This allows to e.g. only remove files that were copied from a previous
FileCopier.copy, leaving aside files that were in the destination for some
other reason.
2015-12-04 19:25:42 +09:00
Maja Frydrychowicz
65297a6d50 Bug 1229467 - Include wptserve in common.tests.zip; r=gps
--HG--
extra : commitid : BqsAW4Qumv3
extra : rebase_source : eba9a1c941c8d3f48e6a02e07689ced16dd32cfe
extra : histedit_source : 3e3726d534589579f896f0b339e800d3513f0b34
2015-12-01 15:45:41 -05:00
Axel Hecht
e3a88f714b Bug 1229330 - fix import, r=glandium
Follow-up fix to bug 1147283

--HG--
extra : transplant_source : %8F%05c%031%90%16%27%A5%A2%8F%D7%CE%9CP%3B%8E%C8%B2%FD
2015-12-01 11:55:59 +01:00
Mike Hommey
6e7dc8af8c Bug 1229341 - Remove HierarchicalStringListWithFlagsFactory. r=gps
It is not used anymore.
2015-12-03 13:34:02 +09:00
Mike Hommey
3df4b2841e Bug 1229341 - Remove .source flag on BRANDING_FILES. r=gps
The only use of BRANDING_FILES[...].source is in xulrunner/app/moz.build, for
the app.ico file.

This file has not been useful since the removal of the xpinstall-based
installer in bug 344236... 9 years ago.
2015-12-03 13:34:02 +09:00
Mike Hommey
524f4438ab Bug 1229279 - Use mozbuild.context.Path for FINAL_TARGET{_PP}_FILES. r=gps 2015-12-03 13:34:02 +09:00
Mike Hommey
d385de836e Bug 1229279 - Add a specialized HierarchicalStringList class for ContextDerivedValue types. r=gps 2015-12-03 13:34:02 +09:00
Chris Pearce
8d1aefe517 Bug 1229541 - Assume config.substs.get() already returns a list in VS mach build-backend backend. r=glandium 2015-12-03 11:47:29 +13:00
Dave Townsend
9ee8a4af74 Bug 1230300: Fix mach eslint to pass command arguments through to eslint. r=gps
Currently mach treats the first argument to eslint as the path and moves it to
the end of the arguments but this breaks usage like "mach eslint -f json browser".

It used to be necessary to change to the directory you wanted to lint but now
the .eslintignore is at the top level we just run from the top level. This means
the path argument doesn't need to be special anymore.

--HG--
extra : commitid : 5ozct0pVSC4
extra : rebase_source : 22132a240d8e6f4d099dbcdeb793958d7173e154
extra : amend_source : 2b9931b4283e1c84f699027e13eccc33fcdec978
2015-12-03 10:38:29 -08:00
Dave Townsend
e966ac1914 Bug 1229858: Add a preprocessor to convert XBL into JavaScript blocks for eslint. r=miker
--HG--
extra : commitid : KBrnZcg3l6i
extra : rebase_source : 0b961d96d021923d7ef2855367549b3aa2a077da
extra : amend_source : 7f403c59c018656bcff98e7fc2996bfbb9b853d3
2015-12-02 17:03:33 -08:00
Carsten "Tomcat" Book
5adcabb340 merge mozilla-inbound to mozilla-central a=merge 2015-12-02 15:20:57 +01:00
Mike Hommey
2a82df055d Bug 1229293 - Enforce order when setting a HierarchicalStringList, and forbid reassignment. r=gps
The current implementation of HierarchicalStringList allows the following:

   FOO.bar = [
       'foo',
       'bar',
   ]

while

   FOO.bar += [
       'foo',
       'bar',
   ]

would be invalid because of the StrictOrderingOnAppendList enforcement.

It also allows to overwrite the entire list with a subsequent

   FOO.bar = [
	'baz',
   ]

while we've explicitly forbidden such things for every other list.

While in the vicinity, fix HierarchicalStringList._get_export_variable to not
call the HierarchicalStringList constructor uselessly.
2015-12-02 11:04:37 +09:00
Mike Hommey
6e38af494c Bug 1229245 - Use a FinalTargetFiles-like object for TESTING_JS_MODULES. r=gps 2015-12-01 16:46:57 +09:00
Mike Hommey
6bea47c16d Backout changeset aad04db89c38 (bug 1229245) for jetpack bustage. r=me on a CLOSED TREE 2015-12-01 16:18:54 +09:00
Mike Hommey
70e723fc78 Fixup for bug 1229233 to fix bustage on OSX universal builds. r=me
Those bits are copied from TestMozbuildObject.
2015-12-01 14:52:31 +09:00
Mike Hommey
4bc4164c0a Fixup for bug 1229233 to fix test bustage on Windows. r=me 2015-12-01 14:52:31 +09:00
Mike Hommey
8dc5201e76 Bug 1229245 - Use a FinalTargetFiles-like object for TESTING_JS_MODULES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
2e73746038 Bug 1229245 - Don't store the target in FinalTarget{,Preprocessed}Files instances. r=gps
They already have that value in self.install_target.
2015-12-01 13:57:52 +09:00
Mike Hommey
2eea6436c2 Bug 1229241 - Use FINAL_TARGET{,_PP}_FILES for EXTRA{,_PP}_JS_MODULES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
85dbd89e83 Bug 1229241 - Redirect RESOURCE_FILES to FINAL_TARGET_FILES.res. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
3b9cda439c Bug 1229241 - Use FINAL_TARGET{,_PP}_FILES for JS_PREFERENCE{,_PP}_FILES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
5ea47b3101 Bug 1229241 - Differentiate preprocessed and non-preprocessed JS pref files. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
861b5a242a Bug 1229241 - Redirect EXTRA{_PP}_COMPONENTS to FINAL_TARGET{,_PP}_FILES.components. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
1743f5051f Bug 1229241 - Support merging HierarchicalStringLists. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
5d8c5d2272 Bug 1229241 - Reject FINAL_TARGET{,_PP}_FILES along DIST_INSTALL = False. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
1c6231c29c Bug 1229241 - Allow moz.build special variables to be set, as long as the value is not modified. r=gps
This will allow a new kind of special variable where it is possible to do
  FOO += ['bar']

All the current special variables are either strings (for which __setitem__ would
be called with a different string object), or a read-only dict (which doesn't
allow modifications).
2015-12-01 13:57:52 +09:00
Mike Hommey
e5b1bb9e4e Bug 1229233 - Add a (incomplete) end-to-end build test. r=gps
We have many unit tests in the tree for some small parts of the build system
pipeline, but we don't have anything that resembles an end to end test, and we
kind of rely on the resulting Firefox not being broken by our changes.

With the Faster make backend growing, I want to ensure it produces the same
thing as the recursive make backend, at least for the parts it supports.

This adds some kind of test that allows to check that.
2015-12-01 13:57:52 +09:00
Mike Hommey
b80b97e9fa Bug 1229233 - Properly skip the top-level directory in the RecursiveMake backend. r=gps
Somehow this never ended up being a problem in practice, but somehow with a
minimalistic test case, it becomes one.
2015-12-01 13:57:52 +09:00
Mike Hommey
fc199d9034 Bug 1229233 - Skip building XPIDL when there aren't any in the FasterMake backend. r=gps
The test I'm about to add doesn't have XPIDL files, and that currently avoids
the FasterMake backend to run properly. Also, in the future, when the FasterMake
grows the ability to build C++ files, it should be possible to build Spidermonkey
with the FasterMake backend, but it doesn't have XPIDL files either.
2015-12-01 13:57:52 +09:00
Mike Hommey
23883e6652 Bug 1229233 - Use SourcePaths for CONFIGURE_SUBST_FILES and CONFIGURE_DEFINE_FILES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
aa6442b3ae Bug 1229226 - Reject RESOURCE_FILES along DIST_SUBDIR or XPI_NAME. r=gps
Gecko only uses resource files in the GRE directory.
2015-12-01 13:57:52 +09:00
Mike Hommey
572b7a9ece Bug 1229226 - Remove preprocessing support for RESOURCE_FILES. r=gps
No resource file is preprocessed in gecko, and no resource file is defined
in comm-central.
2015-12-01 13:57:52 +09:00
Mike Hommey
23a591952c Bug 1228467 - Make the preprocessor error out for "no preprocessing directives" instead of warning. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
3a7b31cfb5 Bug 1228444 - Rename DIST_FILES to FINAL_TARGET_PP_FILES. r=gps
This makes it clearer that really it's the same thing as FINAL_TARGET,
with preprocessing.
We still keep DIST_FILES in backend.mk because it's shorter and doesn't
really matter.
2015-12-01 08:25:22 +09:00
Mike Hommey
3a04b1f8dc Bug 1228444 - Make DIST_FILES a HierarchicalStringList, like FINAL_TARGET_FILES. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
655579a1fa Bug 1228444 - Don't silence "no preprocessor directives found" warnings for DIST_FILES. r=gps
and move files without preprocessor directives to FINAL_TARGET_FILES.
2015-12-01 08:25:22 +09:00
Mike Hommey
5dfa8936e1 Bug 1228444 - Validate that FINAL_TARGET_FILES source files exist. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
ba507be622 Bug 1227892 - Add basic tests for IS_COMPONENT/NO_COMPONENTS_MANIFEST. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
3900e2c115 Bug 1227892 - Emit a specialized object for chrome.manifest entries. r=gps
This new ChromeManifestEntry object type is generic and can hold any kind of
chrome manifest entry, but we currently only emit them for binary components.

References to sub-directory manifests is left to the backend, for now, until
all manifest entries are emitted by the frontend.
2015-12-01 08:25:22 +09:00
Mike Hommey
79e06586da Bug 1227892 - Add a NO_COMPONENTS_MANIFEST moz.build variable. r=gps
The variable is used by Lightning in comm-central and influences
binary-component manifest creation.
2015-12-01 08:25:22 +09:00
Dave Townsend
3593419254 Bug 1228628: Move all eslintignore rules to the top-level of the tree. r=mconley
--HG--
extra : commitid : Dwq9c2G0xAV
extra : rebase_source : 29ef8c7dad0b0477933d82ea87fd157607cc7b14
extra : amend_source : f0353d9eab87d940d29377401b60606153644985
2015-11-27 09:39:59 -08:00
Carsten "Tomcat" Book
358e4575c4 merge mozilla-inbound to mozilla-central a=merge 2015-11-26 16:54:27 +01:00
Nick Alexander
3a8bea8ad4 Bug 1227600 - Fix |mach bootstrap| bustage on Mac OS X. r=me,gps
DONTBUILD NPOTB on a CLOSED TREE

--HG--
extra : commitid : 4gi9M7J0IaR
extra : amend_source : 32ba3af05db20027dfb1776a30a1040bf25494f7
2015-11-25 11:11:39 -08:00
Mike Hommey
b5c0f9f920 Bug 1224452 - Quote passthru variables. r=gps
Ideally, we should properly make and shell quote everything we print out
in makefiles, but that's a can of worms I don't want to open just yet. So
I'll limit myself to just passthru variables.
2015-11-26 08:51:02 +09:00
Mike Hommey
dcfc35f1b9 Bug 1224452 - Better handle make variable references from gyp files. r=gps
This further improves the changes from bug 1224460 to e.g. handle variable
references mixed with text, and to avoid adding empty strings to the
resulting flags variables when the expansion leads to an empty string.
2015-11-26 08:50:59 +09:00
Mike Hommey
d1031e10d6 Bug 1224452 - Add an expand_variables helper function to do simple make-like variable expansion. r=gps 2015-11-26 08:50:54 +09:00
Mike Hommey
b54191a5f8 Bug 1224452 - Use mozbuild.shellutil.split instead of shlex.shlex in mozbuild.compilation.util. r=gps
And then properly quote the strings when printing them out in the compilation
database or the mach compileflags output.
2015-11-26 08:50:44 +09:00
Mike Hommey
6dad957fbb Bug 1224452 - Move shell_quote to the shellutil module. r=gps
Also make it only quote when actually necessary.
2015-11-26 08:49:18 +09:00
Mike Hommey
f485401df4 Bug 1226884 - Keep em:unpack addons unpacked after bug 1216371. r=gps
--HG--
extra : amend_source : 61a2914b964df0bdf1d523e7eb396b54403daa9f
2015-11-23 22:40:00 +01:00
Mike Hommey
fb7b4a5eae Bug 1151124 - Add a simplified version of pymake's clinetoargv to mozbuild and use it. r=gps
Pymake's clinetoargv is very specific to pymake's use case, yet has been abused
as a replacement for shlex because shlex doesn't handle things properly for our
use cases.

Using pymake's clinetoargv, however, has shortcomings, and we're better off
importing its code in mozbuild, simplifying it a little, and using that
instead.

Plus, less dependencies on pymake will help kill it for good some day.
2015-11-24 11:29:14 +09:00
Jared Wein
d118134fda Bug 1229154 - Launch 'eslint' with UNIX environment since 'eslint' is not a valid Win32 binary. r=gps
--HG--
extra : rebase_source : a738aa832da24531c47a72632ecef8c729601966
2015-12-01 14:29:47 -05:00
Geoff Brown
446af250a7 Bug 1219807 - Support 'mach run --debug' for Android; r=jmaher 2015-11-19 13:15:34 -07:00
Mike Hommey
ebd689a328 Bug 1224460 - Expand make variable references we get out of gyp. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
b6d285f055 Bug 1216371 - Pack addons that can be packed as XPIs. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
3657509c31 Bug 1216371 - Distinguish between addons that can be packed and those that cannot in the packager. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
01f29630c8 Bug 1216371 - Use the PiecemealFormatter for the OmniJarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
b13fb564e4 Bug 1216371 - Use the PiecemealFormatter for the JarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
96f591ed3f Bug 1216371 - Introduce a PiecemealFormatter base package formatter. r=gps
FlatFormatter, JarFormatter and OmniJarFormatter all, in some way, deal
with different pieces of the package being handled differently.

Instead of each of them dealing with their different pieces in some subtly
different way, instead, introduce a new base package formatter class that
will handle it for all of them.

Use this new PiecemealFormatter for the FlatFormatter.
2015-11-19 08:05:51 +09:00
Mike Hommey
c261a38b06 Bug 1216371 - Add a proxy class to access a subtree of a FileRegistry as an independent FileRegistry. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
f7a0e3118a Bug 1216371 - Don't assume the root directory is a base directory in packager formatters. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
67e9068329 Bug 1216371 - Add tests for *Formatter.contains(). r=gps
And fix OmniJarFormatter.contains after bug 910660.
2015-11-19 08:05:51 +09:00
Mike Hommey
6e8d11c99c Bug 1216371 - Don't rely on OmniJarFormatter.is_resource for test_omnijar_is_resource. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
c8c4eba72c Bug 1216371 - Add package formatter tests emulating mac packaging. r=gps
Only directories containing chrome manifests are given as base to formatters,
but there can still be files given outside the bases, like, on mac builds,
all files in Content/MacOS, or Content/Info.plist, whereas chrome manifests
are under Content/Resources.
2015-11-19 08:05:51 +09:00
Mike Hommey
a20016a7c8 Bug 1216371 - Rearrange test_packager_formats.py. r=gps
There is a lot of repetition across its various tests, and we're going to add
some more in a subsequent change, so it is desirable to make it a less
repetitive task.
2015-11-19 08:05:51 +09:00
Chris Manchester
4de238c02d Bug 1219521 - Add imported python modules in the tree to dependencies of GENERATED_FILES scripts. r=glandium
--HG--
extra : commitid : 3ZGSu0cVuch
2015-11-16 16:51:51 -08:00
Mark Hammond
301563017d Bug 1224689 - Add a 'sync' mozinfo variable and only run test_remotetabmatches.js if it is defined. r=ted
--HG--
extra : rebase_source : 05d28e12a73a2fe0f0746a5ae13e3268a0821ced
2015-11-15 15:21:00 +01:00
Harshit Bansal
56588c2af2 Bug 1217039 - Created a function android_ndk_url() in android.py and used it in all other sub-modules to calculate the URL. r=mshal 2015-11-15 14:49:08 +01:00
Chris Manchester
0cc78b1f16 Bug 1224411 - Speed up FileRegistry._partial_paths by memoizing on the basis of directory. r=nalexander
This function was found to be a little slow while profiling due to repeated calls to
mozpath.dirname. This patch speeds up the function replacing dirname with string manipulation
(these paths are already normalized), by caching results on the basis of directory,
and converting from iteration to recursion to increase use of the cache.

This commit speeds up the "install tests" step run as a part of the build and running
tests by ~10% on a fast linux laptop.

--HG--
extra : commitid : HdYkcXQ2ezQ
2015-11-13 16:14:40 -08:00
Mike Hommey
469865f35c Bug 1219104 - Disallow multiple jar.mn mentioning the same files for the same build in the FasterMake backend. r=mshal 2015-11-14 08:40:54 +09:00
Mike Shal
8d58360198 Bug 1223593 - Make depsdir optional in xpidl-process.py; r=glandium 2015-11-10 18:30:46 -05:00
Gregory Szorc
0ed3c74543 Bug 1223149 - Add basic usage documentation for mach build; r=glandium
Support for displaying docstrings in `mach help` was added relatively
recently. `mach build` was never documented. Let's document it.

There are a gazillion things we could put in the documentation. For now,
mainly focus on targets.

--HG--
extra : commitid : FjtVDISK9Q5
extra : rebase_source : a69ba419e49ca0e4435e87597fdfe34623917a6c
extra : amend_source : 1161bf83569c82340ad1e4e4d21ba7f600753af1
2015-11-10 15:41:08 -08:00
Mike Hommey
ef64322e27 Bug 1222591 - "nsMsgUtils.cpp:52:10: fatal error: 'nsProtocolProxyService.h' file not found". r=gps f=aleth
--HG--
extra : rebase_source : 87f985a43bf2c48ecad143fb2c1973a87966c931
2015-11-06 17:31:00 +01:00
Chris Manchester
cf3bc2e02d Bug 1215238 - Mention the included filepath in pre-processed js sources with #includes. r=glandium
--HG--
extra : commitid : FJpPaYeSyUI
2015-11-06 15:58:30 -08:00
Mike Hommey
762aba02cd Bug 1221453 - Use ObjDirPaths for GENERATED_INCLUDES and merge with LOCAL_INCLUDES. r=gps 2015-11-06 09:59:21 +09:00
Mike Hommey
e855ef1662 Bug 1221453 - Use SourcePaths for LOCAL_INCLUDES. r=gps 2015-11-06 09:59:21 +09:00
Mike Hommey
d2d8de9a5d Bug 1219147 - Use addEntriesToListFile in mozbuild.jar.JarMaker.updateManifest. r=mshal
Also make addEntriesToListFile emit files with CR instead of CRLF on Windows.
2015-11-04 11:21:49 +09:00
A-deLuna
57f72c864a Bug 1220480 - Reference proper variable in Arch Linux bootstrapper; r=gps
DONTBUILD (NPOTB)

--HG--
extra : commitid : FF82L5ToIR1
extra : amend_source : 113a8d10ba1fdf385e2a1dac1aaae262f23b3568
2015-11-03 11:00:02 -08:00
Chris Manchester
deb47f849b Bug 1218999 - Update mtimes when building a GENERATED_FILES target, even when contents don't change. r=glandium
When a make target is generated with FileAvoidWrite, this can cause targets to
get rebuilt perpetually when a prerequisite is updated, because FileAvoidWrite
will leave the target's mtime older than the prerequisite's when the target's
contents are unchanged. To avoid this issue, GENERATED_FILES is modified to
unconditionally update its target's mtime.

--HG--
extra : commitid : 4k5e5rKtPZ2
2015-11-03 10:23:04 -08:00
Chris Manchester
8ffd9ff2ed Bug 1218999 - Back out changeset 5f32b2bcfa43 (bug 1188468) in favor of a more efficient solution. r=glandium
Bug 118468 landed an option for FileAvoidWrite to always write to an output
file, whether or not the contents would be changed. This was to address a
problem caused by not updating mtimes when building GENERATED_FILES, but
undoes the purpose of FileAvoidWrite and isn't really necessary.
This is addressed in a subsequent commit by unconditionally updating
mtimes when processing GENERATED_FILES.

--HG--
extra : commitid : AfOhgUstokq
2015-11-03 10:23:04 -08:00
Mike Hommey
5237200410 Bug 1217276 - Fix the handling of relativesrcdir for localized chrome data in FasterMake backend. r=mshal 2015-10-31 07:32:47 +09:00
Mike Hommey
0ac007b2f5 Bug 1216901 - Make the FasterMake backend reticulate splines when moz.build or jar.mn files are modified. r=mshal 2015-10-31 07:32:43 +09:00
Mike Hommey
8d0eb7a870 Bug 1216901 - Always update backend output list files mtime from the base backend class. r=mshal
Instead of having individual backends do it on their own.
2015-10-31 07:32:42 +09:00
Wes Kocher
36c2970b75 Backed out changeset e22433400ec2 (bug 1216901) to hopefully fix winpgo bustage
--HG--
extra : commitid : JAZy6YeISB7
extra : amend_source : ff101ba617320bae1f76f7232a4c648a451dd4ce
2015-10-30 10:11:46 -07:00
Wes Kocher
1f1147fd63 Backed out changeset b855984ff056 (bug 1216901)
--HG--
extra : commitid : DRn4qQLqwWu
2015-10-30 10:11:45 -07:00
Wes Kocher
9ec1a1aa32 Backed out changeset 9475e3ef6a44 (bug 1217276)
--HG--
extra : commitid : Aaj33hafwl
2015-10-30 10:11:43 -07:00
Geoff Brown
a42b25a374 Bug 1219803 - Support 'mach run' for Android; r=jmaher 2015-10-30 10:57:35 -06:00
Makoto Kato
e5902f9e56 Bug 1219228 - Generate correct source path of cpu-features.c. r=glandium 2015-10-30 12:23:42 +09:00
Mike Hommey
545ea0eff1 Bug 1217276 - Fix the handling of relativesrcdir for localized chrome data in FasterMake backend. r=mshal 2015-10-30 08:19:04 +09:00
Mike Hommey
03e573e93c Bug 1216901 - Make the FasterMake backend reticulate splines when moz.build or jar.mn files are modified. r=mshal 2015-10-30 08:19:04 +09:00
Mike Hommey
d2683de574 Bug 1216901 - Always update backend output list files mtime from the base backend class. r=mshal
Instead of having individual backends do it on their own.
2015-10-30 08:19:04 +09:00
Carsten "Tomcat" Book
535f267585 Merge mozilla-central to mozilla-inbound 2015-10-29 12:15:05 +01:00
Richard Newman
447bf8b18a Bug 1219512 - Bump Android version code computation check. r=nalexander
--HG--
extra : commitid : DlEqjWeeRLj
2015-10-28 18:38:55 -07:00
Carsten "Tomcat" Book
3ec5c00413 merge mozilla-inbound to mozilla-central a=merge 2015-10-28 10:43:33 +01:00
Nick Alexander
3323ad2cde Bug 1207708 - Part 2: Build against play-services-{basement,base,gcm} if MOZ_ANDROID_GCM. r=sebastian
Since MOZ_NATIVE_DEVICES builds against play-services-{basement,base,cast},
some ad-hoc de-duplication is necessary.

--HG--
extra : commitid : 2jNIgZpLUq2
extra : source : 0957d3435ac22765d7868cb3c7db1e0787836bc3
2015-10-27 17:41:49 -07:00
Nathan Froyd
f1742e072f Bug 1218042 - part 2 - make the CompileDB backend follow the backend protocol; r=mshal
Calling CommonBackend.consume_object ensures that we process WebIDL and
IPDL files (and many other things) correctly.  Calling
CommonBackend.consume_finished ensures that the CompileDB backend gets
to see the unified bindings and protocol files that we generate, and add
those files to the compilation database.
2015-10-26 11:53:59 -04:00
Nathan Froyd
ca9570920f Bug 1218042 - part 1 - pass an objdir into _build_db_line; r=mshal
The only thing we need the obj for here is getting the objdir.  Future
patches will just have an objdir when calling this function, and not a
proper mozbuild object.  In light of these facts, let's change the
function to accept an objdir only, which will make those future patches
easier.
2015-10-26 11:50:27 -04:00
Michael Ratcliffe
fc66d30a75 Bug 1212047 - Improve ESLint logging in case of error r=glandium
Fix *all* return codes

--HG--
extra : transplant_source : %DEp0%92%E4%9E%8E1%17%B0%D4%AE%2C%C0%C0%04%7DBd%AE
2015-10-23 17:18:45 +01:00
Carsten "Tomcat" Book
758c43af6b merge mozilla-inbound to mozilla-central a=merge 2015-10-26 10:57:35 +01:00
Nick Alexander
bf604f1900 Bug 1192064 - Add 'android-x86' job to |mach artifact|. r=jonalmeida
--HG--
extra : commitid : 9WM7rT9goKZ
extra : rebase_source : 84c411a8ec4cd299b9b7e3ea009e05117728c57b
extra : histedit_source : c2356540e15927e362c6f1e0fba8ddd9b047cc31
2015-10-23 12:55:16 -07:00
Nathan Froyd
fb2c405492 Bug 1215526 - part 3 - make preprocessor.preprocessor report all included files; r=glandium
For GENERATED_FILES scripts that want to report dependencies, this
change makes it easy to use |preprocess|, rather than having to
construct and use |Preprocessor| manually.
2015-10-21 10:38:18 -04:00
Nathan Froyd
3a6f416c97 Bug 1215526 - part 2 - write dependencies to file_generate.py's depfile; r=glandium 2015-10-21 10:36:08 -04:00
Nathan Froyd
8bd1afc6a9 Bug 1215526 - part 1 - pass dependencies file to file_generate.py; r=glandium
In addition to their inputs declared in moz.build files, generated files
may also depend on other files, such as #includes in preprocessed files.
Let's provide a place for file_generate.py to write out those extra
dependencies.
2015-10-21 09:23:09 -04:00
Michael Ratcliffe
59b814892b Bug 1211223 - Error running eslint setup on Windows r=mh+mozilla, r=pbro
--HG--
extra : commitid : VCSW7YjYq1
extra : rebase_source : 619bf85751c2f9281c897d958893c62360d4fd37
2015-10-23 14:36:24 +01:00
Nick Alexander
098c3bcfb6 Bug 1114718 - Make |mach bootstrap| support 'mobile/android' builds on Arch Linux. r=mcomella
--HG--
extra : commitid : BvjdL3Hn144
extra : rebase_source : a2f1819f436f1cf64a7068840c4f69cb6c81d8c7
2015-10-19 16:36:00 -07:00
Andrew Halberstadt
10926f2956 Bug 1216575 - [mozbuild] Remove if statement that sets bindir to resource dir on osx, r=spohl
--HG--
extra : commitid : 2DSDHg7t06u
extra : rebase_source : 7eefe57e0f7e6156fc04a0bd8b7c641df54876a0
2015-10-21 10:04:21 -04:00
Mike Hommey
223417d648 Bug 1212773 - Extend jar maker syntax for jar file location. r=gps
Indicating a jar currently looks like the following in a jar manifest:
  path/to/name.jar:

The `path/to` doesn't contain the implicit "chrome/" directory. This, in
turn, doesn't allow much flexibility to use the jar maker for what is not
necessarily under chrome/.

To use the jar maker to fill some chrome manifest for the default theme
extension, we currently use a hackish path to get to the right location,
and rely on the chrome.manifest file in the parent directory never to be
picked by the package manifest, which is a quite horrible way to do this,
but worked well enough for that specific use case.

With the need to handle system addons at the build system level, it
becomes necessary to come up with something less hackish.

What this change introduces is an additional syntax for the jar manifest,
in the following form:
  [base/path] sub/path/to/name.jar:

Using this syntax, there is no implicit 'chrome' path. The `base/path` is
relative to the current DIST_SUBDIR, and the `sub/path` is relative to that
`base/path`. The distinction can be useful for build system backends.

The assumption that the "root" chrome.manifest is in the parent directory
of the implicit "chrome" directory dies, and the `base/path` is where the
root chrome.manifest is placed.
2015-10-20 07:36:51 +09:00
Mike Hommey
a8bec728dc Bug 1212773 - Pass a base directory to jar maker, instead of a chrome directory. r=gps 2015-10-20 07:36:47 +09:00
Andrew Halberstadt
43780d35db Bug 1216171 - Fix MozbuildObject.bindir to import the correct mozinfo, r=jmaher
--HG--
extra : commitid : 4qZC33BCtve
extra : rebase_source : 95a60597f910bc57d6fdf22e08fa0f8c1f675b58
2015-10-19 11:15:15 -04:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Tooru Fujisawa
5352886b99 Bug 1208160 - Show information when Xcode requires accepting license agreement; r=gps
--HG--
extra : commitid : BWWqCvms3dQ
extra : amend_source : 0554ce0ec72683864a07ebbbd1c11bbde0b6c233
2015-10-16 11:17:48 -07:00
Mike Hommey
9af046b5b4 Bug 1211765 - Remove remnants from --with-libxul-sdk. r=bsmedberg
The configure option has explicitly thrown an error for more than a year now,
and it happens that the remaining way to still forcefully use it has been
broken for more than 8 months.
2015-10-14 08:02:34 +09:00
Nick Alexander
23d5c4a8b2 Bug 1213418 - Part 2: Use Fennec APKs in |mach artifact|; use mozversion to extract build IDs. r=me
DONTBUILD NPOTB

This downloads to a temporary file named uniquely but consistently
based on the URL, and then extracts a build ID using mozversion to use
as a human readable and sortable prefix.  This approach can be re-used
by |mach artifact| based Desktop builds.

--HG--
extra : commitid : LxorDuq5D0t
extra : rebase_source : 2f280746f486b79dfe45ad928e4b618e0e12f1a0
2015-10-09 18:32:52 -07:00
Nick Alexander
b47fb2c75a Bug 1213418 - Part 1: Use mozregression to download in |mach artifact|. r=me
DONTBUILD NPOTB

--HG--
extra : commitid : LU7F5VjVj4m
extra : rebase_source : 5c9e36c01c7aa757d41a9994877b6f7d7568f4e3
2015-10-09 17:47:17 -07:00
Nick Alexander
02b12c9443 No bug - Message which upstream pushhead is used in |mach artifact|. r=me
DONTBUILD NPOTB

--HG--
extra : commitid : D93W2OFUaWF
extra : rebase_source : 5c6a0b8a097d358175dd3158499129a4a4bb935a
2015-10-09 17:23:46 -07:00
Mike Hommey
32fa3fafa4 Bustage fix for bug 1210687 on a CLOSED TREE. r=me
Looks like I went too fancy removing a part of the jarline regexp before landing.
2015-10-08 17:28:36 +09:00
Mike Hommey
f6bf50d04e Bug 1210687 - Use install manifests for jar.mn files in FasterMake backend. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey
0c8457d33f Bug 1210687 - Remove PushbackIter now it's not used anymore. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey
e127dc20b1 Bug 1210687 - Separate out jar.mn parsing in a separate class. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey
ccf3953f83 Bug 1211957 - Add the repackage step at the end of a faster build on Mac. r=gps
That is necessary until bug 934070 is fixed
2015-10-08 17:11:23 +09:00
Wes Kocher
75ff20f5af Backed out changeset 91d4539e00ce (bug 1207245)
--HG--
rename : mfbt/RefPtr.h => mfbt/nsRefPtr.h
2015-10-07 10:19:19 -07:00
Wes Kocher
9d0985e9fd Merge fx-team to central, a=merge 2015-10-07 09:58:09 -07:00
Nathan Froyd
89a69c829a Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-07 16:50:25 -04:00
Carsten "Tomcat" Book
71e22d0c44 merge mozilla-inbound to mozilla-central a=merge 2015-10-06 12:01:35 +02:00
Mike Hommey
e7fb0d3101 Bug 1210642 - Use install manifests for preprocessed files in the FasterMake build backend. r=gps 2015-10-06 11:15:07 +09:00
Mike Hommey
1f30d999e0 Bug 1210642 - Add support for --silence-missing-directive-warnings for preprocessing within install manifests. r=gps 2015-10-06 11:15:06 +09:00
Mike Hommey
95f5927160 Bug 1210642 - Allow to pass defines overrides when processing install manifests. r=gps 2015-10-06 11:15:06 +09:00
Mike Hommey
7f68f92edb Bug 1210329 - Remove support for line endings munging in the preprocessor. r=gps
It was added back in
5147d5c69f
for unclear reasons (and the lack of bug number doesn't help), and hasn't been
used, as far as I can see in the gecko-dev history, other than in bug 206029,
which is the only use currently in the tree.

Bug 206029 was working around the Flash player installer modifying Firefox's
prefs file and not dealing with it properly or something depending on the line
endings. 11 years later, all prefs files except channel-prefs.js are in
omni.ja, so obviously, bug 206029 doesn't actually apply anymore.

So, let's simplify it all and get rid of this.
2015-10-06 11:15:04 +09:00
Sebastian Kaspari
9fc8b6b2bb Bug 1210755 - mozboot/android: Install non-preview version of platform-tools. r=trivial
--HG--
extra : commitid : Hc8dtU2ezcm
extra : rebase_source : 340acc1b9e30609bccc42ac006789a22094fc955
2015-10-06 16:10:01 +02:00
Sebastian Kaspari
f95aacebb1 Bug 1210755 - Mach build: Compile with SDK version 23 and use build tools 23.0.1. r=nalexander
--HG--
extra : commitid : KSzxhqJn0iI
extra : rebase_source : ccd59642dc6025fd2fec574ef9502a15670fb43e
2015-10-05 15:01:23 +02:00
Carsten "Tomcat" Book
07ed19e582 merge mozilla-inbound to mozilla-central a=merge 2015-10-01 12:39:25 +02:00
Gregory Szorc
d772ee1cfe Bug 1208320 - Decrease compression level of test zip archives; r=glandium
Compressing C++ unit tests is a long pole when writing test archives.
Experimenting with various levels of compression revealed that
compression level 9 was providing minimal space savings for
significantly longer archiving times and greater CPU usage.

Results of our experimentation of `make -sj8 package-tests` on OS X
with various levels of compression are below. Note: these numbers were
accidentally obtained without JS tests being archived. This skews the
results a little but doesn't impact the analysis below.

ARCHIVE        SIZE       WALL   CPU

(L=9)
cppunittest  76,806,629  30.6s
mochitest    61,276,928   9.4s
reftest      31,204,396  11.0s
ALL         228,146,761  31.2s  75.9s

(L=8)
cppunittest  76,851,593  24.1s
mochitest    61,279,322   8.9s
reftest      31,207,867  10.4s
ALL         228,228,096  24.9s  64.7s

(L=7)
cppunittest  77,102,292  14.3s
mochitest    61,305,147   8.2s
reftest      31,260,359   9.4s
ALL         228,717,803  15.0s  49.1s

(L=6)
cppunittest  77,321,408  11.5s
mochitest    61,336,539   8.2s
reftest      31,303,604   9.2s
ALL         229,123,307  12.2s  44.7s

(L=5)
cppunittest  78,226,404   8.2s
mochitest    61,483,804   7.6s
reftest      31,509,349   8.8s
ALL         230,725,600   9.6s  39.7s

(L=4)
cppunittest  79,733,669   6.3s
mochitest    61,825,519   7.6s
reftest      31,924,171   8.4s
ALL         233,669,991   9.0s  36.4s

(L=3)
cppunittest  82,380,731   5.8s
mochitest    62,554,431   7.1s
reftest      32,696,415   8.1s
ALL         239,180,168   8.9s  34.6s

Levels lower than 3 resulted in larger archives with no decreae in
wall time and marginal decrease in CPU time.

As we can see, lowering the compression level reduces archiving time by
>3x while only increasing total archive size by ~2.5 MB or ~1% for
compression level 5.

Total time hits a plateau around levels 4 and 5. After that, file size
increases faster for little decrease in wall time. I suspect that we're
hitting Python limits from having to process thousands of files: there's
only so fast Python can do I/O and make function calls.

I think choosing 4 or 5 for the new compression level are acceptable.
I went with 5 because the wall time savings from 5 to 4 are marginal and
the archive size does start to increase a bit faster at 4. That being
said, 4 does consume 10% less CPU. I could easily just 4 as well. 5 is
more conservative. We can always change to 4 after seeing results in the
wild.

The end result of this change is `make package-tests` is much faster:

Before:  228,146,761 bytes;  31.2s wall;  75.9s CPU
After:   230,725,600 bytes;  11.4s wall;  45.0s CPU
Delta:    +2,578,839 bytes; -19.8s wall; -30.9s CPU

When you take the whole series into consideration:

Before:  44.2s wall; 84.6s CPU
After:   11.4s wall; 45.0s CPU

Lowering CPU is impressive considering we switched from the C `zip`
implementation to Python!

Keep in mind we were at ~78s wall before e87b74b3db43 introduced
concurrent archive generation!

And we still haven't eliminated the staging of JS tests, which are
several thousand files and a few dozen MB!

--HG--
extra : commitid : D1fD4NUTw2F
extra : rebase_source : c6de72656cfedc98c0cf1c09eefe1dfb84f3639b
2015-09-30 11:33:04 -07:00
Gregory Szorc
0a670f5daa Bug 1208320 - Support configuring zlib compression level; r=glandium
An upcoming commit will introduce a caller that doesn't want the maximum
compression level. This commit introduces arguments to control the
compression level inside written archives.

--HG--
extra : commitid : KkDso3hB2QG
extra : rebase_source : 8fd05aeae5c3555e1169eac6656d584007cd0739
2015-09-30 11:31:00 -07:00
Gregory Szorc
479e915b47 Bug 1208320 - Print message when done with archiving; r=glandium
Metrics are nice. Adding this output clearly demonstrates that C++ unit
tests are the long pole by far: they take ~95% of wall execution time
to archive (~30s total). The next longest archive only takes ~11s to
produce. This will be important if we ever want to reduce archive time
further on optimal hardware.

FWIW, disabling compression will produce a C++ unit test archive in
1.0s. Archives with more files take longer, despite the significantly
smaller sizes.

--HG--
extra : commitid : 6E56aUoZUL2
extra : rebase_source : 48cad51d7fbae883861f35e1b5cb96799b452bfb
2015-09-30 11:29:22 -07:00
Gregory Szorc
1037624226 Bug 1208320 - Do not stage some C++ unit test support files before archiving; r=glandium
Won't impact performance much. But fewer make foo makes porting the C++
unit tests (which are the largest remaining tests) to the Python
archiver easier to grok.

This conversion did change behavior slightly. Previously, startup
cache files weren't being packaged if startup cache was disabled. Now,
we always package them since their presence in the test archive should
be harmless. The original change to guard their inclusion in
ee82e0ae5488 was probably unnecessary.

--HG--
extra : commitid : AzU65j0E1q0
extra : rebase_source : 9b8a15dc1a5f3c3d3e453cefb3a99b05f5a77711
2015-09-30 17:41:46 -07:00
Gregory Szorc
a88dbb7290 Bug 1208320 - Do not stage mozbase files before archiving; r=glandium
This prevents copying of 447 files adding to ~4 MB.

--HG--
extra : commitid : 7zTbiQeMQSQ
extra : rebase_source : b3ac223835ba7289ace45aa7d02c5a050d54cc0d
2015-09-30 11:15:51 -07:00
Gregory Szorc
fd090d4a75 Bug 1208320 - Do not stage JS test modules before archiving; r=glandium
Saves 400 KB over 40 files on my machine.

--HG--
extra : commitid : E2U6mnB4tOw
extra : rebase_source : ffc2663a03d7e3287a36c347ac5a747237e86025
2015-09-30 11:04:58 -07:00
Gregory Szorc
611659f236 Bug 1208320 - Do not stage TPS files before archiving; r=glandium
This saves copying of ~100 files comprising ~1 MB. Not significant. But
it gets us a little closer to no staging.

--HG--
extra : commitid : 6Hjnhv4Yi5R
extra : rebase_source : 291c89682a23cde957b3c68f2efe3b6dc3d3d543
2015-09-30 11:03:32 -07:00
Gregory Szorc
022105cc96 Bug 1208320 - Do not stage reftest test files before archiving; r=glandium
This is slightly more involved than earlier changes because reftests
have a one-off mechanism for finding files. Essentially, the master
reftest manifest is loaded, directories are discovered, and every file
in those directories is packaged.

We add support to our test archive generation tool to read sources from
reftest manifests and tell it where the reftest manifests are.
print-manifest-dirs.py was only being used for staging reftest files.
Since we don't do that any more, the functionality doesn't need to exist
in a standalone file, so it has been moved inline into test_archive.py.

This change avoids copying ~26,000 tests consuming 131 MB during test
packaging. This is a majority of the file count that was remaining in
the stage directory at this point. On my machine (which hasn't typically
seen major wall time wins from not staging files due to its fast SSD),
this change made test packaging ~20% faster, reducing wall time from
~50s to ~40s!

A Try push seemed to indicate drastic results with the series up to this
point. Including the already landed changes to generate test archives
concurrently, test packaging times on OS X builders dropped from ~18:40
to 6:29! Times on Linux x64 remained about the same (~2:46). This is
possibly due to these machines already having SSDs and due to normal
variance in performance of builders and EC2 instances.

--HG--
extra : commitid : 34E8V8lSGg7
extra : rebase_source : 720afcd35f6a2b6cb1217df23ae981408a88cb94
2015-09-30 17:39:33 -07:00
Gregory Szorc
d460d0b2dc Bug 1208320 - Do not stage some reftest support files before archiving; r=glandium
After this, only reftest files themselves are staged. Those will be
addressed in a subsequent commit.

--HG--
extra : commitid : 9jWl9Twcizr
extra : rebase_source : 3e4a319d60b7ee7eddecc597eb250184140b1e71
2015-09-30 10:46:52 -07:00
Gregory Szorc
4c71c72f21 Bug 1208320 - Do not stage JIT test files before archiving; r=glandium
This avoids copying 5000+ files consuming ~37 MB on my build
configuration.

--HG--
extra : commitid : 6DmsjUYgjXq
extra : rebase_source : 123dd42a7d0b9cc244a3ab7773010dfc5769a4ac
2015-09-30 10:03:25 -07:00
Gregory Szorc
94d0bd111f Bug 1208320 - Produce cppunittest and reftest packages via Python; r=glandium
With this change, all test ZIP archives are now generated via Python and
mozpack.

This change does not change I/O or file copy behavior at all. There is
still a lot of room for eliminating extra file copies.

--HG--
extra : commitid : 9mWdtDK6wAb
extra : rebase_source : 0f19c627d64d22bf9d65161d4f7df7c9778dea3c
2015-09-30 09:58:31 -07:00
Gregory Szorc
fe96a68dba Bug 1208320 - Produce common tests archive via Python; r=glandium
This doesn't change I/O or copy behavior at all. But it does remove a
one-off make rule.

--HG--
extra : commitid : X0efdFHA0k
extra : rebase_source : c7cb8616461eccd1ff7f8eb3b409bd4944c9e1ec
2015-09-30 17:38:53 -07:00
Gregory Szorc
1c2fb95934 Bug 1208320 - Produce talos test archive without staging files; r=glandium
This is pretty straightforward. This saves ~26 MB of file copies.

--HG--
extra : commitid : ItghoP73zS8
extra : rebase_source : 9656719a6459c1e6fa28165591722fe00d6d9b1d
2015-09-30 09:48:04 -07:00
Gregory Szorc
1d1f8b07c4 Bug 1208320 - Produce web-platform test archive without staging; r=glandium
The web-platform test archive now builds without any staging at all.
This saves ~103 MB of file copies on my machine.

The testing/web-platform/Makefile.in serves no purpose after this
change, so it and all references to it have been removed.

--HG--
extra : commitid : HDHGG3QGVBH
extra : rebase_source : dd7302aad96b46932aa00e4e66918c8077475b10
2015-09-30 09:47:22 -07:00
Gregory Szorc
e715f404c4 Bug 1208320 - Produce mochitest test archive without staging test files; r=glandium
This is very similar to what we did for xpcshell. Like xpcshell, there
are still some staged files. However, about 73MB of copies are
eliminated with this change. On my machine, overall execution time of
test packaging appears to decrease, although CPU usage is up slightly.

--HG--
extra : commitid : 5dy340X80J9
extra : rebase_source : d37be29367b17e6c1d9c885ab4705932b7a42b39
2015-09-30 09:46:35 -07:00
Gregory Szorc
a9b7ca4989 Bug 1208320 - Produce xpcshell archive without staging test files; r=glandium
This commit produces the xpcshell test archive without staging 5000+
xpcshell test files first.

We teach the archiver to ignore .mkdir.done files.

The xpcshell Makefile.in still stages some files. This is less than
ideal. However, it is a small handful of files and shouldn't add too
much overhead.

This appears to not impact overall CPU usage significantly on my
machine, despute using Python instead of `zip`. It does reduce I/O
by ~25MB by avoiding the staging copy.

--HG--
extra : commitid : IwvLaYvAbFt
extra : rebase_source : a690ae4b1adbabd491851a2479fa66d81241601b
2015-09-30 09:36:16 -07:00
Gregory Szorc
212a2d7513 Bug 1208320 - Produce mozharness test archive via mozpack; r=glandium
Test archive generation currently copies a bunch of files into a staging
area then runs `zip` to produce ZIP files. There are 2 concerns with
this approach:

1) We incur a lot of extra I/O to copy files so everything is
   rooted in a single tree so the `zip` invocation and paths are
   simple.
2) ZIP files inherit properties from the local filesystem (including
   mtime), making ZIP files non-deterministic.

This commit introduces a new mozbuild action for producing test
archives. It does so using the mozpack file finder and JAR writer,
which are used throughout the build to deterministically
produce ZIP/JAR files from files in multiple source directories.

We implement support for producing the mozharness archive. This archive
does not involve files that are staged, so no I/O is saved. In fact,
the switch from `zip` to Python likely makes this slightly slower.
However, we do have deterministic archives now.

Additional archives will be ported over in subsequent commits.

--HG--
extra : commitid : H1BOidPDZST
extra : rebase_source : 120e2bfea921e5fb3a8d97b2dd0227edce452cfd
2015-09-30 11:34:33 -07:00
Gregory Szorc
48a66e97a7 Bug 1208320 - Allow FileFinder to find dot files; r=glandium
Previously, we always skipped over files beginning with a ".". This
commit adds an option to include them.

This is needed to support test package generation via Python / mozpack.

--HG--
extra : commitid : 4pmEpukVX0s
extra : rebase_source : 31599230ce344b9be815b3a457cc8a7c6d8e5301
2015-09-30 09:16:33 -07:00
Mike Hommey
9f2c4e94ba Bug 1209875 - Get rid of XULPPFLAGS. r=gps
The flags added in toolkit/locales/Makefile.in turn out not to be actually
used, so just remove that.

The remaining uses of XULPPFLAGS are to set debug flags depending on whether
MOZ_DEBUG is set or not. Just set a dedicated variable with the right value
from configure.
2015-10-01 07:30:48 +09:00
Mike Hommey
164381084f Bug 1209839 - Remove the -E option to the preprocessor. r=gps 2015-10-01 07:30:14 +09:00
Michael Ratcliffe
3efb3a9e6f Bug 1203520 - We need a DevTools ESLint plugin containing our ruleset r=gps
--HG--
extra : commitid : FrMOnVBUxmY
extra : rebase_source : c38511e94177f651a0decad41180991c54cb0f33
2015-09-30 14:44:48 +01:00
Ehsan Akhgari
b73f093357 Bug 904572 - Add support for generating clang compilation database; r=glandium,r=gps 2015-09-29 09:23:50 +09:00
Mike Hommey
86a76ef43b Bug 1207897 - Add a configure option to build multiple build backends. r=gps
Also record what backends were requested at configure time so that running
`mach build-backend` or `config.status` uses the same set.
2015-09-29 09:23:50 +09:00
Mike Hommey
c038211ac4 Bug 1207893 - Allow to create multiple build backends at once. r=gps
When running mach `build-backend` or `config.status`, it is now possible to
pass multiple backends to the --backend/-b option, so that they can share
moz.build reading and object emitting.

The command line syntax is however maybe a little awkward:
  mach build-backend -b Backend1 Backend2

but supporting with `-b Backend1 -b Backend2` requires more argument parser
twiddling (action='append' doesn't work out of the box with choices, we'd
need a custom action class)
2015-09-29 09:23:49 +09:00
Mike Hommey
d873d2729a Bug 1207893 - Change how we track object consumption from the build backend. r=gps
Currently, we set a flag on each object to know whether it has been consumed
by the backend. This doesn't work nicely when multiple backends try to consume
the same objects.
2015-09-29 09:23:48 +09:00
Mike Hommey
64341c67d8 Bug 1207893 - Refactor how build backend execution is summarized. r=gps
- Make all backends report the time spent in their own execution
- Change how the data is collected for the reader and emitter such that
  each of them is aware of its own data, instead of everything being
  tracked by the backend.

This is meant to open the door to multiple backends running from the
same execution of config.status.
2015-09-29 09:23:47 +09:00
Mike Hommey
0e156c41d5 Bug 1207882 - Add an initial partial implementation of a new, faster, build backend. r=gps 2015-09-29 09:23:46 +09:00
Mike Hommey
75bdaecdfd Bug 1207882 - Associate an install target with every ContextDerived object. r=gps
Since reading context['FINAL_TARGET'] can have side effects, use it lazily.
2015-09-29 09:23:45 +09:00
Mike Hommey
a756617866 Bug 1207882 - Ensure chrome manifests are created in a directory that exists when processing jar manifests. r=gps
This currently works because other things in the build system are creating
those directories, but it's not a safe thing to rely on.
2015-09-29 09:23:45 +09:00
Chris Manchester
933886fcaf Bug 1184405 - Take matches by wildcard pattern into account in the test resolver. r=gps
--HG--
extra : commitid : 20bUC0s5hyx
2015-09-25 07:33:11 -07:00
Chris Manchester
c5c1b11a93 Bug 1184405 - Add a mach command to expose test-deps file info. r=gps
This commit exposes test-deps file info as a mach command, and
modifies the test scheme reader to make it filter out unsuitable
contexts when generating TestManifest objects for metadata context.

--HG--
extra : commitid : 7QOoHkfvWOF
2015-09-25 07:33:11 -07:00
Chris Manchester
9e57cd5781 Bug 1184405 - Add annotations for tags, file patterns, and test flavors to moz.build to specify tests potentially impacted by source files. r=gps
--HG--
extra : commitid : JbsAq6sNQ9f
2015-09-25 07:33:11 -07:00
Chris Manchester
442573a6f8 Bug 1184405 - Add a container type to mozbuild with a namedtuple-like interface and typed, mutable fields. r=gps
--HG--
extra : commitid : C983a05SWwh
2015-09-25 07:33:11 -07:00
Nick Alexander
faa87abc9b Bug 1194365 - Bump Andoid NDK to r10e; manually install Android SDK and NDK on Mac OS X. r=mcomella
This bumps the NDK version to r10e.

Previously, we used brew to install android-sdk and a custom version
of android-ndk.  That makes it hard to control the installed versions.
This installs from downloaded archives, which unifies the Mac OS X
approach with the straight-forward Linux approach.

--HG--
extra : commitid : E7hEqsyy8Gw
extra : rebase_source : 9ea27e7d2ae3fbaaa3efbabdd701521981bec877
extra : histedit_source : c07c80c50ac066dc6808e7ccf96f0bc14dc09df2
2015-09-22 13:56:17 -07:00
Nick Alexander
4fd10538cf Bug 1171232 - Depend on platform-tools-preview; don't check for missing and failing Android packages. r=mcomella
The 'tools' package depends on 'platform-tools-preview' now.  Roll
with it until Google breaks us back again.

The behaviour of the |android| tool has changed; recent versions don't
reveal what packages are installed.  That means we can't skip already
installed packages; and we can't really tell if our installation
attempts succeeded.  But we have faith!

--HG--
extra : commitid : 341NxbHTJXC
extra : rebase_source : 945e8018effc0b417fc3fedb7220455fabeaedb3
extra : histedit_source : e42fb06e176d5b9e9ebb6553af7045f3a061105f
2015-09-22 13:54:17 -07:00
Nick Alexander
14f61c3434 Bug 1204260 - Post: remove platforms/android-* from |mach bootstrap|. r=glandium
--HG--
extra : commitid : 8ty9AOUtBe2
extra : rebase_source : 3eb41ec78617f82c80da194d709053ada16afc78
extra : histedit_source : 565b7dbf6a1014c70e2251616471f3bb072c5036
2015-09-22 11:40:06 -07:00
Nick Alexander
416f8c64aa Bug 1108782 - Part 2: Explode AAR files at configure time. r=glandium
This gets us a limited version of AAR support: we can consume static
AAR libraries, where here static does not refer to linking, but to
static assets that are fixed at build-backend time and not modified
(or produced) during the build.  This lets us pin our dependencies
(and move to Google's versioned Maven repository packages, away from
Google's unversioned ad-hoc packages).

By restricting to static AAR libraries, we avoid having to handle
truly complicated dependency trees, as changing parts of generated AAR
files require delicate rebuilding of the APKs (and internal libraries)
that depend on the AAR files.

It is possible that we will generate AARs in the tree at some time.
Right now, we don't do that, even for GeckoView: the AARs produced are
assembled as artifacts at package time and are intended for external
consumption.  We might want this for GeckoView and Fennec at some
time; we should consider using Gradle everywhere at that point.

The patch itself does the simplest possible thing (which has precedent
from Gradle and other build systems): it simply "explodes" the AAR
into the object directory and uses existing mechanisms to refer to the
exploded pieces.

AARs have both required and optional components.  Each component is
defined with an expected and required flag. If a component is expected
and not present, or not expected and is present, an error is raised.
If the component is expected and present, autoconf's ifelse() macro is
used to define the relevant AAR_* component variables.  If the
component is not expected and not present, no action is taken.  A
consuming build backend therefore can guard all AAR_* component
variables with just the top-level AAR variable.

Many AAR files have empty assets/ directories.  This patch doesn't
explode empty assets/ directories, protecting against trivial changes
to AAR files that don't impact the build.

There's a lot not to like in this approach, including:

* We need to manually reference internal AAR libs;
* I haven't separated the pinned version numbers out of configure.in.

However, it's closer to what we want than what we have!

--HG--
extra : commitid : 11kUhDAkCn5
extra : rebase_source : 2454c9842ab3296d53ca5fa394a5a962aa382c8d
extra : histedit_source : e2f97502d215016925e93500b8fd93f8b32fba3a
2015-09-22 10:04:26 -07:00
J. Ryan Stinnett
4f1af0e003 Bug 912121 - Update misc. DevTools paths and comments. rs=devtools
--HG--
extra : commitid : BSf4D59s9HF
extra : rebase_source : 4d14e1aa3ad93bbb426861336e8b703bc1e0b3af
2015-09-21 12:07:31 -05:00
Xidorn Quan
c13216ec53 Bug 1205144 - Remove 'REMOVED' commands from output of mach-commands and mach-debug-commands. r=gps DONTBUILD
--HG--
extra : source : 7d40827d58f699b57668ad80573e93b3b0a8d0b0
extra : amend_source : 98c5b7adbd1a330528d70a8f41096cd26fe49bdd
2015-09-21 11:32:03 +10:00
Mike Hommey
624c5580a9 Bug 1204719 - Don't create interfaces.manifest files from the build backend. r=gps 2015-09-16 17:21:27 +09:00
Mike Hommey
b8c10aca4a Bug 1204712 - Handle wildcards properly for localized content in jar manifests. r=gps 2015-09-16 17:21:12 +09:00
Ted Mielczarek
15800ee8cb bug 935237 - use libdmg-hfsplus to create DMG files during packaging on Linux. r=gps
--HG--
extra : commitid : 2d19BPHSECP
extra : rebase_source : 8121f9f1a929fdf2bdbf53817b7f98c26d9163ec
2015-08-21 15:33:03 -04:00
Ted Mielczarek
62ae78337e bug 1198226 - Add HOST_{C,CXX}FLAGS recursive make varible blacklist. r=mshal
--HG--
extra : commitid : FoL068jTSIs
extra : rebase_source : c520079216e1d53e2bfca01a14d391d0e86e25a0
2015-08-25 09:17:30 -04:00
Ted Mielczarek
15063c8111 bug 1198226 - Add HOST_{CFLAGS,CXXFLAGS,DEFINES} support to mozbuild frontend+recursive make backend. r=mshal
--HG--
rename : python/mozbuild/mozbuild/test/backend/data/defines/moz.build => python/mozbuild/mozbuild/test/backend/data/host-defines/moz.build
rename : python/mozbuild/mozbuild/test/frontend/data/defines/moz.build => python/mozbuild/mozbuild/test/frontend/data/host-defines/moz.build
extra : commitid : BqqF9IWK2hy
extra : rebase_source : 4beab63be2ffca5c0a43cd14039ffeb259ea74fe
2015-09-04 13:33:04 -04:00
Peter Moore
0cc8144421 Bug 1194767 - use slugid 1.0.6 in ./mach taskcluster-graph command. r=wcosta
This included adding the slugid 1.0.6 python source code in /python since slugid
is now a dependency of the ./mach taskcluster-graph command, as well us updating
references that used it. Previously the implementation was in-tree.
2015-09-04 17:59:34 +02:00
Gregory Szorc
84631939a9 Bug 1174037 - Support installing Mercurial from pip; r=glandium
Previously, we used a PPA on Ubuntu to install Mercurial. The PPA has
proved to be unreliable. Furthermore, we didn't have a mechanism for
installing a modern Mercurial on Debian and other derived distros.

In this commit, we remove the PPA from Ubuntu. We add the ability to
install Mercurial from pip to the Debian bootstrapper. However, since
some people may not want <not apt> installing package-like things,
we add a prompt explaining the situation and giving users a choice.
We recommend installing a modern Mercurial via pip. But we also given
the option to install a likely legacy version via apt. And, for Git
users, we give the option to not install Mercurial at all.

Since the new version of the Ubuntu bootstrapper is empty, it doesn't
need to exist, so it has been removed.

DONTBUILD (NPOTB)

--HG--
extra : commitid : 1n8D8hTG6Fm
extra : rebase_source : 666d9945650c0ce27a32353d98886e2336628a36
extra : amend_source : bb9e7538157fdac0203e2ecc3165185f95717098
2015-09-04 10:37:29 -07:00
Nick Alexander
9c3e48627a Bug 1137898 - Migrate to android:versionCode scheme v1. r=rnewman,snorp
Android version codes serve multiple masters.  They indicate newer
versions, yes; but they also break ties between versions with
different features and requirements. High order bits effectively
partition the space of versions and are valuable.  Since Android
version codes are signed Java integers, we have 31 bits to work with.
Mozilla's traditional build ID is YYYYMMDDhhmmss.  This was chopped to
ten characters (YYYYMMDDhh, i.e., hourly build IDs) and then converted
to a decimal.  This took many high order bits.  We will lose another
high order bit in the 36th month of 2015 -- i.e., as soon as the year
rolls over to 2016.  If we waited to lose the next higher order bit,
we'd lose that one in the 46th month of 2017 -- i.e., as soon as the
year rolls over to 2018.

The following patch sacrifices a high order bit to change the version
scheme, winning us roughly 15 years of hourly build IDs before we are
forced to lose another high order bit.  So it's clearly to our
advantage to change the scheme sooner rather than later -- we will
sacrifice 1 bit for 15 years of build IDs, rather than keeping the
current scheme and sacrificing (say) 2 bits for 3 years of build IDs.

The resulting scheme produces build IDs that look like (in binary):

0111 1000 0010 tttt tttt tttt tttt txpg

The meaning of these build IDs is documented in the Python source code
that generates them.

--HG--
extra : commitid : 7BEkkGHsYVL
extra : rebase_source : bbc0ead8e7a383c320e838b023b02b1fb0d94ff3
extra : amend_source : dab8c737e3274694aad40123e77884a3239908de
extra : histedit_source : 530bedde3695d534805465cdf8bcb9cd23f7b031
2015-08-26 18:34:48 -07:00
Geoff Brown
2015a6ea72 Bug 1164596 - Add mach android-emulator command; r=ahal 2015-09-01 15:07:53 -06:00
Nicholas Nethercote
f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Xidorn Quan
dbaa85ce62 Bug 1188468 - Allow script to force updating a generated file even if the file is actually not changed. r=gps
--HG--
extra : source : 47b56f2495030d77c446215d8822c31fc32f23b7
2015-08-25 10:07:43 +10:00
Birunthan Mohanathas
bc29413b87 Bug 1197527 - Consolidate obtaining hg path into mozversioncontrol.get_hg_path; r=gps
DONTBUILD

--HG--
extra : commitid : LsREOYJSAa7
extra : amend_source : 6f19087188d9c6c009a817c3499c7fd9165bfc6a
extra : histedit_source : 36aa6d1a3e78367d50a3e65ac6f61872b7a635d4
2015-08-24 14:37:42 -04:00
Philipp Kewisch
757af5060a Bug 1167986 - TEST-UNEXPECTED-FAIL | xpcshell-unpack.ini:toolkit/mozapps/extensions/test/xpcshell/test_signed_install.js (and signing failures). r=gps 2015-08-23 11:54:44 +02:00
Wes Kocher
fa57aa7153 Merge m-c to inbound, a=merge 2015-08-20 12:51:40 -07:00
Wes Kocher
d8fffe1765 Merge inbound to central, a=merge 2015-08-20 12:42:21 -07:00
Joel Maher
02ece3e234 Bug 1196253 - update in-tree psutil to 3.1.1. r=gps 2015-08-20 08:03:31 -04:00
Wes Kocher
96e3c3623b Merge m-c to fx-team, a=merge CLOSED TREE 2015-08-19 17:13:38 -07:00
Nick Alexander
ad27580b77 Bug 1195388 - Part 2: Add ANDROID_EXTRA_{PACKAGES,RES_DIRS} moz.build variables. r=gps
This moves a little bit more of mobile/android/base/Makefile.in into
moz.build, and gets closer to moving that aapt invocation into
java-build.mk.

There are no other extra package consumers in the tree.  (There should
be a new one shortly: b2gdroid.)

--HG--
extra : commitid : AaYqXYReOSX
extra : rebase_source : d41368ff0bd0736221fdc04ed8299b70c2488c8b
extra : histedit_source : 845efd5ba9f99f4e186c3a5c66affe69eac7fec7
2015-08-14 18:13:11 -07:00
Nick Alexander
543a450286 Bug 1195388 - Part 1: Make ANDROID_APK_{NAME,PACKAGE} moz.build variables. r=gps
This paves the way for defining additional Android packages in
moz.build, which is a step toward moving the special
mobile/android/base/Makefile.in aapt invocations into the generic
java-build.mk framework.

The new variables are both passthru variables for now: in the future,
we'll roll them into some aggregate Android APK definition.

It's worth noting that references to the variables in Makefile.in
files are only defined after including rules.mk (and thereby
backend.mk).  This only required a few changes in the tree but it
confused me for some time.

--HG--
extra : commitid : G5mEvm8Ng4F
extra : rebase_source : 7ba05f2e53554549ffb5cefe270925e3e2025b6a
extra : histedit_source : eacd22f4b7edddab67147c413fea45a3ba292c0c
2015-08-19 12:34:58 -07:00
Andrew Halberstadt
f22ebea9f6 Bug 1194415 - Refactor BuildProgressFooter.draw() for minor |mach build| perf improvement, r=gps
Over a 19 minute build, |mach build| was spending ~45s drawing the TIER footer. This brings it down to ~30s.

--HG--
extra : commitid : 2sLWbNL853A
extra : rebase_source : ab8452dfa6ac39bc40a8f22b542e155595f18881
2015-08-13 14:08:12 -04:00
Niels De Graef
582ad89c13 Bug 1195182 - Fixed broken AUR link for uuid; r=gps
DONTBUILD (NPOTB)

--HG--
extra : commitid : GVD1noGQI0w
extra : amend_source : 3e46667094f8bb51bdd74cc2615443bc4db3d0ba
2015-08-18 09:26:37 -07:00
Aaron Raimist
2ed988f853 Bug 1171783 - Fix bootstrap.py by using DNF instead of Yum if possible; r=mshal
DONTBUILD (NPOTB)

--HG--
extra : commitid : KbAGQkESbla
extra : rebase_source : b171bdb997ae94905254a111cd550431e680d3f4
extra : amend_source : 2b2354cb623688359d0dfb1f6b548a19140551d6
2015-08-19 12:56:22 -07:00
David Keeler
a7f29f4b91 bug 1190603 - import PyECC library r=gps,gerv
Obtained from https://github.com/amintos/PyECC.git
(commit 1bfd3a41410c3650e57d58f7bd016bb0819af250)
2015-08-03 15:17:00 -07:00
Nathan Froyd
a8f3b221c3 Bug 1186444 - part 2 - remove MODULE_OPTIMIZE_FLAGS from config.mk; r=mshal 2015-07-22 11:17:49 -04:00
Andrew Halberstadt
9cbfe3373d Bug 1184696 - Add clobber targets to |mach clobber|; Ability to clobber compiled python files, r=gps
This change adds a 'what' parameter to |mach clobber| which facilitates clobbering other things as well.
E.g, |mach clobber python| now clobbers all .pyc and .pyo files in the tree. Multiple clobber targets can
be specified, e.g |mach clobber objdir python|. By default |mach clobber| without arguments will only
remove the currently active objdir, the same as before.

--HG--
extra : commitid : 4mJqdnWPRbH
extra : rebase_source : cf56de2d51c57747047936f7e742bafbf3f91c9f
2015-07-20 14:38:18 -04:00
Ryan VanderMeulen
efce95618e Merge fx-team to m-c. a=merge 2015-08-13 11:00:54 -04:00
Nick Alexander
61a6ae674e Bug 1160563 - Part 2: Make ANDROID_ASSETS_DIRS a moz.build variable. r=gps
We have had singular ANDROID_ASSETS_DIR in Makefile.in for a while.
Fennec itself does not use the existing Makefile.in Android code, for
complicated historical reasons.

This makes the existing variable moz.build-only; generalizes the
existing variable to an ordered list; and adds the equivalent use of
the new list to the Fennec build, with a simple example asset.

This patch also updates the packager to include assets packed into the
gecko.ap_.  Without the packager change, the assets/ directory in the
ap_ gets left out of the final apk.  This whole approach is totally
non-standard but is more or less required to support our single-locale
repack scheme.

--HG--
extra : commitid : 4EAh1UNGNWT
extra : rebase_source : 5e5b4c4a120c3b4cc776c9f9380ddd2f9b63587e
extra : source : 0ddce3eb833e6d6180a19928a9b45d5d12f1d7fa
2015-08-12 11:04:03 -07:00
Nick Alexander
549c28f40f Bug 1160563 - Part 1: Make ANDROID_RES_DIRS a moz.build variable. r=gps
This patch does a few things.  First, it adds an AbsolutePath data
type, sibling to SourcePath and ObjDirPath.  (Existing Path consumers
that accept an open set of Path subtypes, and that only use full_path,
should function fine with the new AbsolutePath subtype.)

Second, it moves ANDROID_RES_DIRS to a moz.build list of Paths
(ordered).  We test, but don't use in tree, the new AbsolutePath.

--HG--
extra : commitid : DMLy1ogTJ0Y
extra : rebase_source : cb9ac47e8bf7c893a0284adc7a42eccb78ccae3d
2015-08-12 11:03:44 -07:00
Eric Rahm
e2ce0103de Bug 1193914 - Properly check ide type when deciding whether or not to package. r=benwa 2015-08-12 13:59:05 -07:00
Ted Mielczarek
a116bbbe7d bug 1164816 - Import concurrent.futures into the tree. r=gps
--HG--
extra : commitid : AjJH6cEqLlp
extra : rebase_source : 6a5befe8804e0297fd18af57643ac0061c570c5a
2015-05-12 14:52:06 -04:00
Ted Mielczarek
de9027084a bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps
--HG--
extra : commitid : 8CKCtjFc6wl
extra : rebase_source : bc51508f3708a7a7af8fe48bdbcb0d787bf77362
extra : source : bca1ad6cc3781af4b8c8667ccb3c29e5bcb50ea9
2015-08-03 15:40:04 -04:00
Kyle Huey
7f17047f2a No bug: Make ./mach clobber work on windows without winrm.exe. r=me 2015-08-11 06:10:46 -07:00
James Graham
399b0b18f5 Bug 1192315 - Support remainder arguments from predefined parsers in mach, r=gps
Mach has special handling for remainder arguments which previously
only worked with the decoration form. Extend this to also work when
a command passes in an explict parser

--HG--
extra : commitid : ICnYk764Xbc
extra : rebase_source : 1518edcb7bef375cbc2931b8da54b015045c8ce1
2015-08-07 18:13:05 +01:00
Allison Naaktgeboren
7346aec254 Bug 1125280 Part 1 build- Different suggestedsite tiles on first run for kidfox.r=gps 2015-08-07 21:40:41 -07:00
Mike Hommey
8a8b15e5db Bug 1181040 - Set ${var}_IS_SET variables for mk_add_options-defined variables. r=gps
It is useful to be able, during mozconfig execution, to do tests depending
on what was previously added with mk_add_options. Specifically, there is a
need to do this for MOZ_PGO because developers pushing to try may add it to
mozconfig.common.override.

While, ideally, it would be nice if we just defined the variable itself in
the mozconfig execution environment, that is a tedious task, having to jump
through hoops with eval, and handle all cases of variable assigment properly.

The hacky alternative is to just treat MOZ_PGO specially, but meh.

So instead, we set a ${var}_IS_SET variable to 1, indicating that a
mk_add_options defined ${var} to some value.
2015-08-07 06:51:52 +09:00
Mike Hommey
b199109bdf Bug 1191575 - Optimize the RecursiveMakeBackend._check_blacklisted_variables test. r=gps
Bug 1153566 changed the regexp used in that method in such a way that there
has been a big hit in the time spent executing the make backend. On my machine,
with the current code, mach build-backend indicates:
  Backend executed in 5.01s
With the change from bug 1153566 reverted:
  Backend executed in 2.97s
That's a significant regression for a 4-character change.
But we can actually avoid using regexp in most cases, which can make things faster
than they were. With this change, we get down to:
  Backend executed in 2.28s
For reference, making the _check_blacklisted_variables method do nothing at all
ends with:
  Backend executed in 2.20s
2015-08-07 06:51:44 +09:00
Ryan VanderMeulen
e65de54860 Backed out revision bca1ad6cc378 (bug 1190522) for breaking OSX B2G Desktop builds.
--HG--
extra : rebase_source : 5f17fac55c77c9566e68c0de4658947034cfdc0f
2015-08-06 15:43:45 -04:00
Ted Mielczarek
109add737e bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps
--HG--
extra : commitid : 4xZjKDFBFp1
extra : rebase_source : 01fa275cd594a66c523b04857b180ec7fde5b3c8
2015-08-03 15:40:04 -04:00