codegen.pp isn't available immediately (there's a rule to generate it),
and so make warns when it's initially not found. But since this is a
depends file, like other dependency files generated by the build
process, we should silently include it so make doesn't even warn about
it.
The output of WebIDL codegen is a bunch of .h and .cpp files. These
aren't relevant when not compiling.
This change appears to shave ~3-4s off the "export" tier time for
--disable-compile-environment builds on my i7-6700K because WebIDL
codegen is currently a long pole in that tier. After this patch,
artifact clobber builds are ~43.5s.
--HG--
extra : rebase_source : 95c96e1631ddb8d2efc89d8462fe0f8ade1ecf1f
As a first step, this moves PYTHON_UNIT_TESTS to moz.build as a passthru
variable. In the future, we could hook it up to |mach test|.
The __init__.py files may not need to be in the list, but I don't want to
change the list here.
Make blissfully ignores failures when processing targets of "include"
directives. This was causing failures of WebIDL codegen to be ignored
and causing make to get in a loop.
--HG--
extra : rebase_source : 1231255705315319b308b4303bc3fc41237fbfa0
extra : amend_source : cfd801d7a3490a2a712994a60e548e3482a4992e
WebIDL build system integration has been rewritten from the ground up.
Changes:
* GlobalGen.py, BindingGen.py, and ExampleGen.py have been removed in
favor of mozwebidl.py.
* Static .webidl files are now processed directly in their original location
and aren't copied to the object directory.
* Generated events <stem>.cpp files are now compiled into the unified
sources. Previously, only the <stem>Binding.cpp files were compiled
into unified sources.
* Exported .h files are now generated directly into their final location.
Previously, they were generated into the local directory then
installed in their final location.
* The list of globalgen-generated files now lives in Python and isn't
duplicated in 3 places.
* The make dependencies are much simpler as a result of using a single
command to perform all code generation. The auto-generated .pp file from
code generation sets up all dependencies necessary to reinvoke code
generation and Python takes care of dependency management.
--HG--
extra : rebase_source : e4918878274b22a412329c7cb18cc7138daf5dc6
We keep the old XPIDL files in place to stay compatible with existing
code. They can probably be removed when all bindings have been converted
to WebIDL.
We keep the old XPIDL files in place to stay compatible with existing
code. They can probably be removed when all bindings have been converted
to WebIDL.
--HG--
extra : rebase_source : b6612fbd237d89bd02a2fde34e121691be3c0f08
A new build tier is introduced: precompile. The intention is to replace
the export subtier with something better and nonrecursive. IPDL and
WebIDL code generation have been moved into this new tier and are
performed concurrently. This appears to reduce build times due to fewer
"single threaded" build actions.
The subtier tracking UI has been updated to reflect operations that can
occur in parallel. As subtiers are started, they turn yellow. They can
then complete in any order.
Nonrecursive targets have been added to preserve the IPDL and WebIDL
build targets such that developers can type |make| from leaf directories
like they have always done.