Commit Graph

1826 Commits

Author SHA1 Message Date
Chris Manchester
3279acb990 Bug 1241989 - Speed up install manifests by avoiding path operations. r=gps
This is two straightforward optimizations in FileCopier: avoiding a redundant iteration
over the directory structure to find destination files (which includes a
call to normpath) and avoiding redundant calls to determine directories to preserve
when remove_unaccounted is not specified (which include a call to dirname).

Running a no-op install of _tests with this patch results in a reduction of about
25,000 calls to normpath and remove about 220,000 calls to dirname, resulting in
an overall speedup of 10-20%.
2016-01-22 13:54:33 -08:00
Syd Polk
a6383d64c3 Bug 1240120 - Move external-media-tests to subdirectory to generate correct packaging; r=maja_zf,whimboo 2016-01-21 23:00:59 -06:00
Andreas Tolfsen
6a746a32e3 Bug 1205687 - Package and include Marionette tests in all-tests.json; r=chmanchester,gps
Listing the tests in all-tests.json is prerequisite to adding support
for Marionette tests to `./mach test FILE`.

Marionette tests will be run from the source directory, as they do not
currently need packaging.
2015-10-22 16:22:34 +01:00
Gregory Szorc
cda0cbe3f1 Bug 1241771 - Print install manifest processing time; r=glandium 2016-01-21 22:42:47 -08:00
Mike Hommey
4e70a20392 Bug 1239217 - Add the FasterMake+RecursiveMake hybrid backend. r=gps 2016-01-22 15:43:26 +09:00
Mike Hommey
6affd3fadd Bug 1239217 - Make the RecursiveMake build system create backend files generically. r=gps
The current rule is only for "backend.RecursiveMakeBackend", but, with
the current default of generating both the RecursiveMake and FasterMake
backends, the command creates/refreshes both backends. This is, in fact,
how the FasterMake backend is refreshed in most cases.

Moreover, with an hybrid backends, the generated file is not
"backend.RecursiveMakeBackend" anymore, so we need a more generic way to
handle this.

Furthermore, it's not necessarily desirable for all backends to have a
dependency file to handle the dependencies to refresh the backend, so
generate a plain list instead. This has the side effect of making `mach
build-backend --diff` more readable for changes to that file.

Finally, make the backend.* files created like any other backend file,
such that its diff appears in the `mach build-backend --diff` output.
2016-01-22 15:43:24 +09:00
Mike Hommey
b601bd026a Bug 1239217 - Stop making the FasterMake build system refresh the backend on its own. r=gps
The FasterMake build system is meant to be invoked through `mach build
faster`, which does it already, or, in the near future, as part of an
hybrid build system, which will deal with it as well. People doing
`make -C objdir/faster` won't have the backend automatically refreshed,
but that's not a supported way to use it anyways.
2016-01-22 15:43:23 +09:00
Mike Hommey
f2fa3d2d73 Bug 1239217 - Add the notion of Partial and Hybrid build backends. r=gps
Make the FasterMake backend a partial build backend.
2016-01-22 15:43:21 +09:00
Mike Hommey
7b72baa2ce Bug 1239217 - Skip empty install manifests, apart a few exceptions. r=gps
Install manifests are not empty in normal conditions, apart a few
exceptions where they are only used for a "magic" `rm -rf`.

However, we're going to introduce changes that will empty some of
the install manifests and make their work happen from a different
backend, in which case we don't want them to correspond to a `rm -rf`.
2016-01-22 15:43:16 +09:00
Mike Hommey
4482b7316b Bug 1241398 - Add a dry-run mode to mach build-backend. r=gps
When doing build system changes affecting backend-generated files, I
often use `mach build-backend --diff`. But most of the time I end up
wanting to look at the full diff again when doing further changes, which
leads me to stash my changes away, run `mach build-backend` to get the
initial state again, unstash and rerun `mach build-backend --diff`.

This has been a time drain for long enough :)
2016-01-22 07:00:23 +09:00
Mike Hommey
b37b7a42ba Bug 1241398 - Allow to pass the --verbose flag down to config.status from mach build-backend. r=gps 2016-01-22 07:00:23 +09:00
Mike Hommey
fda12074fd Bug 1241398 - Show the diff for created and deleted files in mach build-backend --diff. r=gps 2016-01-22 07:00:23 +09:00
Mike Hommey
207eeb9972 Bug 1241398 - Remove the FilePurger class. r=gps
Its only last use was removed.
2016-01-22 07:00:23 +09:00
Mike Hommey
c075768839 Bug 1241398 - Don't purge install manifests from the recursive make backend. r=gps
The code doing this was added before we had install manifests, back when
they were purge manifests, and before we tracked all files created by
the backend. Nowadays, if an install manifest is removed, it will be
removed in BuildBackend.consume.

In fact, purging the install manifests in the backend itself breaks the
deleted files count displayed after reticunating splines.
2016-01-22 07:00:23 +09:00
Jacek Caban
28214bc053 Bug 1239672 - Fixed symbols file support on mingw. r=glandium 2016-01-21 13:39:41 +01:00
Mike Hommey
e57b78cbd2 Bug 1241022 - Remove affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey
7e072050f2 Bug 1241022 - Remove code handling affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey
eb7f6ff42e Bug 1241022 - Fix XPI_NAME and FILES_PER_UNIFIED_FILE. r=gps
XPI_NAME affects no tier on its own, as it merely changes paths where
things end up that are defined by other variables.

FILES_PER_UNIFIED_FILE had an erroneous value.
2016-01-21 13:54:03 +09:00
Mike Hommey
236da83650 Bug 1241022 - Move IPDL_SOURCES, XPIDL_SOURCES and *WEBIDL_*. r=gps
Those are the worst offenders of affected_tiers. The rules to handle
them are all in directories that is not necessarily related to where
the variables are defined, each of which has a Makefile.in for those
rules, which forces export to go through them.
2016-01-21 13:54:03 +09:00
Mike Hommey
e929abf298 Bug 1241022 - Move FINAL_TARGET_PP_FILES and TEST_HARNESS_FILES. r=gps
They are respectively using PP_TARGETS and INSTALL_TARGETS. Both affect
the misc tier since bug 1240671, per the *_TARGET value they set in the
backend.

This has the nice side effect of now skipping directories where test
harness files are handled by install manifests.
2016-01-21 13:54:03 +09:00
Mike Hommey
0703d984ce Bug 1241022 - Move JAR_MANIFESTS. r=gps
JAR_MANIFESTS affects the libs tiers through config/rules.mk rules.
While we could move the rules in the backend, they are too complex to
just do that now.
2016-01-21 13:54:03 +09:00
Mike Hommey
8c54f076a8 Bug 1241022 - Move GENERATED_FILES. r=gps
GENERATED_FILES impacts the export tier through the config/rules.mk
definitions, now moved to the backend itself, so that everything is
close to each other.
2016-01-21 13:54:03 +09:00
Mike Hommey
6b56851cc3 Bug 1241022 - Move ANDROID_*_DIRS, ANDROID_EXTRA_PACKAGES, ANDROID_ECLIPSE_PROJECT_TARGETS and JAVA_JAR_TARGETS. r=gps
Those are non-passthru variables with the same property as
ANDROID_GENERATED_RESFILES, ANDROID_APK_NAME and ANDROID_APK_PACKAGE, in
that they don't affect tiers through the backend code itself, but from
the Makefile.in along the moz.build they are defined in.
2016-01-21 13:54:03 +09:00
Mike Hommey
66504a1d53 Bug 1241022 - Move ANDROID_GENERATED_RESFILES, ANDROID_APK_NAME, ANDROID_APK_PACKAGE. r=gps
The are passthru variables that don't actually affect any tier per the
backend itself. They do affect the `export` tier by way of the Makefile.in
along the moz.build defining them, and the existence of those
Makefile.in already guarantees those directories not to be skipped for
`export`.
2016-01-21 13:54:03 +09:00
Mike Hommey
b4bf41f235 Bug 1241022 - Do not handle HAS_MISC_RULE with affected_tiers. r=gps
This initiates a move off affected_tiers in VARIABLES definition to
explicit in-backend handling, which will hopfully make things clearer.

HAS_MISC_RULE is currently used to opt-in to the misc tier in a few
directories with a misc:: rule.  It is, in fact, mostly used for custom
xpi creation, which will be separately addressed in bug 1240676, so it
will eventually go away entirely, but in the meantime, we send it as a
throwaway passthru.
2016-01-21 13:54:03 +09:00
Mike Hommey
f3716d66a4 Bug 1241022 - Handle all tiers as opt-in in the recursive make backend. r=gps
Historically, all tiers were handled as opt-out (may_skip), until we
added the first opt-in tier (no_skip). It doesn't make much sense to
differentiate them anymore, so handle them all as opt-in.
2016-01-21 13:54:03 +09:00
Mike Hommey
12d5e4cb16 Bug 1240990 - Define all backends in one place. r=gps
When adding a backend, we currently have to add them in three different
places so that they appear in the right places.

Instead, keep the list in a single place.
2016-01-21 13:54:03 +09:00
Mike Hommey
f3b14e6518 Bug 1240945 - Add a --verbose option to mach package. r=mshal 2016-01-21 13:54:03 +09:00
Chris Manchester
f337bf3093 Bug 1240530 - Bump the taskcluster version installed by |./mach artifact| to avoid installing an out-dated requests. r=nalexander
Currently |./mach artifact| installs an old version of the taskcluster client,
which installs an old version of requests that's incompatible with commonly
installed python versions. This bumps to a version of taskcluster client that
accepts and requests version < 3, so we pick up the in-tree version instead of
installing 2.4.3.
2016-01-19 16:00:11 -08:00
Carsten "Tomcat" Book
94d175ba23 merge mozilla-inbound to mozilla-central a=merge 2016-01-20 15:34:34 +01:00
Mike Hommey
fdaae52ad9 Backout changeset de0a7a1cdc4a from bug 1240660 for make package bustage on a CLOSED TREE 2016-01-20 08:03:58 +09:00
Mike Hommey
b3ffbcf672 Bug 1240671 - Move FINAL_TARGET_PP_FILES and TEST_HARNESS_FILES to the misc tier. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey
5c61f23391 Bug 1240660 - Move jar_maker to the misc tier, now that ordering does't matter. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey
9fc2271352 Bug 1240660 - Remove support for the "+" prefix in jar manifests. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey
e82de99d20 Bug 1237140 - Add support for local defines in generate_symbols_file. r=gps
generate_symbols_file only supports the global defines, and completely
ignores DEFINES from the same moz.build the SYMBOLS_FILE is defined.
This fixes this misfeature.
2016-01-20 07:24:40 +09:00
Mike Hommey
7e5616ea66 Bug 1237140 - Allow file_generate scripts to take additional flags. r=gps
Currently, file_generate scripts can only accept input and output file
name, but sometimes, one would like for them to take additional flags.
2016-01-20 07:24:40 +09:00
Mike Hommey
86b16127f9 Bug 1237140 - Move DefinesAction from mozbuild.action.process_install_manifest to mozbuild.util. r=gps 2016-01-20 07:24:40 +09:00
Panos Astithas
ddd8fa3a07 Bug 1143698 - Selecting macports on Yosemite fails out. r=gps 2016-01-20 00:00:41 +02:00
Panos Astithas
780240d193 Bug 1114382 - Implement |mach bootstrap| for mobile/android on OS X with macports package manager. r=nalexander 2016-01-19 14:19:55 +02:00
Jim Chen
d4d839c979 Bug 1240082 - Remove ant requirements; r=nalexander 2016-01-13 13:19:23 -05:00
Chris Manchester
26c7f25c2e Bug 1240323 - Fix installation of binary components in a subdir of dist/bin for linux artifact builds. r=nalexander
A recent change regressed this behavior -- while an artifact build runs, it
doesn't load certain "about:" pages due to missing libraries in subdirectories
of dist/bin.
2016-01-16 18:13:47 -08:00
Gregory Szorc
b93e1eb1a8 Bug 1239880 - Don't copy thousands of web-platform test files to objdir; r=chmanchester
AFAICT, we don't actually access web-platform test files from the
objdir for anything except test packaging. And we already have
a mechanism for creating test archives from files directly in the
source directory. So, let's stop copying them to the objdir and
package them directly from the source directory!

The _tests install manifest reports the following change:

before: 41,977 files installed
after:  24,537 files installed
delta: -17,440 files

We still copy some WPT files to the objdir. We might be able to
eliminate these as well. However, since there are only ~200 files,
I'm not too concerned.

I manually compared the resulting web-platform zip archives from before
and after. No files were removed from the archive. However, the new
archive does gain several hundred empty directories with .gitkeep
files. This feels weird, but it shouldn't break anything (I would
think). I'm inclined to leave them for now. I'll file a follow-up
bug to deal with them (preferably by removing them from version
control).
2016-01-15 20:09:12 -08:00
Wes Kocher
5354ec457f Merge m-c to inbound, a=merge CLOSED TREE 2016-01-15 15:13:21 -08:00
Mike Hommey
212dd87f64 Bug 1239872 - Prevent jar maker from installing the same file twice. r=gps
The faster make backend cannot support such things, so it's better to
avoid unsupported things to slip in because it happens that doesn't
break what automation runs.
2016-01-16 07:19:08 +09:00
Mike Hommey
62da517e49 Bug 1239169 - Check that files exist before marking them for removal during install manifest processing. r=gps 2016-01-16 07:19:08 +09:00
Carsten "Tomcat" Book
b9de9c50fc Backed out changeset a87a27864bb8 (bug 1223385) 2016-01-15 13:51:54 +01:00
Carsten "Tomcat" Book
d327724749 merge mozilla-inbound to mozilla-central a=merge 2016-01-15 11:46:47 +01:00
Jim Chen
51ad27ba13 Bug 1223209 - Clean up old GeckoView library files; r=nalexander
Right now, each incremental build produces a new set of GeckoView
library files, but the previous files don't get cleaned up, and you end
up with a bunch of old libraries in your objdir. This patch cleans up
the old files before producing new ones.
2016-01-14 18:20:02 -05:00
Nick Alexander
52d2bc3df3 Bug 1239738 - Handle artifact builds with no test binaries cleanly. r=ahunt
DONTBUILD NPOTB on a CLOSED TREE
2016-01-14 09:38:48 -08:00
Gijs Kruitbosch
d41a0f53e5 Bug 1239678 - fix dll inclusion pattern on Windows and the placement of nested dlls like browsercomps and clearkey, r=nalexander 2016-01-14 14:56:59 +00:00