We're trying to rewrite nmake-based build system for Sumatra in [gyp](https://github.com/sumatrapdfreader/sumatrapdf/tree/master/gyp). Gyp is a meta-build system that generates project files (Visual Studio, XCode, makefiles) based on gyp description, which is json-like.
Gyp is not well documented, what I know comes from reverse-engineering by looking at .gyp files from other projects, found with [github code search](https://github.com/search?utf8=%E2%9C%93&q=variables+extension%3Agyp&type=Code&ref=searchresults)
This is a summary of what keys can be used in what context:
```
Configuration settings:
defines
msbuild_toolset : v120_xp, v120
msvs_settings*
target_defaults
configurations - dict of configurations,that map name to configuration settins