Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fwd: Building js/xul/css from Firefox faster

14 views
Skip to first unread message

Panos Astithas

unread,
Oct 2, 2015, 8:52:03 AM10/2/15
to dev-developer-tools
In case anyone in here is not subscribed to firefox-dev or dev-platform.

---------- Forwarded message ----------
From: Mike Hommey <m...@glandium.org>
Date: Fri, Oct 2, 2015 at 3:23 AM
Subject: Building js/xul/css from Firefox faster
To: firef...@mozilla.org, dev-pl...@lists.mozilla.org


Hi,

I recently landed a new build backend that, if you opt-in to running it,
will make your non-C++ changes to Firefox more readily available in
local builds.

After you built Firefox normally once, and assuming you only changed
non-C++ code, you can now use the following command for a faster
incremental build:
./mach build faster

Now, since this is fresh out of the oven, there are a few things to
know:
- it doesn't handle removing files
- it doesn't handle files that would end up outside of dist/bin
- it doesn't handle a few things like the files from the default profile
- it currently only works for desktop Firefox

Obviously, this is not an end state, so things will improve in the
future, but it should work well enough for most day-to-day work for
desktop Firefox, thus this message.

On my machine, `mach build faster` completes in about 4 seconds for an
incremental build. This should get even faster very soon.

Additionally, while requiring some manual steps (which bug 1207888 and
bug 1207890 will help with), it is also possible to use this to build
desktop Firefox without actually building any C++. Here is how that
goes:
- Run `./mach configure` with a mozconfig containing:
ac_add_options --disable-compile-environment
- Download and unpack a nightly
- Use `./mach python toolkit/mozapps/installer/unpack.py <path>`, where
<path> is the nightly's firefox/ directory.
- Move that fully unpacked nightly to $objdir/dist/bin (for mac, that
involves more fiddling, because dist/bin is a somewhat flattened
version of the .app directory)
- Ensure the files in $objdir/dist/bin are older than the source files.
- Run `./mach build faster`.
- On mac, you will need to run something like (untested)
./mach build browser/app/repackage

After that $objdir/dist/bin should contain a bastardized Firefox, with
xul, js, etc. coming from the source tree, and the remainder still being
there from the original nightly.

`mach run` should work with that.

Cheers,

Mike
_______________________________________________
firefox-dev mailing list
firef...@mozilla.org
https://mail.mozilla.org/listinfo/firefox-dev
0 new messages