Commit Graph

1958 Commits

Author SHA1 Message Date
Vincent Povirk
51103762a1 python/mach: Run 2to3. 2019-09-06 15:43:05 +02:00
Vincent Povirk
6a863cd6ee python/blessings: Revert to upstream version. 2019-09-06 15:43:04 +02:00
Chris Pearce
a0200865fc Bug 1263506 - Ensure MOZ_GMP_PATH in gtests always has native dir separators. r=glandium, a=ritu
Without this, the GeckoMediaPlugin gtests fail, as the GMP stack is unable to
load GMPs from disk.

MozReview-Commit-ID: GGXdm2L5IF9
2016-04-12 16:12:19 +12:00
Maja Frydrychowicz
3bb91b4e21 Bug 1255196 - Include mozinfo.json in common.tests.zip. r=gps, a=test-only
MozReview-Commit-ID: BJnXphkKJFy
2016-03-10 15:44:59 -05:00
Nicholas Nethercote
071e686284 Bug 1253526 (part 1) - Remove DMD's --max-frames option. r=erahm.
Nobody uses it.
2016-03-04 17:02:20 +11:00
Chris Manchester
10b2d39cad Bug 1253076 - Handle the case defines are not present to avoid artifact build bustage when processing symbols files. r=glandium
MozReview-Commit-ID: 25oUlS12hec
2016-03-02 16:25:56 -08:00
Gregory Szorc
be0bef3b34 Bug 1252170 - Disable Spotlight indexing of objdir on OS X; r=ted
Creating a .metadata_never_index file in a directory apparently
disables Spotlight indexing.

MozReview-Commit-ID: Di4DGZK6VOL
2016-03-02 14:19:30 -08:00
Chris Manchester
daa007897e Bug 1234913 - Support git in |mach artifact install|. r=nalexander
MozReview-Commit-ID: LL6kO8QS5p9
2016-02-24 23:20:42 -08:00
Chris Manchester
96770659dc Bug 1234913 - Stop using local pushlog in |mach artifact install|. r=nalexander
MozReview-Commit-ID: CG5KcYbTcbM
2016-02-24 23:47:06 -08:00
Nick Alexander
9c042ecdab Bug 1234913 - Clarify things that are hg-specific; make iteration lazy. r=chmanchester
MozReview-Commit-ID: LL6kO8QS5p9
2016-02-24 21:58:22 -08:00
Nick Alexander
69abd78927 Bug 1234913 - Pre: Show download progress during |mach artifact install|. r=nalexander
Hotel WiFi inspires many things.

MozReview-Commit-ID: 8WoHMWGNf0K
2016-02-24 23:21:37 -08:00
Nick Alexander
7af1b588d2 Bug 1234913 - Pre: Allow to --skip-cache when running |mach artifact install|. r=chmanchester
MozReview-Commit-ID: M2FYAPEqXy
2016-02-24 23:25:25 -08:00
Dan Minor
0c60e092ad Bug 1251076 - Record ccache stats in build telemetry data r=gps
Using ccache can have a big impact on compile times but we don't currently
capture ccache statistics.

MozReview-Commit-ID: CdrScyAh64I
2016-02-25 10:35:07 -08:00
Mike Shal
11261c7f0f Bug 1252301 - allow installing CONFIGURE_SUBST_FILES; r=glandium
We need to consider CONFIGURE_SUBST_FILES as generated files when
processing FinalTargetFiles and related variables. Additionally, we have
to make sure that we actually recurse into such directories during the
export phase.

MozReview-Commit-ID: 6ZwHMzjoT6t
2016-02-29 16:49:59 -05:00
Quentin Headen
6d693559c6 Bug 1251810 - Update Arch pacman -U command in bootstrap to handle --no-interactive; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: GsFS39CNx8V
2016-02-29 13:32:18 -08:00
Gregory Szorc
b7eaed7cf0 Bug 1251870 - Disable indexing of objdir on Windows; r=ted
The Windows content indexing service has been known to scan the objdir.
This can add significant system overhead and slow down builds or
subsequent operations. The objdir is meant to be a short-lived black box
and there really isn't a major benefit to indexing it.

There is a file attribute on Windows that disables content indexing.
This commit adds a utility function for creating a directory and
optionally disabling indexing on it. We call it at the top of
`mach build` to ensure the objdir as content indexing disabled.

MozReview-Commit-ID: 68gxCxbkVAN
2016-02-27 11:58:12 -08:00
Chris Manchester
77c91e9f64 Bug 1250961 - Move testing/xpcshell/Makefile.in to moz.build. r=gps
MozReview-Commit-ID: 8J9RzA0RZ0i
2016-02-26 13:20:31 -08:00
Chris Manchester
a7485341ef Bug 1250961 - Move testing/mochitest/Makefile.in to moz.build. r=gps
MozReview-Commit-ID: LwQH49FLfY2
2016-02-26 13:20:31 -08:00
Jan Beich
4fbd516e20 Bug 1242132 - Make sure to split multiple _FLAGS after bug 1224452. r=glandium 2016-02-21 21:18:03 +00:00
Dan Minor
2dda96af36 Bug 1250624 - Overall system resources is displayed twice; r=chmanchester
MozReview-Commit-ID: Hbx8lOlrUuw
2016-02-24 09:18:03 -08:00
Quentin Headen
e976e965ef Bug 1251352 - Respect --no-interactive during Arch bootstrap; r=gps 2016-02-25 11:47:58 -08:00
Sambuddha Basu
26832d20f0 Bug 1169089 - Merge CentOS and Fedora bootstrap code; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: 6WDykc20TKf
2016-02-25 11:11:39 -08:00
Gregory Szorc
97791119bf Bug 1249858 - Stop processing IPDL and WebIDL files during artifact builds; r=glandium
We don't process IPDL and WebIDL files during artifact builds. The
backend shouldn't need to care about them.

Before: 2001 total backend files; 2001 created; 0 updated; 0 unchanged; 0 deleted
After:  1945 total backend files; 1945 created; 0 updated; 0 unchanged; 0 deleted

After this change, we no longer write any .cpp files to the objdir
during config.status for artifact builds.

As part of this, we stopped generated webidlsrcs.mk and the build broke
because of an unguarded use in a Makefile.

After this change, only 102/3366 files in the objdir after
`mach configure` are not a) in _virtualenv b) named backend.mk
c) named Makefile (~950 each of backend.mk and Makefile).

MozReview-Commit-ID: 11AIn1i4x4f
2016-02-19 21:46:29 -08:00
Gregory Szorc
e2c908066d Bug 1249858 - Do not generate unified C++ files during artifact builds; r=glandium
I can't think of a good reason why unified C++ files need to exist
during artifact builds. Let's not write them in this build config.

Before: 2517 total backend files; 2517 created; 0 updated; 0 unchanged; 0 deleted
After:  2001 total backend files; 2001 created; 0 updated; 0 unchanged; 0 deleted

No measureable change in performance on Linux. But on Windows where file
creation is in the ~1ms range, this will surely result in a speedup of
several hundred milliseconds.

We are still generating some .cpp files during artifact builds. This will be
addressed in subsequent commits.

MozReview-Commit-ID: Lqx36YE8qZZ
2016-02-19 21:41:24 -08:00
Gregory Szorc
fece790a96 Bug 1249858 - Add property exposing whether performing an artifact build; r=glandium
Future commits will add a number of consumers. This will cut down on
boilerplate.

MozReview-Commit-ID: 8h4VWBXXd8O
2016-02-19 21:40:09 -08:00
Gregory Szorc
1a29056508 Bug 1249210 - Install files using multiple threads on Windows; r=glandium
As previous measurements have shown, creating/appending files
on Windows/NTFS is slow because the CloseHandle() Win32 API takes
1-3ms to complete. This is apparently due to a fundamental issue
with NTFS extents. A way to work around this slowness is to use
multiple threads for I/O so file closing doesn't block execution
as much.

This commit updates the file copier to use a thread pool of 4
threads when processing file copies. Additional threads appear
to have diminishing returns.

On my i7-6700K, this reduces the time for processing the tests install
manifest (24,572 files) on Windows from ~22.0s to ~12.5s in the best
case.

Using the thread pool globally resulted in a performance regression
on Linux. Given the performance sensitivity of manifest copying,
I thought it best to implement a slightly redundant non-Windows
branch to preserve performance. For the record, that same machine
running Linux is capable of processing nearly the same install
manifest (24,616 files) in ~2.2s in the best case.

MozReview-Commit-ID: B9LbKaOoO1u
2016-02-19 18:28:26 -08:00
Dan Minor
64bf29115f Bug 1244160 - Create json-schema for build telemetry data r=gps
This adds a simple schema for build telemetry data. We can make it more
restrictive once we have a better feeling for what kind of data we want
to submit.

This also moves more common data about the system to the telemetry handler.
We leave psutil derivied information in the resource usage data as not every
system will have psutil installed.

MozReview-Commit-ID: CFRq1Ow6AOf
2016-02-02 09:32:49 -05:00
Mike Shal
453539b05b Bug 1248027 - '#define FOO' should use an empty value, not '1'; r=glandium 2016-02-16 14:34:25 -05:00
Gregory Szorc
b4c7567e87 Bug 1249857 - Reference proper cache attribute; r=nalexander
self._pushhead_cache no longer exists. But self._tree_cache does!

This was causing AttributeError when running `mach artifact clear-cache`
and other misc `mach artifact` sub-commands.

MozReview-Commit-ID: CP8NL6eCfhD
2016-02-20 21:44:56 -08:00
Gregory Szorc
6db465a1a3 Bug 1249857 - Do not print times when running mach from config.status; r=nalexander
Currently, config.status runs `mach artifact install`. mach commands prefix
output lines with elapsed time by default. When running from `mach build`,
there will be 2 sets of times in `mach artifact install` output lines.
When config.status is run directly, there will be no times printed
except for `mach artifact install`. It is weird both ways.

Fix it by not printing lines when running `mach artifact install` from
config.status.

MozReview-Commit-ID: GVinyI4Z0qr
2016-02-20 21:44:44 -08:00
Mike Hommey
ac42698004 Bug 1249838 - Avoid dependency from the mozconfig loader on mach. r=gps 2016-02-20 12:12:51 +09:00
Sambuddha Basu
9234bc33fd Bug 952564 - Disallow empty lists in moz.build variables r=gps 2016-02-18 17:26:09 -08:00
Carsten "Tomcat" Book
05fbdd5951 merge fx-team to mozilla-central a=merge 2016-02-17 12:07:39 +01:00
Patrick Brosset
22b2841052 Bug 1248360 - Set eslint version to 1.10.3 when setting it up via mach
MozReview-Commit-ID: LmKsvGzj3fo
2016-02-16 10:01:11 +01:00
Chris Manchester
33a2f40e21 Bug 1246992 - Only accept artifacts from a specific revision when one is provided to mach artifact. r=nalexander
MozReview-Commit-ID: FHa6awAFZj8
2016-02-15 12:08:40 -08:00
Gregory Szorc
c2ddbb817a Bug 1247994 - Upgrade vendored requests package to 2.9.1; r=mshal
Previously, we We were running version 2.5.1 of requests. Newer
versions have several bug fixes and even address a CVE.

Source was obtained from
https://pypi.python.org/packages/source/r/requests/requests-2.9.1.tar.gz
and checked in without modification. This should be a rubber stamp
review.

MozReview-Commit-ID: 9tFSVJFfwGh
2016-02-12 10:03:53 -08:00
Nick Alexander
f7269cd80a Bug 1119520 - Add opt-in Gradle build mode for mobile/android. r=gps
Opt-in by adding --enable-gradle-mobile-android-builds.

Gradle dependencies (including the Android-Gradle plugin) are assumed
to be present.  Local developers will fetch them from the jcentral
repository.

Android-specific Maven dependencies are shipped as "extras" with the
Android SDK, and should be found automatically by the Android-Gradle
plugin.

MozReview-Commit-ID: 966XgddWgEu
2016-02-12 10:06:40 -08:00
Sambuddha Basu
7e697bb556 Bug 1246264 - Ensure cache directory exists for artifacts installation r=chmanchester 2016-02-12 03:43:18 +05:30
Mike Hommey
35276e983e Bug 1224450 - Make the CompileDB derive its commands from the moz.build data. r=gps
The moz.build data is now sufficient to, with some convolution, generate
the same compilation database that recursing the tree with the showbuild
target does.

The resulting code is not the prettiest, and exposes the shortcomings of
the current moz.build data model. It is however a first step towards
fixing those shortcomings, because they are now more clearly identified.

This was validated on all platforms on try by checking the output of
  mach build-backend -b CompileDB -d -n
is empty when backing out the patch after running
  mach build-backend -b CompileDB
once.
2016-02-12 07:16:19 +09:00
Mike Hommey
714dfe4575 Bug 1224450 - Skip difficult directories in the CompileDB. r=gps
There are a few difficult directories to handle, with limited usefulness
compared to having the CompileDB properly filled for everything else
in a timely manner, so skip them for now.
2016-02-12 07:16:16 +09:00
Mike Hommey
9a0de86e0d Bug 1224450 - Ignore host compilations in the CompileDB backend. r=gps 2016-02-12 07:16:15 +09:00
Mike Hommey
213f941410 Bug 1246881 - Generate a header defining MOZ_BUILDID. r=mshal 2016-02-12 07:15:55 +09:00
Dave Townsend
066db2cc19 Bug 1239139: Verify that a high enough node version is available before running eslint. r=gps
The most common issue I'm hearing with eslint is people who have an outdated
node installed. This does a quick check to verify the version is high enough
before linting.

MozReview-Commit-ID: Em0jn18OUYo
2016-02-09 15:34:37 -08:00
Dan Minor
258efa8164 Bug 1244143 - Record whether or not an artifact build was used in build telemetry data r=gps
This adds a substs field and cherrypicks the MOZ_ARTIFACT_BUILDS field so
we can determine whether or not an artifact build occurred.

MozReview-Commit-ID: 8aio8mP8pmR
2016-02-01 14:41:13 -05:00
Carsten "Tomcat" Book
d1a88a6c93 Backed out changeset b06f5fef9488 (bug 1244143) for OS 10.7 opt build trouble 2016-02-10 15:58:09 +01:00
Carsten "Tomcat" Book
24a4428cfe Merge mozilla-central to mozilla-inbound 2016-02-10 14:29:05 +01:00
Carsten "Tomcat" Book
3847eaf3bd merge mozilla-inbound to mozilla-central a=merge 2016-02-10 11:47:34 +01:00
Dan Minor
6de949755a Bug 1244143 - Record whether or not an artifact build was used in build telemetry data r=gps
This adds a substs field and cherrypicks the MOZ_ARTIFACT_BUILDS field so
we can determine whether or not an artifact build occurred.
2016-02-01 14:41:13 -05:00
Dan Minor
d9ea9200f8 Bug 1239296 - add post_dispatch_handler hook to mach r=gps
This adds a post_dispatch_handler hook that will be called after each
mach invocation and uses it to submit data to telemetry.
2016-02-09 10:09:17 -05:00
Dave Townsend
a752390265 Bug 1244357: Use a shim around the certificate DB to allow the add-ons manager to think that add-ons are signed when they aren't. r=rhelmer
Because the add-ons manager hasn't startup up yet we can replace the certificate
database in xpcshell tests with one that claims add-ons are signed by valid
certificates even when they aren't. This allows us to run tests even in builds
where signing cannot be disabled during for the normal application.

This adds an override for all tests except those that are explicitely testing
signing.
2016-01-29 16:41:18 -08:00
Dan Minor
d7eadc3b8c Bug 1239296 - Use telemetry_handler to store build resource data r=gps 2016-01-29 12:53:00 -05:00
Dave Townsend
570a8ec931 Backing out c57d2020f884 for bug 1244357 due to test failures. CLOSED TREE 2016-02-08 10:18:48 -08:00
Dave Townsend
4dcf69dfe4 Bug 1244357: Use a shim around the certificate DB to allow the add-ons manager to think that add-ons are signed when they aren't. r=rhelmer
Because the add-ons manager hasn't startup up yet we can replace the certificate
database in xpcshell tests with one that claims add-ons are signed by valid
certificates even when they aren't. This allows us to run tests even in builds
where signing cannot be disabled during for the normal application.

This adds an override for all tests except those that are explicitely testing
signing.
2016-01-29 16:41:18 -08:00
Phil Ringnalda
80c8b4cc56 Merge m-c to f-t 2016-02-05 19:45:14 -08:00
Gregory Szorc
c2526eb33d Bug 1246040 - Change architecture detection on CentOS; r=glandium
This fails under Docker otherwise. platform.architecture() uses the
architecture of the Python executable, which should be fine assuming the
system-installed Python is being used. Even if the user installed their
own Python, running a 32-bit Python on a 64-bit system feels like
something that would be extremely rare.

DONTBUILD (NPOTB)
2016-02-05 10:51:41 -08:00
Gregory Szorc
6862bbb88e Bug 1246025 - Install python2-devel package on Fedora; r=mshal
We need this package to build psutil and other Python packages with C
extensions.

Fedora 23 offers Python 3 as the default package and the package name
changed from python-devel to python2-devel. Fedora 22 does appear to
support python2-devel as an alias. So we use the same name everywhere.

DONTBUILD (NPOTB)
2016-02-05 12:33:13 -08:00
Gregory Szorc
adb3016def Bug 1246033 - Reference unambiguous git package on Gentoo; r=mshal
"git" is ambiguous between dev-ruby/git and dev-vcs/git.
2016-02-05 12:31:52 -08:00
Chris Manchester
0d970b448f Bug 1246872 - Find the source bundle directory by pattern matching for OS X artifact builds. r=nalexander
MozReview-Commit-ID: 7Yn2pO9PO1C
2016-02-08 23:03:53 -08:00
Gregory Szorc
a67a8adbf0 Bug 1245684 - Download bootstrap files via a zip archive; r=mshal
This will perform a single HTTP request that completes in <1s. Contrast
with before when we performed multiple HTTP requests and the process
took several seconds.

DONTBUILD (NPOTB)

MozReview-Commit-ID: DjX3LBdSOIk
2016-02-09 14:41:32 -08:00
Chris Manchester
2b5c6c095a Bug 1240059 - Treat psutil as optional in record_resource_usage. r=gps 2016-02-03 20:37:12 -08:00
Mike Hommey
c3cc33cd5e Bug 1245763 - Don't emit Sources objects when there is no Linkable in the same directory. r=gps
We have very few directories where we have SOURCES declared that are not
part of a library or program in some way. In fact, there is only one
where it is legitimate because we only use the object file
(build/unix/elfhack/inject). Others are the result of moz.build control
flow (see e.g. netwerk/standalone), and we end up building more objects
than we need to.

There are other cases where we need objects without actually linking
them anywhere, but there are other sources in the same directory, and a
corresponding Linkable is emitted. And in fact, the only case I knew
about (media/libvpx), doesn't use such objects since bug 1151175.
2016-02-04 17:16:29 +09:00
Mike Hommey
5e1afb7e47 Bug 1245763 - Move the _handle_programs and _process_sources around. r=gps
The functions are going to be merged next ; this makes the change easier
to review.
2016-02-04 17:16:29 +09:00
Mike Hommey
9b2f5808b9 Bug 1245763 - Group sources and linkables handling function cals in mozbuild.emitter. r=gps 2016-02-04 17:16:29 +09:00
Mike Hommey
c0c5bff79f Bug 1245015 - Properly handle ObjC sources in the CompileDB backend. r=mshal 2016-02-03 08:41:20 +09:00
Mike Shal
fd458664cc Bug 1244239 - Fix __slots__ in mozbuild's data.py; r=gps 2016-01-28 14:30:00 -05:00
Birunthan Mohanathas
717afb8ea6 Bug 1235261 - Part 4: Remove AutoFallibleTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Birunthan Mohanathas
9bed3781f9 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Carsten "Tomcat" Book
9468a26fac merge mozilla-inbound to mozilla-central a=merge 2016-02-02 11:50:53 +01:00
Mike Hommey
5d5adb69da Bug 1244941 - Don't fill install manifest with artifacts. r=nalexander
Since bug 1239217, artifacts builds are using a hybrid build system that
uses the fastermake rules to copy files to dist/bin, which means
artifact files are not removed by the processing of the dist/bin install
manifest. This means we don't need to add them to the recursivemake
install manifest anymore.
2016-02-02 11:47:45 +09:00
Nick Alexander
b48c531534 Bug 1243041 - Follow-up: Fix Android-only bustage. r=me
DONTBUILD NPOTB
2016-02-01 13:26:31 -08:00
Chris Manchester
9983c68ead Bug 1243041 - Refine artifact platform selection based on target_cpu. r=nalexander 2016-02-01 12:48:17 -08:00
Nick Alexander
2504a8e318 Bug 1244298 - Download android-api-15 artifacts. r=ahunt 2016-02-01 10:30:36 -08:00
Chris Manchester
2cca5f7397 Bug 1240667 - Detect a tree to use for artifact builds based on recent changesets. r=nalexander
Currenlty --enable-artifact builds will take artifacts from fx-team regardless of the
state of the current working directory. This can lead to broken builds if someone
updates to a tree other than fx-team.

This commit changes the default behavior from tracking fx-team to finding all recent
pushheads and finding the closest to the working parent that has artifacts available.

This also fixes a mis-match between tree names according to mozext and branch names in
the taskcluster index preventing artifact download from common integration branches.
2016-01-29 12:27:04 -08:00
Chris Manchester
835d2f9bd5 Bug 1243096 - Remove ini manifests containing only support-files and move their contents to TEST_HARNESS_FILES. r=gps 2016-01-27 17:46:34 -08:00
Ehsan Akhgari
990988f7e8 Bug 1242004 - Skip -Xclang arguments when generating clang compilation database or YouCompleteMe config; r=froydnj
clang based tools typically choke when they encounter a lot of -XClang
arguments, and since those args are passed to the cc1 driver they're
unnecessary for such tools anyways.

This helps people who have things like --enable-clang-plugin in their
mozconfig use clang based tools without having to remove these arguments
manually.
2016-01-25 21:34:57 -05:00
Gregory Szorc
2d9e6c0b88 Bug 1242228 - Upgrade virtualenv to 14.0.1; r=mshal
Downloaded from https://pypi.python.org/packages/source/v/virtualenv/virtualenv-14.0.1.tar.gz
and extracted without any modifications.

This appears to speed up `mach configure` for artifact builds by ~3.3s on
my Linux machine (~16.3s to 13.0s). A significant part of this appears
to be newer version of pip caching and reusing wheels after first
install.

This should be a rubber stamp review, as all changes are from trusted
upstream packages.
2016-01-23 18:48:43 -08:00
Ted Mielczarek
b7fcd3f1ac bug 1230117 - get rid of {HOST,TARGET}_NSPR_MDCPUCFG. r=glandium 2016-01-21 06:13:06 -05:00
Ted Mielczarek
fcc08f9802 bug 1241272 - Allow error() in moz.build files to be treated as non-fatal. r=gps
Calling error() in moz.build files to indicate unsupported configurations is
useful, but readers using EmptyConfig will trigger them currently. This patch
allows a Config to have an `error_is_fatal` attribute, which will make
error emit a warning instead.
2016-01-20 15:11:49 -05:00
Mike Hommey
27d102f477 Bug 1245764 - Move Windows RTL flags (-MD/-MT) flags out of config.mk. r=gps 2016-02-05 17:30:34 +09:00
Phil Ringnalda
863943dfb7 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
c4a964ab81 Bug 1235261 - Part 4: Remove AutoFallibleTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Birunthan Mohanathas
f94b4ff6a2 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Chris Manchester
f379d17a7e 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
9191cd320e 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
77aab8842c 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
d1c2e4fde1 Bug 1241771 - Print install manifest processing time; r=glandium 2016-01-21 22:42:47 -08:00
Mike Hommey
8c69551b4d Bug 1239217 - Add the FasterMake+RecursiveMake hybrid backend. r=gps 2016-01-22 15:43:26 +09:00
Mike Hommey
cea09a3412 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
266875452c 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
7a341a001c 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
aade8deea9 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
2c359cbe55 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
176579f61a 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
79fda1d209 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
cd5682e071 Bug 1241398 - Remove the FilePurger class. r=gps
Its only last use was removed.
2016-01-22 07:00:23 +09:00
Mike Hommey
34d7ef8677 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
fd3660e10c Bug 1239672 - Fixed symbols file support on mingw. r=glandium 2016-01-21 13:39:41 +01:00
Mike Hommey
205218aa15 Bug 1241022 - Remove affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey
1288330dfb Bug 1241022 - Remove code handling affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey
fef6763796 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