Make a hybrid build system combining non-unified with unified
Categories
(Firefox Build System :: General, task)
Tracking
(firefox93 fixed)
Tracking | Status | |
---|---|---|
firefox93 | --- | fixed |
People
(Reporter: andi, Assigned: andi)
References
Details
Attachments
(1 file)
Most of the mozilla modules are compatible to be built outside of the unified environment, but there are still plenty that are not.
Since a normal build system, non unified, has it's benefits, better integration with static-analysis, integration with IDEs, like clangd etc, this patch adds the posibility to be able to build Firefox combining the non unified compatible modules with the ones are are not yet there.
The footprint on the general build system that this patch adds it's minimal, it adds the possibility of configuring two things:
- each mozilla module, in
moz.build
, can be signaled if it's non unified compatible, as:
BUILDABLE_OUTSIDE_UNIFIED = True
- adds a flag that trigger the hybrid build by adding to
mozconfig
:
ac_add_options --enable-hybrid-build
Second part of the patch adds a try
tier 2 job Bp-hybrid
that builds on every mozilla-central
merger.
Once this lands, linux64-non-unified
and macosx64-non-unified
are to be removed.
Assignee | ||
Comment 1•3 years ago
|
||
By hybrid unified system we understand a system that incapsultes modules that are built in the unified mode
but also other modules, like dom/Animation
, as an example, in the non unified environment.
This approach is desirable since we already have most of the modules transitioned to the non unified system but there are
still some that are not yet compatbile, but in the long term this will be done by each module owner and can be also tested
locally using the build system.
When a module can be built outside the unified method it's moz.build
config file needs to have BUILDABLE_OUTSIDE_UNIFIED = True
To also enable this we need to have a flag from mozconfig
, like:
ac_add_options --enable-hybrid-build
Comment 2•3 years ago
|
||
(I have no idea what this work is about, but one of the patches appeared in my review queue, and the context wasn't obvious because the linked bug had no comments or linked bugs.)
I've added several bugs with a "Depends on" relationship, because this is the first patch in a patch stack. This adds some minimal context to the other bugs and their associated patches.
If the patches are fully dependent on each other, it may also make sense to attach patches to one bug at first. Patches can be moved to a new bug/different bugs if needed (after editing the bug reference in the commit and updating the patch in Phabricator, the automation will automatically move the patch to the new bug).
Comment 4•3 years ago
|
||
bugherder |
Pushed by bpostelnicu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/29d7e91fe721 Make a hybrid build system combining non-unified with unified r=firefox-build-system-reviewers,mhentges,glandium
Backout by nbeleuzu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0eadb0a0bce4 Backed out changeset 29d7e91fe721 for plain Bp-hybrid bustages
Description
•