Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
GN build #12837
This PR adds GN build infrastructure for building on macOS. This build system is still in the experimental phase while we continue to explore and look for the best way of integrating with Chromium's GN build system. This doesn't affect the GYP build, which should continue to function unimpacted by these changes. As of this PR, the build will only work as a component build on macOS.
The first commit in this PR updates
Instructions for trying out the GN build on Mac (once this is merged):
This is a substantial structural change to how electron is checked out. Instead of git submodules, in the GN build electron and its dependencies (including chromium) are checked out with
This is coordinated through DEPS files instead of git submodules.
Have verified this locally, built with the following configuration
cc_wrapper = "sccache" is_component_build = true use_jumbo_build = true is_electron_build = true is_debug = true symbol_level = 2 use_allocator = "none" enable_nacl = false proprietary_codecs = true is_component_ffmpeg = true ffmpeg_branding = "Chrome" v8_promise_internal_field_count = 1 v8_typed_array_max_size_in_heap = 0 root_extra_deps = [ "//electron" ]
I am good with merging this as experimental, to allow work on this incrementally. @nornagon what do you think about adding a doc entry with the setup described in the PR description. Also Would like to get approval from @zcbenz and @alexeykuzmin before merging.
Let's merge all needed refactorings separately.
There too many changes here for a single PR.
And could you please rebase your branch onto the latest
e/e? There are no conflicts but it doesn't mean that everything will work after the merge.
All non-GN changes split out into separate PRs:
All the above PRs are required before this one can be merged.