gecko/build
Nick Alexander b8eab59285 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!
2015-09-22 10:04:26 -07:00
..
annotationProcessors Bug 1108782 - Part 1: straighten out Java classpaths. r=glandium 2015-08-31 13:35:05 -07:00
autoconf Bug 1108782 - Part 2: Explode AAR files at configure time. r=glandium 2015-09-22 10:04:26 -07:00
clang-plugin Bug 1201190 - Part 1: Add an analysis to prevent a type from being allocated in a temporary, r=ehsan 2015-09-12 16:53:31 -04:00
compare-mozconfig
docs Bug 1204154 - Clean up jar manifests that needlessly specify the source file. r=dao 2015-09-15 18:33:57 -07:00
macosx bug 1203689 - Use tooltool gcc as host compiler for cross-mac builds. r=dustin 2015-09-10 15:21:31 -04:00
mobile Bug 1108782 - Part 2: Explode AAR files at configure time. r=glandium 2015-09-22 10:04:26 -07:00
package/mac_osx bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps 2015-08-03 15:40:04 -04:00
pgo Bug 1141352 - add a pairwise allowlist to tracking protection. r=gcp 2015-08-07 13:08:22 -07:00
pymake
release
sanitizers Bug 1201096 - Remove various obsolete LSan suppressions. r=erahm 2015-09-02 13:18:00 +02:00
stlport Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium. 2015-08-27 20:44:53 -07:00
unix Bug 1203393 follow-up: Address one review comment 2015-09-22 08:44:25 -04:00
util
valgrind Bug 1193038: Purposely leak StatisticsReport object and suppress the leak report r=glandium,mccr8,njn 2015-08-18 19:21:40 +02:00
win32 Bug 1198944 - remove vmware recording support from mochitest; r=khuey 2015-08-27 16:00:14 -04:00
win64 Bug 1170522 - expose whether or not we're in tablet mode to xul/js/css, r=jimm,ted 2015-06-16 19:51:29 +01:00
__init__.py
.lldbinit.in
appini_header.py
application.ini
automation-build.mk
automation.py.in Backed out changeset feceb41f1c3c (bug 1185244) for breaking running tests locally CLOSED TREE a=backout 2015-09-22 17:08:37 -07:00
binary-location.mk
buildconfig.py
checksums.py
defines.sh
dumbmake-dependencies Bug 912121 - Update misc. DevTools paths and comments. rs=devtools 2015-09-21 12:07:31 -05:00
gecko_templates.mozbuild Bug 1194834: Don't use static libs on Windows ASan builds. r=glandium 2015-09-10 16:55:15 -04:00
gen_test_packages_manifest.py Bug 787200 - Move the Talos code into mozilla-central: create the talos test .zip file. r=ted 2015-08-27 10:51:32 +02:00
genrc.sh
gyp.mozbuild Bug 1037997 - Added possibility to choose monitors during screen capturing. r=florian,jesup 2015-09-03 07:24:00 +02:00
mach_bootstrap.py Bug 1204787 - Add |mach power|. r=glandium. 2015-09-15 16:23:45 +10:00
Makefile.in Bug 1201712 - Package Firefox OS fonts r=nalexander 2015-09-04 09:34:28 -07:00
moz-automation.mk Bug 1198179 - Kill gen_mach_buildprops.py; r=ted 2015-08-25 11:42:44 -04:00
moz.build Bug 1180358 - Part 1: Add the b2gdroid sub-product. r=fabrice 2015-08-25 13:40:04 -07:00
mozconfig.automation
mozconfig.cache Bug 1188766 - Avoid exporting UPLOAD_EXTRA_FILES from mozconfig. r=mshal 2015-08-11 07:22:31 +09:00
mozconfig.common Backed out changeset 292d13beeb7b (bug 1186522) for Gaia unit test bustage. 2015-08-28 21:43:37 -04:00
mozconfig.common.override
mozconfig.vs-common
mozconfig.win-common
msys-perl-wrapper
qemu-wrap
sccache.mk
subconfigure.py
templates.mozbuild
update-settings.ini
upload.py Bug 1198179: in taskcluster, have 'make upload' just copy; r=ted.mielczarek 2015-09-11 11:35:00 -04:00
virtualenv_packages.txt bug 1190603 - import PyECC library r=gps,gerv 2015-08-03 15:17:00 -07:00