Commit Graph

1427 Commits

Author SHA1 Message Date
Mike Hommey
3a042bfd62 Bug 910660 - Make package formatters handle addons. r=gps
Addons are always formatted with jars for omnijar and jar packaging, and
flat for flat packaging.
2015-03-24 09:10:33 +09:00
Mike Hommey
49b96b0dd2 Bug 910660 - Add a test for the unpacker code. r=gps 2015-03-24 09:10:32 +09:00
Mike Hommey
f17a072557 Bug 910660 - Refactor test_packager_formats.py so that it's easier to follow. r=gps 2015-03-24 09:10:31 +09:00
Ms2ger
c3884d2833 Bug 1143932 - Factor out test harness files processing code from emit_from_context; r=gps 2015-03-17 10:39:08 +01:00
Ms2ger
1bd52f867a Bug 1143932 - Factor out XPIDL processing code from emit_from_context; r=gps 2015-03-17 10:37:57 +01:00
Ms2ger
032f0347bd Bug 1143932 - Factor out programs processing code from emit_from_context; r=gps 2015-03-17 10:36:55 +01:00
Ms2ger
b8b3cd4235 Bug 1143932 - Factor out generated filed processing code from emit_from_context; r=gps 2015-03-17 10:33:45 +01:00
Ms2ger
a23e6b0227 Bug 1143932 - Factor out jar manifest processing code from emit_from_context; r=gps 2015-03-17 10:32:10 +01:00
Ms2ger
84b8bf93b1 Bug 1143932 - Factor out sources processing code from emit_from_context; r=gps 2015-03-17 10:32:10 +01:00
Ms2ger
4b34eacab2 Bug 1143932 - Factor out test manifest processing code from emit_from_context; r=gps 2015-03-17 10:32:10 +01:00
Ms2ger
d8800543ce Bug 1143932 - Factor out library handling code from emit_from_context; r=gps 2015-03-17 10:32:09 +01:00
Sylvestre Ledru
49488f970b Bug 1143412 - Make sure that we run "apt-get update". Otherwise, the install of packages will fail r=nalexander 2015-03-16 14:29:53 +01:00
Nick Alexander
9451893d64 Bug 1142897 - Include archlinux module in bin/bootstrap.py download list. r=gps 2015-03-13 13:24:47 -07:00
Brian O'Keefe
ee4b8ea815 Bug 1140161 - Sensibly handle patterns with absolute paths in TEST_HARNESS_FILES. r=gps 2015-03-05 09:22:43 -05:00
Ryan VanderMeulen
fd511a4b5b Merge inbound to m-c. a=merge 2015-03-12 18:05:45 -04:00
Anders Holbøll
8b9cc246ce Bug 1138250 - add actual source files from UNIFIED_SOURCES to VS projects always; r=ted.mielczarek; a=RyanVM
DONTBUILD because NPOTB
2015-03-12 14:31:05 -04:00
Jonathan Griffin
84011a87cc Bug 1116187 - Disable failing mochitest-chrome tests for B2G, r=gbrown 2015-02-06 16:30:37 -08:00
Geoffroy Planquart
953fa29dfb Bug 942475 - Add ArchlinuxBootstrapper; r=gps 2015-03-12 10:27:44 +01:00
Philipp Kewisch
6ec375d048 Bug 1142127 - Fix typo in exception for "IDL already registered"; r=gps 2015-03-11 17:47:02 +01:00
Mike Hommey
cb8d1b2884 Bug 1063880 - Do not emit Linkable-derived objects when COMPILE_ENVIRONMENT is not set. r=mshal 2015-03-11 16:03:55 +09:00
Ahmed Khalil
d2aca5c19d Bug 927388 - Produce and upload GeckoView AAR during packaging. r=nalexander 2015-03-06 10:17:00 -08:00
Andrew Halberstadt
abcd159a11 Bug 1140441 - Add substring matching option to |mach mach-debug-commands|, r=gps 2015-03-06 11:25:55 -05:00
Wes Kocher
8cd7de362d Merge inbound to m-c a=merge CLOSED TREE 2015-03-05 15:17:41 -08:00
Wes Kocher
4ef44dbc63 Merge fx-team to m-c a=merge CLOSED TREE 2015-03-05 14:51:48 -08:00
Mitchell Field
76054867fa Bug 987902 - Add a "doctor" mach command; r=gps 2015-03-05 10:14:08 -08:00
vidit23
a9a1bc2523 Bug 1121317 - Install Maven repositories during |mach bootstrap| for mobile/android. r=nalexander
DONTBUILD NPOTB
2015-03-04 11:22:00 -08:00
Gregory Szorc
b908c47723 Bug 1139086 - Write entire docstring for SubContexts in Sphinx; r=glandium 2015-03-04 00:03:05 -08:00
Gregory Szorc
bc56b18cd4 Bug 1138581 - Support wildcard expansion in mach file-info; r=glandium
This change includes a few fixes to other issues in mach file-info, such
as error handling for invalid paths not working properly.
2015-03-02 12:58:17 -08:00
Gregory Szorc
98b3807628 Bug 1138283 - Fix bad documentation around wildcard patterns; r=glandium 2015-03-03 09:21:23 -08:00
Andrew Halberstadt
cd88c29bf3 Bug 1134395 - mozbuild should pass in rootdir to manifestparser to properly calculate test relpaths, r=gps 2015-02-18 17:07:55 -05:00
Ahmed Khalil
70739474b9 Bug 1119365 - Implement |mach ide| for mobile/android and IntelliJ/Android Studio. r=nalexander 2015-02-27 05:46:00 -08:00
Gregory Szorc
f0f4d459df Bug 1132771 - Implement file-info mach command; r=glandium
Now that we have a mechanism for defining file-based metadata, let's add
a mach command to interface with it.

Currently, we limit ourselves to simple Bugzilla data dumping. Features
will be added over time.
2015-02-27 13:58:01 -08:00
Gregory Szorc
85dc822c42 Bug 1132771 - Define some bug components; r=glandium
This patch defines bug components for code that I have historically
touched.
2015-02-26 11:43:45 -08:00
Gregory Szorc
0f1b6ef394 Bug 1132771 - Add Files to moz.build with ability to define Bugzilla component; r=glandium
The Files sub-context allows us to attach metadata to files based on
pattern matching rules.

Patterns are matched against files in a last-write-wins fashion.

The sub-context defines the BUG_COMPONENT variable, which is a 2-tuple
(actually a named tuple) defining the Bugzilla product and component for
files. There are no consumers yet. But an eventual use case will be to
suggest a bug component for a patch/commit. Another will be to
automatically suggest a bug component for a failing test.
2015-03-01 22:15:07 -08:00
Gregory Szorc
84c01c942b Bug 1132771 - Support and test for reading without a config object; r=glandium
We want the ability to read data from any moz.build file without needing
a full build configuration (running configure). This will enable tools
to consume metadata by merely having a copy of the source code and
nothing more.

This commit creates the EmptyConfig object. It is a config object that -
as its name implies - is empty. It will be used for reading moz.build
files in "no config" mode.

Many moz.build files make assumptions that variables in CONFIG are
defined and that they are strings. We create the EmptyValue type that
behaves like an empty unicode string. Since moz.build files also do some
type checking, we carve an exemption for EmptyValue, just like we do for
None.

We add a test to verify that reading moz.build files in "no config" mode
works. This required some minor changes to existing moz.build files to
make them work in the new execution mode.
2015-02-26 10:21:52 -08:00
Gregory Szorc
f61be1e387 Bug 1132771 - Support reading relevant moz.build files; r=glandium
Building on top of the API to retrieve relevant moz.build files for a
given path, we introduce a moz.build reading API that reads all
moz.build files relevant to a given set of paths. We plan to use this
new API to read metadata from moz.build files relevant to a set of
files.

This patch changes the generator behavior of read_mozbuild to emit the
main context before any processing occurs. This allows downstream
consumers to manipulate state of the context before things like
directory processing occurs. We utilize this capability in the new
reading API to forcefully declare the directory traversal order for
processed moz.build files, overriding DIRS and similar variables.

Since variable exporting doesn't work reliably in this new traversal
mode, variable exporting no-ops when this mode is activated.
2015-02-26 09:44:55 -08:00
Gregory Szorc
224571d296 Bug 1132771 - Pass special types down to sandboxes via metadata; r=glandium
Currently, MozSandbox assumes that the FUNCTIONS, SPECIAL_VARIABLES, and
SUBCONTEXTS data structures are the instances that should be associated
with the sandbox. As we introduce new moz.build processing modes that
wish to change processing behavior, it is necessary for them to have
control over these special symbols.

This patch moves the declaration of these types to the special metadata
dictionary which is inherited during recursion. The "read_topsrcdir" API
now explicitly passes the initial metadata into "read_mozbuild".
2015-02-26 09:43:55 -08:00
Gregory Szorc
46df41aba6 Bug 1132771 - Implement strongly typed named tuples; r=glandium
An upcoming patch introduces a use case for a strongly typed named
tuple. So, we introduce a generic factory function that can produce these
types.
2015-02-26 09:38:43 -08:00
Gregory Szorc
59e13c8599 Bug 1132771 - API to return moz.build files relevant for a set of paths; r=glandium
We have an eventual goal to store file-level metadata in moz.build files
and to have this metadata "cascade" down directory hierarchies. e.g.
metadata in the root directory will apply to all children directories.

A prerequisite for this feature is a way to query which moz.build files
are relevant to a given file. In this patch, we implement an API that
returns this information.
2015-02-25 14:10:10 -08:00
Ted Mielczarek
ef5b90cdda bug 1135700 - Import the Python requests module. r=gps 2015-02-23 11:27:50 -05:00
Nathan Froyd
02e43668cb Bug 1136383 - enable specifying method names for GENERATED_FILES scripts; r=gps
The inputs to scripts for GENERATED_FILES are restricted to filenames
only.  We have several examples in the tree, however, where a script
takes non-filename arguments.  For converting those cases to use
GENERATED_FILES, we first need to provide some way of "injecting"
non-filename arguments into the script.

This commit adds a method for doing that, by extending the .script flag
on GENERATED_FILES to include an optional method name:

  f = GENERATED_FILES['foo']
  f.script = 'script.py:make_foo'

will invoke the make_foo function found in script.py instead of the
function named main.
2015-02-24 16:36:39 -05:00
Carsten "Tomcat" Book
360c069b06 Backed out changeset fab243c8d0c5 (bug 1136383) for bustage on a CLOSED TREE 2015-02-25 14:23:10 +01:00
Nathan Froyd
cde173b50b Bug 1136383 - enable specifying method names for GENERATED_FILES scripts; r=gps
The inputs to scripts for GENERATED_FILES are restricted to filenames
only.  We have several examples in the tree, however, where a script
takes non-filename arguments.  For converting those cases to use
GENERATED_FILES, we first need to provide some way of "injecting"
non-filename arguments into the script.

This commit adds a method for doing that, by extending the .script flag
on GENERATED_FILES to include an optional method name:

  f = GENERATED_FILES['foo']
  f.script = 'script.py:make_foo'

will invoke the make_foo function found in script.py instead of the
function named main.
2015-02-24 16:36:39 -05:00
Gregory Szorc
5ddf815a31 Bug 1134072 - Support for sub-contexts; r=glandium
As content in moz.build files has grown, it has become clear that
storing everything in one global namespace (the "context") per moz.build
file will not scale. This approach (which is carried over from
Makefile.in patterns) limits our ability to do things like declare
multiple instances of things (like libraries) per file.

A few months ago, templates were introduced to moz.build files. These
started the process of introducing separate contexts / containers in
each moz.build file. But it stopped short of actually emitting multiple
contexts per container. Instead, results were merged with the main
context.

This patch takes sub-contexts to the next level.

Introduced is the "SubContext" class. It is a Context derived from
another context. SubContexts are special in that they are context
managers. With the context manager is entered, the SubContext becomes
the main context associated with the executing sandbox, temporarily
masking the existence of the main context. This means that UPPERCASE
variable accesses and writes will be handled by the active SubContext.
This allows SubContext instances to define different sets of variables.

When a SubContext is spawned, it is attached to the sandbox executing
it. The moz.build reader will now emit not only the main context, but
also every SubContext that was derived from it.

To aid with the creation and declaration of sub-contexts, we introduce
the SUBCONTEXTS variable. This variable holds a list of classes that
define sub-contexts.

Sub-contexts behave a lot like templates. Their class names becomes the
symbol name in the sandbox.
2015-02-24 13:05:59 -08:00
Mike Hommey
afd2bc83d0 Bug 1136456 - Remove leftovers from TIERS support in mozbuild.frontend.reader. r=gps 2015-02-25 13:12:14 +09:00
Gregory Szorc
193771a104 Bug 1134800 - Properly cache file matching patterns; r=glandium
The regular expression cache for mozpack.path.match was keyed off the
original pattern. However, that variable was mutated as part of the
function and the mutated result was subsequently stored as the cache
key. This effectively resulted in a 0% cache hit rate.

On some tests being written for bug 1132111 which involve a full
filesystem traversal for moz.build files and subsequent execution of
those files, the following timings are indicative of the impact of this
patch.

Before:
real 16.082s
user 14.760s
sys   1.318s

After:
real 6.345s
user 5.085s
sys  1.257s
2015-02-24 10:19:41 -08:00
Mike Hommey
1a43b33799 Bug 1135984 - Avoid setting an empty GYP_DIRS in contexts when reading it. r=gps 2015-02-24 11:28:50 +09:00
Mike Hommey
dece0bacb7 Bug 1135984 - Fix typo which made Context.__init__ set the unused executed_time attribute. r=gps 2015-02-24 11:28:36 +09:00
Gregory Szorc
503a0737fb Bug 1134072 - Remove support for post-eval sandbox callback; r=glandium
Support for a callback to be executed post sandbox evaluation was added
in 24b43ecb4cad (bug 949906) to unbust Sphinx as a result of some GYP
processing changes. e93c40d4344f and bug 1071012 subsequently changed
how Sphinx variables are extracted from moz.build, removing the only
consumer of this feature.

Since there are no consumers of this feature left, remove it and make
the code simpler.
2015-02-23 17:30:45 -08:00
Ting-Yu Lin
6187ca71d6 Bug 1054892 - Fix ccache status not shown after shrinking cache size. r=gps
The value of cache files or cache size might decrease under these
circumstances.

* The user manually changes the max cache size to a value smaller than
  the current cache size.
* The cache size is reaching the cache max size.

We should not assume both values will be increased after the build is
finished.
2015-02-20 03:42:00 +01:00
Joe Steele
20a21bdf78 Bug 1131798 - Fix handling of CPU sub-type and rebasing WITHOUT requiring Python 3.3. r=ted 2015-02-21 16:43:36 +13:00
Nick Alexander
6403bf80f6 Bug 1093242 - Follow-up: define geckolibs-revision and log files written.
--HG--
extra : rebase_source : 8a95ad976f6b57d3ab756692887a623a11256e42
2015-02-20 11:42:28 -08:00
Nick Alexander
443bc60a63 Bug 1093242 - Produce and upload geckolibs artifacts for Android API v11+ opt builds. r=gps
The Android ARchive contains the compiled Gecko libraries that Firefox
for Android interfaces to.  It does not contain the Gecko resources
(the omnijar, omni.ja) nor the compiled Java code (classes.dex).

This also uploads metadata and sha1 hashes for future consumption by
Maven and/or Ivy dependency managers.  In some brave future world,
we'll work out exactly what that looks like; for now, this solves a
storage problem (each .aar file is ~20MB) and it's possible to point
Gradle directly at the uploaded Ivy metadata and artifacts.

--HG--
extra : rebase_source : 0c12b44f587d4a027ca5258bae8fcbb6f6028c24
2015-02-17 17:23:23 -08:00
Alessio Placitelli
ff6e3829dd Bug 1075055 - Inform mozinfo about the MOZ_TELEMETRY_REPORTING build configuration. r=ted
--HG--
extra : rebase_source : 69f39a94d1284aaa087993cd65aa030f40e9ff92
2015-02-19 22:20:00 -08:00
Ryan VanderMeulen
f677331314 Backed out changeset e4962045c59c (bug 1131798) for Win8 build bustage.
--HG--
extra : rebase_source : 0f196b6774783dd804bb39a19a850297a650c121
2015-02-18 14:46:42 -05:00
Joe Steele
2d6158780c Bug 1131798 - Fix handling of CPU sub-type and rebasing WITHOUT requiring Python 3.3. r=ted 2015-02-19 07:10:26 +13:00
Gregory Szorc
4f6edc655f Bug 1139100 - Apply proper checking for command existence; r=ahal
Previously, we raised errors attempting to register a mach sub-command
if the parent command was not defined on the Registrar. This broke B2G
because its mach command Registrar imposes restrictions on which
commands it exposes. Commands there were not getting registered on the
Registrar, leading mach to give a false positive that the parent command
was never defined.

We change the verification logic to take present but unregistered
commands into consideration and to skip registering sub-commands if the
parent isn't present in the Registrar.
2015-03-04 11:03:07 -08:00
Nathan Froyd
7e9c1febf1 Bug 883954 - part 2 - add support for defining generating scripts for GENERATED_FILES; r=gps
Now that we have proper moz.build objects for GENERATED_FILES, we can
add 'script' flags and 'args' flags in moz.build for select
GENERATED_FILES.  We restrict 'args' to being filenames for ease of
implementing checks for file existence, and many (all?) of the examples
of file generation throughout the tree don't need arbitrary strings or
Python data.
2014-12-16 15:13:27 -05:00
Nathan Froyd
4e3ebc6311 Bug 883954 - part 1 - make GENERATED_FILES emit proper moz.build objects; r=gps
This patch is mostly useful for being able to see these changes
independently of the major changes to GENERATED_FILES.  We are going to
need proper moz.build objects for GENERATED_FILES when we add the
ability to define scripts and arguments for them, so we might as well do
that first.
2014-12-16 12:55:02 -05:00
Nathan Froyd
b8a4e263e3 Bug 1122812 - part 4 - update the Visual Studio backend for UnifiedSources changes; r=mshal
With the previous changes, we can now tell Visual Studio about the
actual unified files, rather than the files that are #include'd in them.
I believe this is much closer to what Visual Studio wants to see, and
enables things like Intellisense to work properly.
2015-02-05 14:55:54 -05:00
Nathan Froyd
33e576b186 Bug 1122812 - part 3 - move unified files writing for UnifiedSources to CommonBackend; r=mshal
CommonBackend is where the writing of the unified files belong, since
that's an operation common to all backends.  A special hook into
subclasses is used to enable subclass-specific processing of
UnifiedSources.
2015-02-05 14:54:28 -05:00
Nathan Froyd
267d7d67ca Bug 1122812 - part 2 - factor out the grabbing of an object's backend.mk; r=mshal
UnifiedSources will be processed outside of consume_object, so we need
some way of accessing the backend file for an object outside of
consume_object as well.
2015-02-05 14:25:14 -05:00
Nathan Froyd
1750896125 Bug 1122812 - part 1 - move unified file grouping to UnifiedSources's constructor; r=mshal
UnifiedSources, not the recursivemake backend, should be responsible for
figuring out what unified files to generate, and what those unified
files should contain.
2015-02-05 14:05:36 -05:00
Mike Hommey
95dad56d90 Bug 1114669 - Use a generated list of idl deps for xpt generation. r=gps
Generating the list of idl deps to generate an xpt from its dependency list
makes us give all _previous_ dependencies, inherited from the .deps makefiles.
This leads to removed files being listed on xpidl-process.py command line, and
the command subsequently failing.

Instead, use generated lists of idl dependencies. At the same time, lighten the
generated Makefile further by not emitting xpt dependencies on their containing
directory, and instead generating it from the $xpt_files list.

This brings down the Makefile size from 100k to 38k.
2015-02-13 10:29:19 +09:00
Mike Hommey
49b62d273f Bug 1063874 - Move the parts of XPIDL_SOURCES handling in misc to export. r=gps 2015-02-11 17:36:45 +09:00
Joshua Cranmer
97fb09553f Bug 1127882: Sort the unified files list before splitting into multiple files, r=nfroyd
--HG--
extra : rebase_source : da8309728d29ed3a51d11536f962cf9255fb6f4f
2015-02-09 08:45:15 -06:00
Gregory Szorc
6ce7780306 Bug 1129798 - Use pdb.runcall to debug mach commands; r=ahal
The previous debugger was setting a breakpoint in the mach dispatcher.
This required users to step into the main function to be called into.
Using pdb.runcall(), the debugger starts at the first line in the
executed command, which is far more useful.

--HG--
extra : rebase_source : 10734805ad40ec85eedbb089b11d618dc32398e7
extra : amend_source : da89da1af1f137db2f5902bcb5a69312f4636a4b
2015-02-04 22:49:06 -08:00
Nathan Froyd
4ea01de4ca Bug 1129394 - produce a useful error message for |mach build-backend| without having run configure; r=ted.mielczarek
Checking for config.status ourselves avoids the unpleasant situation of
the subprocess module checking for us and producing a cryptic error
message.
2015-02-04 08:40:56 -05:00
Phil Ringnalda
1c0ae8ffca Merge f-t to m-c, a=merge 2015-01-31 09:06:14 -08:00
Nick Alexander
af5fe4dbf5 Bug 1123824 - Include platforms/android-VERSION in suggested mozconfig. r=me,f=psd
DONTBUILD NPOTB

--HG--
extra : rebase_source : a273c9939b937ddbb0be387041eb645ec726bd26
2015-01-26 11:13:49 -08:00
Brian O'Keefe
96f36e3bf3 Bug 870366 - Part 1: Move PREF_JS_EXPORTS to moz.build (mozbuild logic). r=gps 2015-01-20 13:07:02 -05:00
Joshua Cranmer
3070527a2d Bug 934170: Make mach xpcshell-test work for comm-central, r=ted
--HG--
extra : rebase_source : d5ce19f18108c598aaa0a519e73a268f1dba91b5
2015-01-30 09:54:00 -06:00
Nathan Froyd
b78b9ca0ca Bug 1108750 - part 8 - move WebIDL unification logic to CommonBackend; r=mshal
Similar to the changes made for IPDL files, this commit moves all of the
non-makefile related logic for WebIDL files out of the recursive make
backend and into the common build backend.  Derivative backends that
would like to do interesting things with WebIDL files now need to
implement _handle_webidl_build, which takes more parameters, but should
ideally require less duplication of logic.
2015-01-19 15:38:26 -05:00
Nathan Froyd
e2beab2d53 Bug 1108750 - part 7 - move IPDL unification logic to CommonBackend; r=mshal
After a bunch of tiny changes, we're finally ready to make real
progress.  We can now move the grouping of the generated IDPL C++ files
and the actual writing of the unified files for them into the common
build backend.  Derivative backends now only have to concern themselves
with adding the particular logic that compiling those files requires.
2015-01-19 15:34:00 -05:00
Nathan Froyd
3750b17070 Bug 1108750 - part 6 - move unified source writing to the callers of _add_unified_build_rules; r=mshal
_add_unified_build_rules shouldn't be in the business of writing out
unified files.  Some outside, higher-up logic should be doing that.
2015-01-19 15:28:46 -05:00
Nathan Froyd
3d5f6897ff Bug 1108750 - part 5 - move logic for writing all unified files into CommonBackend; r=mshal
We'll need to write out unified files for multiple backends, not just
the recursive make one.  Put that logic someplace where all build
backends can access it.
2015-01-19 15:11:39 -05:00
Nathan Froyd
d66a78417a Bug 1108750 - part 4 - remove handling of extra_dependencies from _add_unified_build_rules; r=mshal
No callers use it, and the makefile rules it generates don't really do
anything that the compiler won't already infer.  Let's get rid of it.
2015-01-19 15:07:43 -05:00
Nathan Froyd
67053dffc9 Bug 1108750 - part 3 - move unified source mapping to the callers of _add_unified_build_rules; r=mshal
_add_unified_build_rules shouldn't be in the business of determining how
to group files into their unified files.  That logic belongs in the
caller of _add_unified_build_rules.  Once that's done, the logic for
determining how to group files can migrate out of the recursive make
bakend.
2015-01-19 14:58:21 -05:00
Nathan Froyd
115cb0a707 Bug 1108750 - part 2 - move _write_unified_file to CommonBackend; r=mshal
Nothing about writing unified files is specific to the recursive make
backend, and if we want to write the unified files for IPDL and WebIDL
files, we'll need this functionality available in the common build
backend.
2015-01-19 14:45:32 -05:00
Nathan Froyd
6847c92b87 Bug 1108750 - part 1 - move group_unified_files to mozbuild.util; r=mshal
RecursiveMakeBackend._group_unified_files doesn't contain any
functionality specific to the recursive make backend.  We would also
like to move the unification of generated IPDL and WebIDL source files
into the common build backend.  Moving _group_unified_files into the
common build backend would be the logical place for it, but the frontend
should also be able to handle unifying files so that backends don't have
to duplicate logic for UNIFIED_FILES.  Therefore, we choose to move it
to mozbuild.util as its final resting place.
2015-01-19 14:32:44 -05:00
Ryan VanderMeulen
0de38c2525 Merge inbound to m-c. a=merge 2015-01-26 16:28:17 -05:00
Ted Mielczarek
dff12d663c bug 1124192 - Fix PATH winding up as unicode when using activate_virtualenv. r=gps
--HG--
extra : rebase_source : 11bca3bcacfd27234100ceaf64166c0bfcb96b45
2015-01-26 13:43:01 -05:00
James Lal
7ea7902827 Bug 1068653 - Part 1 Add python dependencies for taskcluster mach commands r=gps
--HG--
extra : rebase_source : 7a91182ca85dde748a14b03fa93ae85769691042
extra : source : b91e85b02d796db5de9a0e726a7c3360ea67b400
2014-11-26 10:11:28 -08:00
Nick Alexander
524a7bb865 Bug 1123980 - Part 2: Write region-specific search settings into res/raw/browsersearch.json. r=mfinkle
Pushing on a CLOSED TREE since Android build only.

--HG--
extra : rebase_source : cc99efa734d1f4738d3f026c930a4d1955723783
extra : amend_source : 52c07807a77f263d2eb2593826dc0285928d9be4
2015-01-20 16:27:27 -08:00
Nick Alexander
2b2f357b64 Bug 1123980 - Part 1: Handle common prefixes in .properties lists and dicts. r=mshal
This handles:

list.0=A
list.1=B
list.sublist.0=C

so that

list=>[A, B]
list.sublist=>[C]

and

dict=default
dict.key1=A
dict.key2=B

so that

dict=>{key1:A, key2:B}
dict=>default

--HG--
extra : rebase_source : 2c8f5941d2fca9c56b3858d3e98078a43fa69090
2015-01-21 14:31:22 -08:00
Markus Stange
a902728dbe Bug 1118228 - Add an lldb helper that allows calling functions without debug info. r=jrmuizel, r=ehsan 2015-01-14 19:04:24 -05:00
Brian Smith
1a3d2e92d2 Bug 1119776, Part 7: Avoid defining snprintf when MSVC provides it (other), r=bsmedberg
--HG--
extra : rebase_source : 3fc7e4e83f57252e15cf32846f23e497f8532ea5
2015-01-08 22:35:33 -08:00
Ehsan Akhgari
12fe0d8022 Bug 1121000 - Remove support for non-unified builds; r=gps 2015-01-14 17:26:39 -05:00
Sai Prathik
fed7ab85ef Bug 1119167 - Advertise IntelliJ support in build-backend message. r=nalexander 2015-01-11 19:17:00 -05:00
Nick Alexander
2ffd31115f No bug - Fix typo in mozconfig output message. r=me
DONTBUILD NPOTB on a CLOSED TREE

This was tested by ally and mfinkle in #mobile.

--HG--
extra : amend_source : 5dd061d6ef98f49cb232baa7221ec514a32eeeee
2015-01-12 14:51:31 -08:00
Mike Shal
172b1dfcb9 Bug 1118774 - Import python redo library; r=gps 2015-01-07 14:18:20 -05:00
Nick Alexander
c322db38f9 Bug 1117357 - Fix |mach bootstrap| for mobile/android on Mac OS X. r=gps
This does two things.  First, it aligns the brew formula name
(AndroidNdk) with the brew file name (android-ndk.rb).  Second, it
makes sure that we actually find the android-ndk.rb file.  I think
|mach bootstrap| always worked, due to a felicity where the working
directory always contained android-ndk.rb; but |python bootstrap.py|
failed because android-ndk.rb was downloaded to a temporary location
that was not included in the |brew install| command.

--HG--
rename : python/mozboot/mozboot/android-ndk-r8e.rb => python/mozboot/mozboot/android-ndk.rb
extra : rebase_source : 44f164d3d5916bc2faf4c64285e232047daea35e
2015-01-08 13:47:42 -08:00
Ms2ger
833f562689 Bug 739601 - Rewrite (the used parts of) config/milestone.pl in python; r=gps 2015-01-09 10:24:45 +01:00
Nathan Toone
354e83a584 Bug 1119350 - Upgrade virtualenv to 12.0.5; r=gps
This addresses issues with offline builds - due to pip latest version checking

Source archive downloaded from
https://pypi.python.org/packages/source/v/virtualenv/virtualenv-12.0.5.tar.gz
and uncompressed into python/virtualenv. The egg-info directory was
removed.

--HG--
extra : amend_source : 30a79486d91d9f79a36535eab438c0cd6f81daf3
2015-01-08 10:52:07 -07:00
Nathan Froyd
74af9f2532 Bug 1117860 - part 2 - factor out unified file writing from _add_unified_build_rules; r=mshal
Writing the unified files is another thing that will have to be moved
out of recursivemake.py eventually.  And it doesn't belong inline amidst
makefile rules and variables.  Move its logic to a separate function as
well.
2014-12-22 09:38:02 -05:00
Nathan Froyd
d1262629bb Bug 1117860 - part 1 - factor sources->unified file computation out of _add_unified_build_rules; r=mshal
_add_unified_build_rules does quite a lot of work besides adding
makefile rules and variables.  The divying up of source files into
unified files is one part of that, so move it out into its own function.
When we eventually move that computation out of recursivemake.py, this
refactoring will make it easier to verify that's what we've done.
2014-12-22 09:35:52 -05:00
Wes Kocher
5f2b1b8698 Merge inbound to m-c a=merge 2014-12-30 15:48:13 -08:00
Wes Kocher
8df6f6418f Merge m-c to fx-team a=merge 2014-12-29 17:35:54 -08:00
Gregory Szorc
ee68b92667 NO BUG - Remove deleted python/codegen from Sphinx docs
The python/codegen directory was removed in 9cbc28021b7b (bug 1108294).
However, the Sphinx reference lingered. Kill the dangling reference.
2014-12-29 15:49:36 -08:00
Gregory Szorc
161900aa2e Bug 1115278 - Fix mach documentation issues; r=glandium
terminal.py had an ambiguous |import logging| that was importing
mach.logging from Sphinx. We fix it.

There was also a poorly formed link in the mach commands documentation.
We fix it.

--HG--
extra : rebase_source : 12783c69027989ac031d29e4ecbc1ee2f465ffa4
extra : histedit_source : 4283c6cdecc4de8aa7636d0c4cc566daf5142b50
2014-12-24 10:26:34 -08:00
Gregory Szorc
6af3885f00 Bug 1115278 - Add virtualenv to Sphinx environment; r=glandium
Python API documentation requires the ability to import modules. So, we
set up a virtualenv in our Sphinx environment so module loading works.

This solution isn't perfect: a number of modules fail to import when run
under sphinx-build.

--HG--
extra : rebase_source : fce732e0b8aefe0e9a2ee594b8a08ac02e27579a
extra : histedit_source : bef27c947b95c3182fbc6cd656ae8c96acaaa6f4
2014-12-24 10:17:02 -08:00
Gregory Szorc
ffb069ffd5 Bug 1115278 - Move Sphinx documentation staging into Sphinx extension; r=glandium
Previously, code for staging the Sphinx documentation from moz.build
metadata lived in a mach command and in the moztreedocs module. This
patch moves the invocation to the Sphinx extension.

When the code is part of the Sphinx extension, it will run when executed
with sphinx-build. This is a prerequisite to getting RTD working, since
sphinx-build is the only supported entrypoint for generating
documentation there.

With this patch, we can now invoke sphinx-build to build the
documentation. The `mach build-docs` command is no longer needed.

--HG--
extra : rebase_source : 86e76c7d598ffa23dae858254eecedbdd12706a4
extra : histedit_source : 1826aa5ddfafdff62847cc293d1f0950b236caac
2014-12-24 09:46:41 -08:00
Wes Johnston
318e7ac495 Bug 1064669 - Use a Viewless Fragment for managing MediaPlayer lifecycle. r=mfinkle 2014-09-19 16:55:18 -07:00
Phil Ringnalda
ade5f6b03b Merge m-i to m-c, a=merge 2014-12-24 15:38:41 -08:00
Nathan Froyd
87fa686177 Bug 1114598 - move common IPDL file handling from recursivemake.py to common.py; r=gps
The recursivemake backend knows how to do several things with the IPDL
sources:

1) Determine the C++ sources that will be generated from given IPDL
   sources.
2) Write out all the makefile rules and variables for said sources.

The first part isn't unique to the recursivemake backend; other backends
would eventually like to know what C++ sources come from IPDL source
files for easier cross-referencing purposes, etc.  Let's take a first
cut at moving things into CommonBackend.  (This may not be the best
interface, since it relies on consume_finished being invoked, and not
all backends call CommonBackend.consume_finished.  Still, it's a start.)
2014-12-22 10:00:48 -05:00
Nathan Froyd
e431a96248 Bug 1113730 - fix TypeError in the visualstudio backend; r=gps,f=philip.chee 2014-12-19 12:21:22 -05:00
Wes Kocher
aca592252a Merge inbound to mozilla-central a=merge CLOSED TREE 2014-12-23 16:47:42 -08:00
Pavel Roskin
ba063ce0ea Bug 1111256 - Use LooseVersion for Python version comparison; r=gps
Python release candidates didn't parse with StrictVersion. Use
LooseVersion instead.

--HG--
extra : amend_source : 1a247ac877fa343dbe69fbe5ce9850c5081147bc
2014-12-23 09:43:45 -08:00
Gregory Szorc
c3c3fed10d Bug 930808 - Upgrade to psutil 2.1.3; r=glandium
psutil 2.1.3 is replacing psutil 1.0.1. There are numerous bug fixes and
feature enhancements in psutil worth obtaining.

Source code was obtained from
https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz and
uncompressed into python/psutil without modification except for the
removal of the egg-info directory and the .travis.yml file.

--HG--
extra : source : 697eb6db7d96dc21e817cd27a7e46ed4ab00f9bb
2014-12-23 10:45:15 -08:00
Phil Ringnalda
94a47f7adb Backed out changeset 697eb6db7d96 (bug 930808) for OS X make check failures 2014-12-23 21:04:19 -08:00
Gregory Szorc
5db809d2e3 Bug 930808 - Upgrade to psutil 2.1.3; r=glandium
psutil 2.1.3 is replacing psutil 1.0.1. There are numerous bug fixes and
feature enhancements in psutil worth obtaining.

Source code was obtained from
https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz and
uncompressed into python/psutil without modification except for the
removal of the egg-info directory and the .travis.yml file.

--HG--
extra : rebase_source : 90b02e514e5dd1249d97d83223ef8fcf20c9da94
extra : histedit_source : 2e96344e1796b6156ccf279684687b2e8995be92
2014-12-23 10:45:15 -08:00
Gregory Szorc
b869e6ac9f Bug 930808 - Upgrade virtualenv to 12.0.2; r=glandium
Source archive downloaded from
https://pypi.python.org/packages/source/v/virtualenv/virtualenv-12.0.2.tar.gz
and uncompressed into python/virtualenv. The egg-info directory was
removed.

--HG--
extra : rebase_source : e96572c694b2e780ed143a08b3c6670273a39fdb
extra : histedit_source : 17d490c968fdadd4dacad3b880bfcb1fc7b3e148
2014-12-23 10:26:10 -08:00
Wes Kocher
e03da44502 Merge m-c to fx-team a=merge CLOSED TREE 2014-12-23 16:56:21 -08:00
Nick Alexander
7ad5c4ecc5 Bug 1108771 - Part 4: Implement |mach bootstrap| for mobile/android on OS X with homebrew. r=gps
Pushing on a CLOSED TREE because this is NPOTB.

The custom brew formula is a lightly edited version of an earlier
revision of brew's android-ndk.rb.  It's not clear that using a custom
brew formula for the Android SDK version r8e is better than using the
existing android Python module for installing the SDK and the NDK, but
it's done now and works locally.  If we really wanted to avoid shipping
it, we could probably arrange to land it in
https://github.com/Homebrew/homebrew-versions.

I see no easy way to install the Java 1.7 JDK with macports, so in the
spirit of the good now being better than the perfect later, I've
punted.  (I don't see an Android NDK package either, but that
functionality exists in Python.)  Patches wanted!

--HG--
extra : rebase_source : d3ca836951b05eb30fabc17e523676d31c1ec0ef
extra : amend_source : d34e9eb5cd840b827a7ce65a0d22c1c275efff09
2014-12-21 15:29:19 -08:00
Nick Alexander
4a29a2e846 Bug 1108771 - Part 3: Factor _ensure_*_packages out of OS X bootstrapper. r=gps
This prepares the way for implementing install_mobile_android_packages
on OS X.

--HG--
extra : rebase_source : b52b7080f857e351e71f169f09a42dfd61b43a43
2014-12-21 15:29:19 -08:00
Nick Alexander
9ab5f03f22 Bug 1108771 - Part 2: Implement |mach bootstrap| for mobile/android on Debian-like systems. r=gps
This adds a generic android Python module that handles:

* downloading and unpacking Google's Android SDK and NDK bundles;
* using the |android| tool to install additional Android packages;
* printing a mozconfig snippet suitable for mobile/android builds.

--HG--
extra : rebase_source : abaffcee70eacb391f53d622fba4a445277818db
2014-12-21 15:29:18 -08:00
Nick Alexander
c07812974d Bug 1108771 - Part 1: Prompt for which application to bootstrap. r=gps
This lays the foundation for adding support for bootstrapping
mobile/android.

* Queries for which application to bootstrap, currently browser or
  mobile/android;

* Adds call to install_APPLICATION_packages after
  install_system_packages;

* Adds call to suggest_APPLICATION_mozconfig after bootstrapping
  everything;

* and splits install_browser_packages out of install_system_packages
  throughout (essentially untested, but generally simple).

To implement a new application (b2g?), just add it to the list of
applications and implement install_b2g_packages throughout.

--HG--
extra : rebase_source : 8c9b4485dbe5ceb64436fd73ea0258592a2b818f
2014-12-21 15:29:17 -08:00
Nathan Froyd
acf1d1ab57 Bug 1114684 - inform mozinfo about the MOZ_TSAN build configuration; r=ahal
Various bits of the test harnesses key off of mozinfo.info.get('asan');
we will need a similar switch for finding out whether this build
supports tsan.
2014-12-22 13:46:14 -05:00
Brian O'Keefe
f6037f90a0 Bug 923080 - Generate xpt files into final location. r=glandium
Now that the mozbuild backend knows about FINAL_TARGET, we are able to
install generated xpt files into their final location. This saves us
from copying xpt files into their final location on every build.

Original patch by gps, rebased and comments addressed by Ms2ger

--HG--
extra : transplant_source : %E2%DC%0F%E0%AD%C2%25%A1%B8%A9%FE%B0%8C%60%FF%CB%02G%25%E5
2014-05-21 08:25:57 -04:00
Nathan Froyd
5a17186bee Bug 1109409 - improve mozpack.BaseFile.copy() performance on Windows; r=gps
mopack.BaseFile.copy() performs a generic read/write file copy.  Windows
has an explicit CopyFile() call that tests have shown to be
significantly faster.  Let's use that instead via the magic of ctypes.
2014-12-12 11:59:24 -05:00
Xidorn Quan
2c586157aa Bug 1103644 - Try default browser for "mach resource-usage" if the specified one doesn't work. r=gps DONTBUILD
--HG--
extra : rebase_source : 78aa8c5f3e89dae0680f5688d0b0c80093e7549b
extra : amend_source : bd2dfce52c1647831dba1b3fbb2790bfce0beae0
extra : histedit_source : 2f0640e53e7ac359e4c050f73f86546518211e1e
2014-12-19 09:50:20 +11:00
Nathan Froyd
f4a5c0b55a Bug 1109302 - make moz.build *SOURCES variables emit proper objects; r=gps
Having SOURCES and its close relatives go through VariablePassthru
objects clutters the handling of VariablePassthru in build backends and
makes it less obvious how to handle things that actually get compiled.

Therefore, this patch introduces four new moz.build objects
corresponding to the major variants of SOURCES.  It looks like a large
patch, but there's an ample amount of new tests included, which accounts
for about half of the changes.
2014-12-09 16:45:59 -05:00
Carsten "Tomcat" Book
42565f2b20 merge mozilla-inbound to mozilla-central a=merge 2014-12-18 13:50:27 +01:00
Ankit Goyal
708f6087d0 Bug 1109867 - Check for debugger before getting debugger info; r=gps 2014-12-17 22:30:50 -08:00
Nicholas Nethercote
84f6830b78 Bug 1100851 (follow-up) - Fix trivial bustage in |mach run --dmd|. r=glandium.
DONTBUILD because NPOTB.
2014-12-16 20:46:40 -08:00
Gregory Szorc
d977d9d510 Bug 1108399 - Implement mach sub-command dispatching; r=ahal
--HG--
extra : rebase_source : f81c4c55db4b262e6c3f52d638f66b75d2d5d4e2
extra : source : 7d2f0a5d2829a7f44b2f7e97be93520ce13991f0
extra : histedit_source : 7d8e10a990cd19e3d2f5672b4d4da1bfae214f40
2014-12-06 22:33:12 -08:00
Gregory Szorc
4760a6fb8e Bug 1108399 - Handle help on mach sub-commands; r=ahal
--HG--
extra : rebase_source : b0a0ce3f5f6bf31ee3e0cd7d7cfd3be0fa9db598
extra : histedit_source : 2aee6a7bba61ce8074df1ed5edcd7fc2d27c5bf8
2014-12-06 22:39:32 -08:00
Gregory Szorc
f763bad6f0 Bug 1108399 - Split command group populating into own function; r=ahal
An upcoming patch will reuse this code. Split it out into its own
function.

--HG--
extra : rebase_source : 2057266a1ed4d86b1ca857712cd279bdfbd32148
extra : histedit_source : 8f2b7ec06e5b72ab08586902c51c3025a53259e6
2014-12-07 11:56:31 -08:00
Gregory Szorc
a263f9b2b2 Bug 1108399 - Introduce decorator for mach sub-commands; r=ahal
With this patch, we now have the ability to declare mach sub-commands.
Subsequent patches will implement dispatching for sub-commands.

--HG--
extra : rebase_source : 32a672ff3ba7a1a1c8c27dff3fe657dec08e3569
extra : histedit_source : 2bb2c27ae0e2dab052a6ef93b0a70f488f8cd56e
2014-12-07 11:40:39 -08:00
Gregory Szorc
66816678e1 Bug 1108399 - Properly name command help function; r=ahal
We will soon have proper sub-commands. Let's fix function names.

--HG--
extra : rebase_source : 1cb0c008ecc0d2159dd799e76adad4892d65f119
extra : histedit_source : 9472b2d2609224b011eca04385cf9d5a49986864
2014-12-06 21:58:46 -08:00
Gregory Szorc
d57b022a92 Bug 1108399 - Remove outdated comment about hooking up conditional commands; r=ahal
mach conditions are implemented elsewhere. This comment can die.

--HG--
extra : rebase_source : c956d5af7858d997a1f49f3b24bb54e5f8a52240
extra : histedit_source : 76b8155b12ab0ea86e16e807b1c6f691cb8f3640
2014-12-06 21:53:16 -08:00
Gregory Szorc
a48b6059ef Bug 1108399 - Fix docs for mach decorators; r=ahal
Documentation was referencing sub commands. The proper terminology is
"command."

--HG--
extra : rebase_source : aa2fc73c6141850109324fd5299491e49ef29e91
extra : histedit_source : da075bea5a36a9de81527d93a9fc751cd6cae9b2
2014-12-06 21:15:27 -08:00
Gregory Szorc
66b7a4e8ab Bug 1108399 - Properly link to Python docs; r=ahal
There were a few parts of the docs that were linking to Python types
incorrectly. Let's fix that.

--HG--
extra : rebase_source : 374be660084727eba1ce9181c2abf384f40eeb82
extra : histedit_source : bfa8de9b7a277666d92ebe71cd64ffed96628518
2014-12-07 11:37:54 -08:00
Gregory Szorc
132be91a95 Bug 1108399 - Split mach documentation into multiple articles; r=ahal
The main mach docs page is a bit long. Let's split it into multiple
articles to increase readability going forward.

--HG--
rename : python/mach/docs/index.rst => python/mach/docs/commands.rst
rename : python/mach/docs/index.rst => python/mach/docs/driver.rst
rename : python/mach/docs/index.rst => python/mach/docs/logging.rst
extra : rebase_source : 484d60327568333fcb0069e1f3444dc6db4322c0
extra : histedit_source : 18d09ac2e2e93565661763b6567f7a46226735f5
2014-12-07 11:34:06 -08:00
Gregory Szorc
69aec04d4d Bug 1108399 - Improve code linking in mach docs; r=ahal
Now that mach's docs are part of a proper Sphinx install, link to
Python type docs. While we're here, we also clean up formatting of code
samples.

--HG--
extra : rebase_source : 974337316dc87c04aca79a9e4a0d464490e5cdd4
extra : histedit_source : db87e8e5cb7c9c1969fd89e58c39623862684a6a
2014-12-07 11:23:46 -08:00
Gregory Szorc
0674daf560 Bug 1108399 - Move mach docs into sphinx; r=ahal
mach has restructured text documentation. Let's expose it to the in-tree
Sphinx config so we can increase visibility of the documentation.

--HG--
rename : python/mach/README.rst => python/mach/docs/index.rst
extra : rebase_source : 68a08bebaa5b99ca39e250fa1ed60ca4d7d0af68
extra : histedit_source : 6afda2fece486547192c1c8eba97a2474e3d99c1
2014-12-07 10:40:19 -08:00
Nicholas Nethercote
d335ff94c5 Bug 1100851 (follow-up 2) - Fix more trivial bustage in |mach run --dmd|. r=glandium.
DONTBUILD because NPOTB.

--HG--
extra : rebase_source : 906b0ccf483fb5ab6be3fc9cef8482f28b38844f
2014-12-17 18:24:38 -08:00
Nathan Froyd
fa615683d1 Bug 1109826 - part 1 - make the preprocessor able to avoid emitting warnings about missing directives; r=mshal 2014-12-10 14:49:44 -05:00
Nicholas Nethercote
7d0f2f414e Bug 1100851 - Tweak DMD to account for the fact that $DMD can now be undefined. r=glandium.
Now that defining $DMD is no longer necessary to run DMD, this patch does the
following.
- Removes all the places where we set DMD=1 (test harnesses, etc.)
- Still handles DMD=1, for backwards compatibility.
- Prints "$DMD is undefined" at DMD start-up if appropriate.
- Writes a |null| value for |dmdEnvVar| in the JSON if $DMD is undefined. Bumps
  the DMD output version number accordingly.
- Changes a bunch of the test files accordingly, including changing the mode of
  script-ignore-alloc-fns.json in order to test a case where $DMD is undefined.

--HG--
extra : rebase_source : eb1ef5722410734ce6d7658465ff6f442ee4ed49
2014-11-27 21:04:46 -08:00
Phil Ringnalda
ab93e7a8f5 Backed out 2 changesets (bug 1105128) for Windows make check failures
CLOSED TREE

Backed out changeset 5dfe0838798c (bug 1105128)
Backed out changeset def38e936db8 (bug 1105128)
2014-12-09 20:42:01 -08:00
Gregory Szorc
2d7afd0fac Bug 1105128 - Alias os.path functions in local scope; r=glandium
Various os.path attributes are being used in tight loops. Having local
variables prevents extra dictionary lookups.

This appears to shave 10-20ms off of the tests install manifest
processing time.

--HG--
extra : rebase_source : de941f2978cf0b1fd7c4f7401c848b61d406a2c8
extra : amend_source : e33c896856fa559197496b8227e10ab8149d146e
2014-11-25 18:37:11 -08:00
Gregory Szorc
bea629df49 Bug 1105128 - Avoid excessive path normalization in FileCopier.copy(); r=glandium
FileCopier.copy() was performing a lot of os.path.normpath() operations.
Profiling revealed that os.path.normpath() was the function with the
most wall time CPU usage when processing the tests manifests. Upon
subsequent examination of the code in question, all the paths being used
were already normalized. So, os.path.normpath() wasn't accomplishing
anything.

This patch results in ~300ms reduction in wall time to process the tests
install manifest on a fully populated page cache. Execution time drops
from ~2.8s to ~2.5s.

Profiling reveals that after this patch os.stat() is the #1 wall time
consumer. However, os.path.{join,dirname,normpath} still account for
~1.5x the wall time of os.stat(). There is still room to optimize
this function.

--HG--
extra : rebase_source : b6f0862baa5168c609499fd95eb3517854bc8cce
extra : amend_source : 7e04c1eb74132bbbe86e721f0f209b19309a7a51
2014-11-25 18:16:22 -08:00
Nicholas Nethercote
5cc6a39a9a Bug 1094552 (part 6) - DMD: add support for cumulative heap profiling. r=mccr8.
By adding a new "cumulative" mode.

--HG--
extra : rebase_source : 5c851b7c594a134fae48393ff0becfd057715041
2014-10-30 20:22:47 -07:00
Nicholas Nethercote
5b5d3c27bb Bug 1094552 (part 5) - DMD: choose the profiling mode at start-up. r=mccr8.
This patch moves profiling mode selection from post-processing (in dmd.py) to
DMD start-up. This will make it easier to add new kinds of profiling, such as
cumulative heap profiling.

Specifically:

- There's a new --mode option. |LiveWithReports| is the default, as it is
  currently.

- dmd.py's --ignore-reports option is gone.

- There's a new |mode| field in the JSON output.

- Reports-related operations are now no-ops if DMD isn't in LiveWithReports
  mode.

- Diffs are only allowed for output files that have the same mode.

- A new function ResetEverything() replaces the SetSampleBelowSize() and
  ClearBlocks(), which were used by the test to change DMD options.

- The tests in SmokeDMD.cpp are split up so they can be run multiple times, in
  different modes. The exact combinations of tests and modes has been changed a
  bit.

--HG--
rename : memory/replace/dmd/test/full-reports-empty-expected.txt => memory/replace/dmd/test/full-empty-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-heap-empty-expected.txt => memory/replace/dmd/test/full-empty-live-expected.txt
rename : memory/replace/dmd/test/full-heap-sampled-expected.txt => memory/replace/dmd/test/full-sampled-live-expected.txt
rename : memory/replace/dmd/test/full-reports-unsampled1-expected.txt => memory/replace/dmd/test/full-unsampled1-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-heap-unsampled1-expected.txt => memory/replace/dmd/test/full-unsampled1-live-expected.txt
rename : memory/replace/dmd/test/full-reports-unsampled2-expected.txt => memory/replace/dmd/test/full-unsampled2-dark-matter-expected.txt
rename : memory/replace/dmd/test/script-diff-basic-expected.txt => memory/replace/dmd/test/script-diff-live-expected.txt
rename : memory/replace/dmd/test/script-diff1.json => memory/replace/dmd/test/script-diff-live1.json
rename : memory/replace/dmd/test/script-diff2.json => memory/replace/dmd/test/script-diff-live2.json
extra : rebase_source : bf32cc4e0d82aa1a20ceb55e8ea259850b49cc06
2014-12-08 14:45:14 -08:00
Gregory Szorc
a508387f37 Bug 1108294 - Removed unused makeutils Python module; r=froydnj
There are no more consumers of makeutils.py in the tree. So we delete
it.

--HG--
extra : rebase_source : bf19cdf722027758161e588395464da83fc2c37c
2014-12-06 15:48:42 -08:00
Gregory Szorc
9315af3694 Bug 1107968 - Add --debug-command to mach; r=ahal
People often seek to learn how mach commands work. A common way to do
this is to launch a debugger and step through the code as it is
executing. But this requires someone to first find and modify the mach
command. This involves overhead.

This patch adds a global --debug-command argument to mach. When present,
we launch an interactive debugger right before command dispatch. This
allows people to easily enter a debugger to see what mach commands are
doing, hopefully lowering the barrier to understanding and contributing.

--HG--
extra : rebase_source : 5ebfa7f5fd89f96dac5f7cb035ab520c63b32e55
extra : amend_source : c53c988763c328020b49aa5c6245df685b6f30bc
2014-12-05 10:19:49 -08:00
Mike Shal
14f3dfd3b3 Bug 1091668 - generate voucher on signed plugin-container; r=glandium 2014-11-25 10:43:43 -05:00
Ting-Yu Lin
372d769fb9 Bug 1105090 - Update ccache parser against version 3.2. r=gps
ccache version 3.2 adds primary config and secondary config in the
statistic report. Update the ccache stats parser to support that.
2014-11-26 06:25:00 +01:00
Nick Alexander
002f7dc5c6 Bug 1105052 - Update in-tree jsmin to commit a878bf0. rs=gps
This is a straight copy from

a878bf0ba0

paired with a tiny change to use the new quote_chars option.

--HG--
extra : rebase_source : 75d604ffafc7062c663bca4242af35546d2c1e3a
2014-11-25 16:02:08 -08:00
Mike Shal
19a62eff82 Bug 1091668 - Import eme voucher script; r=ted, r=gerv 2014-11-03 11:24:55 -05:00
Mike Shal
c927a777e6 Bug 1091668 - Import bitstring-3.1.3; r=ted, r=gerv 2014-11-03 10:47:25 -05:00
Mike Shal
1dea3263d8 Bug 1091668 - Import pyasn1-0.1.7; r=ted, r=gerv 2014-11-03 10:46:46 -05:00
Kartikaya Gupta
903c1e3c5c Bug 1092217 - Allow debugging gtests via mach gtests --debug. r=ted 2014-11-24 15:29:40 -05:00
Anton Neumann
dba9e97358 Bug 906177 - Fix bootstrap on elementary; r=gps
DONTBUILD (NPOTB)

--HG--
extra : amend_source : 44cd72c98044aa380a5d60c5dd4127364f9ef6b3
2014-11-21 09:58:29 -08:00
Gregory Szorc
49f7be9f8b Bug 1094303 - Move XPT buildlist into misc tier; r=glandium
buildlist invocations are slow and can occur in parallel since the
underlying program obtains a lock on the modified file.

Moving the XPT-related buildlist invocation from the serial libs tier to
the parallel misc tier decreased my no-op build time on OS X from 43.5s
to 37.0s.

--HG--
extra : rebase_source : 7d274024c401b1ecfbc771424a69eb487808fcbf
2014-11-05 09:20:35 -08:00
Vaibhav Agrawal
d6312a24e8 Bug 1089037 - Removing invalid mochitests and moving webapprt-content tests to a seperate "webapprtContent" folder in object directory. r=jmaher, marco 2014-11-13 12:30:00 +01:00
Gregory Szorc
e77cda14fc Bug 1098135 - Traverse directories with misc rules; r=glandium
When the misc tier was added, only directories with misc-associated
variables from moz.build were traversed. This patch adds a dummy
variable to moz.build whose presence will add the directory to the misc
tier.

This will enable us to aggressively convert existing libs:: rules
to the misc tier.

--HG--
extra : rebase_source : c5477010c7d87fafa512f4fbbf1d2b995e07ffbd
extra : amend_source : a54eee6254ef2d63ef6b247d45e38eda2ab88fef
extra : histedit_source : c0f3352e84ec18ca7b88571cd5f9c2a33ab8eda9
2014-11-12 21:59:22 -08:00
Joshua Cranmer
528101b1f4 Bug 910781 - add support for FINAL_TARGET_FILES; r=gps 2014-07-23 13:56:25 -04:00
Gregory Szorc
e97f72f3d1 Bug 1094302 - Update build system tests to cover moved tier; r=glandium
This fixes |make check| bustage on inbound.
2014-11-06 20:17:17 -08:00
Gregory Szorc
c24dd59ec5 Bug 1094302 - Move JS module installation into the misc tier; r=glandium
JS module installation performs simple file copying or preprocessing.
There is no reason it can't occur in parallel. Move it to the misc tier.

As part of this, I recognized that TESTING_JS_MODULES was assigned to a
tier. Since these files are managed by an install manifest, they don't
belong to any tier. So the tier is now listed as None.

--HG--
extra : rebase_source : 963f0813e43802c017837ce9d55f8e666decd76a
2014-11-05 09:47:14 -08:00
Mike Hommey
090834ccfd Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Wes Kocher
fd1b7c1e19 Backed out changeset db93b3cbdc17 (bug 1094037) on a CLOSED TREE 2014-11-05 17:22:50 -08:00
Mike Hommey
c5ad432837 Bug 1093499 - Add a -C option to mach build. r=gps
The build system being what it currently is, there are various cases where one
wants something explicit, rather than the current autodetection.

For instance, one may want to run
  make -C $objdir chrome
instead of
  make -C $objdir/chrome
that mach build chrome currently invokes.

There are several such usecases that mach's autodetection makes harder, and
it's sometimes awkward when telling people, to debug their issues, to run
  make -C objdir something
and hear back that objdir doesn't exist or something along those lines,
because they took "objdir" literally.
2014-11-06 09:29:27 +09:00
Mike Hommey
636eec2f2a Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
18ccc42254 Bug 1094033 part 2 - Add a "misc" parallel tier where to move parts of the libs tier that can be moved. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
6353f52bb4 Bug 1094033 part 1 - Consolidate how to add new tiers. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
0bb4264fe7 Bug 1091383 - Move delayload logic entirely in moz.build frontend code. r=gps 2014-11-04 13:48:25 +09:00
Andrew Halberstadt
4125d6266d Bug 1092149 - Use LooseVersion instead of StrictVersion in |mach mercurial-setup| so release candidates work, r=gps 2014-10-31 15:09:39 -04:00
Nick Alexander
a4f15f29c8 Bug 1090599 - Upgrade in-tree jsmin to release-2.0.11. r=gps
This updates to release-2.0.11 (sha1: 04374472ed18) from
https://bitbucket.org/dcs/jsmin/.
2014-10-30 17:02:33 -07:00
Mike Hommey
d667f4bb59 Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey
2a17803c46 Bug 1077148 part 1 - Define mozcrt in moz.build. r=gps
--HG--
rename : mozglue/build/Makefile.in => mozglue/crt/Makefile.in
rename : mozglue/build/fixcrt.py => mozglue/crt/fixcrt.py
2014-10-30 13:05:50 +09:00
Mike Hommey
bc89ac2f89 Bug 1090107 - Define stlport dependencies in moz.build. r=mshal 2014-10-29 13:29:42 +09:00
Nicholas Nethercote
bf89af2567 Bug 1080302 (part 3) - Convert -foo options to --foo in |mach run|. r=glandium. 2014-10-23 17:39:49 -07:00
Nicholas Nethercote
b3fe669873 Bug 1080302 (part 1) - Add support for --foo and /foo options where it's not already present. r=glandium. 2014-10-23 17:25:19 -07:00
Nicholas Nethercote
6705ab7753 Bug 1076446 (attempt 2) - Make the DMD test work on Windows. r=glandium. 2014-10-09 19:28:33 -07:00
Wes Kocher
353ba5fc78 Merge inbound to m-c a=merge 2014-10-24 15:05:02 -07:00
Richard Newman
da8a27c4ee Bug 1088788 - Fix build target for Eclipse projects. r=nalexander, DONTBUILD (NPOTB) 2014-10-24 11:06:48 -07:00
Wes Kocher
0fc643cb33 Merge inbound to m-c a=merge 2014-10-23 17:37:23 -07:00
Benoit Girard
b6f9b243d4 Bug 1062726 - Add ./mach ide [visualstudio,eclipse] command. r=gps
--HG--
extra : rebase_source : 6c0ed5227c59380722863be8ecc389d9a53fc0a0
2014-09-04 02:08:33 -04:00
Richard Newman
788ae8894c Back out inadvertent android_eclipse change from 4a19faedc32b (Bug 1070086). r=me, DONTBUILD on a CLOSED TREE (NPOTB) 2014-10-22 17:09:25 -07:00
Wes Kocher
9e6688bd5b Merge m-c to fx-team a=merge 2014-10-20 19:01:55 -07:00
Gregory Szorc
c4dc0ac8b9 Bug 1078007 - Update URL for Homebrew installer; rs=RyanVM
The installer URL moved upstream. Reflect that move.

DONTBUILD (NPOTB)

--HG--
extra : rebase_source : 1ab21c8ef8458db87a6594f1bfca439b386cc254
2014-10-20 09:12:50 -07:00
Wes Johnston
2da0f9c218 Bug 1070086 - Move download integration code to its own class. r=bnicholson 2014-10-20 12:24:49 -07:00
Edwin Flores
eaa54604a8 Bug 1072024 - Fix TestGMPCrossOrigin when run with |mach gtest| - r=ted 2014-10-14 11:04:59 +13:00
Mike Hommey
b9d972fbb4 Bug 1080375 - STATIC_LIBRARY_NAME doesn't need an explicit FORCE_STATIC_LIB. r=mshal 2014-10-10 17:09:10 +09:00
Ting-Yu Lin
c193bb1729 Bug 1088520 - Fix empty eclipse project generated on Linux. r=glandium
Use "Gecko" with captical letter 'G' for both project dir and the
project name in .project.
2014-10-24 03:11:00 +02:00
Carsten "Tomcat" Book
f22c011ab0 Backed out changeset 835fbe63da4a (bug 1076446) for perma failure in 10.8 mozilla-inbound debug test xpcshell 2014-10-24 12:32:38 +02:00
Nicholas Nethercote
0eef32c0e6 Bug 1079657 (follow-up) - Remove --mode=stress option from |mach run|. r=me.
DONTBUILD because this is NPOTB.

--HG--
extra : rebase_source : f2295ccffe59b0af6627169e96f98a8a755570e8
2014-10-08 18:20:07 -07:00
Mike Hommey
139046d56b Bug 1071568 - Only pass down templates to the sandbox context when calling moz.build templates. r=mshal
It's not entirely clear passing down all the metadata makes sense. On the
other hand, when creating the template execution sandbox, passing down
exports does assign the value for the exported variable in that execution
context. When that context is merged with the caller sandbox context, the
exported variable is reassigned, even if the value is not modified. Then,
if the caller sandbox itself reassigns the exported variable, it fails
because calling a template already did it once, unexpectedly.

Not passing down exported variables makes the template execution sandbox
never set those exported variables, so that they are not merged back. The
caller sandbox can then properly reassign the exported variable.
2014-10-09 10:14:26 +09:00
Nicholas Nethercote
c72cb48004 Bug 1074656 - Merge |mach debug| and |mach dmd| into |mach run|. r=gps.
--HG--
extra : rebase_source : a9da86cadae7fdbb0fe9e3931fb1163f4239527c
2014-10-08 15:12:02 -07:00
Nicholas Nethercote
fb69fa73f3 Bug 1077272 - Allow argument groups in mach commands. r=gps.
--HG--
extra : rebase_source : 478b305eedac6d30af748d80da408042aba48c14
2014-10-08 15:11:50 -07:00
Eric Rahm
e3149f012f Bug 806819 - Part 1: Remove FORCE_PR_LOG unified build restriction. r=gps 2014-10-08 13:17:27 -07:00
Gregory Szorc
a91aa652e8 Bug 1071012 - Extract Sphinx variables via AST reading; r=glandium
The in-tree Sphinx docs have been broken since bug 1041941 because
processing moz.build files outside their context doesn't work.
Specifically, templates aren't loaded (because this information usually
comes from a parent moz.build file). A new execution mode is needed.

I tried to implement a proper execution mode. However, I kept running
into walls. While we should strive for a proper execution mode, this can
be a follow-up, tracked in bug 1058359.

This patch implements extraction of Sphinx variables from ast walking.
It is extremely low-level and definitely a one-off. But it solves the
problem at hand: |mach build-docs| will work after this patch is
applied.

--HG--
extra : rebase_source : abd0a91a3efb24d3adfa19f4cd281ce5fd6d0915
extra : amend_source : c1b4f79224bab55e65a8c2b0f3103475281416c1
2014-10-07 10:36:27 -07:00
Bill McCloskey
46c57009ef Bug 930243 - Add a processType flag to chrome manifest directives (r=froydnj) 2014-10-07 11:46:24 -07:00
Mark Hammond
23ead7c6e4 Bug 1074507 - Avoid pre-filtering tests so we can have e10s-only tests. r=ted 2014-10-01 17:06:00 -04:00
Wes Kocher
159b48d0cf Merge m-c to inbound a=merge CLOSED TREE 2014-10-06 20:59:17 -07:00
Wes Kocher
5d7f3c7007 Backed out 5 changesets (bug 806819) for WinXP test failures on a CLOSED TREE
Backed out changeset 009ae35b0c67 (bug 806819)
Backed out changeset 5a57f87f5061 (bug 806819)
Backed out changeset f06cd735b5b3 (bug 806819)
Backed out changeset e25a2a8d4af4 (bug 806819)
Backed out changeset 70a167982c3f (bug 806819)
2014-10-06 16:32:50 -07:00
Mike Hommey
31a9d027d6 Bug 1076649 - Remove the '+' prefixing from mach commands with allow_all_arguments=True. r=gps
The reason to use '+' prefixing was to distinguish between options to the
mach command itself, and options that are passed down to whatever the
command does (like mach run passing down args to the built application).
That makes things unnecessarily awkward, and quite non-standard.

Instead, use standard '-' prefixing, and pass all the unknown arguments
down. If there is overlap between the known arguments and arguments supported
by the underlying tool (like -remote when using mach run), it is possible to
use '--' to mark all following arguments as being targetted at the underlying
tool.

For instance:
    mach run -- -remote something
would run
    firefox -remote something
while
    mach run -remote something
would run
    firefox something

As allow_all_arguments is redundant with the presence of a argparse.REMAINDER
CommandArgument, allow_all_arguments is removed. The only mach command with a
argparse.REMAINDER CommandArgument without allow_all_arguments was "mach dmd",
and it did so because it didn't want to use '+' prefixes.
2014-10-07 07:36:27 +09:00
Nick Alexander
a63ca8c787 Bug 1077381 - Follow-up: Try to fix Windows bustage. r=me
a=bustage on a CLOSED TREE

--HG--
extra : amend_source : c39a128f271f44e263d77f342665594ba161f933
2014-10-06 12:38:12 -07:00
Nick Alexander
3bbe719c31 Bug 1077381 - Encode generate_browsersearch verbose output as utf-8. r=gps
We need codecs for the print function and unicode_literals to let the
format() string stay undecorated.
2014-10-06 11:32:24 -07:00