Just landed in inbound (and hopefully sticking) are some build system
changes to how XPIDL files are processed (bug 850380).
XPIDL generation now occurs during the "precompile" build tier and runs
concurrently with WebIDL and IPDL processing. (Previously, XPIDL
processing occurred during the export or libs subtiers during the
platform and apps tiers.) If you run |make| or |make export| from a
directory containing XPIDL files, XPIDLs will still be built.
We changed how XPIDLs are processed to require fewer process
invocations. Instead of producing a .h/.xpt for each .idl and linking
the .xpt files together, we now have a single process invocation that
takes each .idl going into the final/linked XPIDL "module" and emits
multiple .h files and a single linked .xpt file. This drastically
reduces overhead.
We also removed XPIDL_FLAGS from the build config. It was previously
used to define all the extra directories to search for dependency .idl
files. Since moz.build now gives us a "whole world view," we no longer
need this "hint."
Altogether, this patch appears to shave ~4 minutes of CPU time from the
build (at least on my machine). If you were performing a clobber build
with a fully populated ccache, my measurements show this patch reduces
CPU time from ~800s to ~560s, about a 30% reduction!
If you notice anything funky with XPIDL generation in the build system,
please comment on bug 850380.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform