Actually this is "sub"gn. subgn:gn::subninja:ninja.
GN is a meta-build system that generates NinjaBuild files so that you can build
Chromiumanything you want with Ninja.
The official gn is here. This repo tracks the official repo with a few minor additional features.
Yeah, sure. Since "official gn" lives on chromium.googlesource.com, this repo doesn't bother to clone all git commits. The history has been squashed.
Patches are kept to an absolute minimum. No changes here should ever cause a build to fail which works with "official gn."
To build out_bootstrap/gn, type:
git clone https://github.com/ndsol/subgn
subgn/build.cmd
Build instructions (semi-official?) from 2015:
#!/bin/bash
set -e
set -v
# Get the sources
mkdir gn-standalone
cd gn-standalone
mkdir tools
cd tools
git clone https://chromium.googlesource.com/chromium/src/tools/gn
cd ..
mkdir -p third_party/libevent
cd third_party/libevent
wget --no-check-certificate https://chromium.googlesource.com/chromium/chromium/+archive/master/third_party/libevent.tar.gz
tar -xvzf libevent.tar.gz
cd ../..
git clone https://chromium.googlesource.com/chromium/src/base
git clone https://chromium.googlesource.com/chromium/src/build
git clone https://chromium.googlesource.com/chromium/src/build/config
mkdir testing
cd testing
git clone https://chromium.googlesource.com/chromium/testing/gtest
cd ..
# Build
cd tools/gn
./bootstrap/bootstrap.py -s
The applied patch set is included as subgn.patch.