GN is part of the Chromium tree, in //tools/gn/. If you have a Chromium checkout, you already have the source and you can do ninja -C out/Debug gn
to build it.
To build gn using gn, run (in the root src
directory):
gn gen out/Default ninja -C out/Default gn
Change out/Default
as necessary to put the build directory where you want.
ninja -C out/Default gn_unittests && out/Default/gn_unittests