Commit Graph

1639 Commits

Author SHA1 Message Date
Mike Hommey
547d572dd9 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
8a4b8e4cf7 Bug 1229245 - Use a FinalTargetFiles-like object for TESTING_JS_MODULES. r=gps 2015-12-01 16:46:57 +09:00
Mike Hommey
d5397256a1 Backout changeset aad04db89c38 (bug 1229245) for jetpack bustage. r=me on a CLOSED TREE 2015-12-01 16:18:54 +09:00
Mike Hommey
75fae169cd 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
ea4d1d128a Fixup for bug 1229233 to fix test bustage on Windows. r=me 2015-12-01 14:52:31 +09:00
Mike Hommey
865411462b Bug 1229245 - Use a FinalTargetFiles-like object for TESTING_JS_MODULES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
a83579de7c 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
d430982259 Bug 1229241 - Use FINAL_TARGET{,_PP}_FILES for EXTRA{,_PP}_JS_MODULES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
2a44c0408c Bug 1229241 - Redirect RESOURCE_FILES to FINAL_TARGET_FILES.res. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
75d3ac49f6 Bug 1229241 - Use FINAL_TARGET{,_PP}_FILES for JS_PREFERENCE{,_PP}_FILES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
488bd1361b Bug 1229241 - Differentiate preprocessed and non-preprocessed JS pref files. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
4674cd8a4e Bug 1229241 - Redirect EXTRA{_PP}_COMPONENTS to FINAL_TARGET{,_PP}_FILES.components. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
e0564fea40 Bug 1229241 - Support merging HierarchicalStringLists. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
4b881b7905 Bug 1229241 - Reject FINAL_TARGET{,_PP}_FILES along DIST_INSTALL = False. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
d8e01cc61c 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
6077e146dc 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
deaf4c59af 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
9a4b067a41 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
8114f398da Bug 1229233 - Use SourcePaths for CONFIGURE_SUBST_FILES and CONFIGURE_DEFINE_FILES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
fb0a744f12 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
975c98bf84 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
8991c7de99 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
e6640e1ccd 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
bfb9659d48 Bug 1228444 - Make DIST_FILES a HierarchicalStringList, like FINAL_TARGET_FILES. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
5f18a2a5fe 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
77c70061bb Bug 1228444 - Validate that FINAL_TARGET_FILES source files exist. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
5bc3501aa1 Bug 1227892 - Add basic tests for IS_COMPONENT/NO_COMPONENTS_MANIFEST. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
0f35f34571 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
544aa093d5 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
67b6efe88d Bug 1228628: Move all eslintignore rules to the top-level of the tree. r=mconley 2015-11-27 09:39:59 -08:00
Carsten "Tomcat" Book
d229b39c6e merge mozilla-inbound to mozilla-central a=merge 2015-11-26 16:54:27 +01:00
Nick Alexander
1858db610f Bug 1227600 - Fix |mach bootstrap| bustage on Mac OS X. r=me,gps
DONTBUILD NPOTB on a CLOSED TREE
2015-11-25 11:11:39 -08:00
Mike Hommey
d7d07b12ef 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
3456476a3e 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
7f991d690b 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
7e349babef 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
ce1968240d 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
9c615cc34b Bug 1226884 - Keep em:unpack addons unpacked after bug 1216371. r=gps 2015-11-23 22:40:00 +01:00
Mike Hommey
ade5fca422 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
Geoff Brown
99d1a07479 Bug 1219807 - Support 'mach run --debug' for Android; r=jmaher 2015-11-19 13:15:34 -07:00
Mike Hommey
590798cde2 Bug 1224460 - Expand make variable references we get out of gyp. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
a393b0fc6a Bug 1216371 - Pack addons that can be packed as XPIs. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
a572e164b4 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
c15f45a0d4 Bug 1216371 - Use the PiecemealFormatter for the OmniJarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
b147420c97 Bug 1216371 - Use the PiecemealFormatter for the JarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey
fa11e28895 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
35043820ae 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
f8c97aa911 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
784aa8e307 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
4c6775a4cb Bug 1216371 - Don't rely on OmniJarFormatter.is_resource for test_omnijar_is_resource. r=gps 2015-11-19 08:05:51 +09:00