Open Bug 1795930 Opened 3 years ago Updated 2 years ago

Consider adding a third_party/chromium gn build root

Categories

(Firefox Build System :: General, enhancement, P3)

enhancement

Tracking

(Not tracked)

People

(Reporter: nika, Unassigned)

References

Details

When discussing bug 1788569 on matrix, one option which came up was the potential of creating a gn build root somewhere like /third_party/chromium, and generating the moz.build files for third-party gn projects together in some manner.

With an approach like this, we'd have a layout which models chromium's repo root in /third_party/chromium, with a custom root BUILD.gn/gclient setup. With something like this, we'd then use gn_processor.py to generate moz.build files for our gn dependencies together.

By having the toplevel gn environment controlled by us, rather than vendored in, we may be able to perform our own customizations more easily in the same ways that chromium does, and can avoid tying our directory layout to chromium's outside of this subdirectory.

This might be able to supercede bug 1788569 as an approach to allow us to share abseil between chromium components which are taking it as a dependency, and require headers to be available at the path /third_party/abseil-cpp/absl/whatever.h. It would likely require us to move crates like gtest into the /third_party/chromium directory when they take on an abseil dependency though.

I'm filing this bug mostly as a place to record this idea and discuss it further. It's not clear that it's the right way forward.

Original matrix discussion where I brought the idea up: https://matrix.to/#/!xvpXYXuzAHqpZoejxX:mozilla.org/$7Sm3CVK1REiWCfQpdjpScnkAhy_5E7T3DN4grTYW4yM?via=mozilla.org&via=matrix.org&via=igalia.com

ni? :mjf and :glandium in case they have thoughts on this idea. It's definitely very half-baked right now.

Flags: needinfo?(mh+mozilla)
Flags: needinfo?(mfroman)
Severity: -- → S3
Priority: -- → P3
Flags: needinfo?(mfroman)
Flags: needinfo?(mh+mozilla)
You need to log in before you can comment on or make changes to this bug.