Add support for reading .gypi files.

Adds support for a new value type, a dictionary. To script it looks the same as a scope, but the existing scope didn't have the right memory management semantics for this.

Adds a new input conversion mode to interpret the result of a script as a GN block (basically an eval) and get the result in a dictionary. This allows returning named sets of things from a script. Updates the accessor and defined stuff to work with this new type.

Adds some features to the input file manager so that when we do dynamic reading from a script we keep the text of the read around which means we can give proper errors that refer to the script output, and don't have to do the weird recursive set origin thing to clear out the pointers that became invalid when the InputFile went out of scope.

This allows us to give better error messages when parsing input. The error handling in the input conversion code is changed accordingly.

Checks for unused variables both in code that instantiates a template, and in the template code itself.

Adds a shared python script for outputting values from Python to GN.

Adds a python script to read .gypi files and return the value as a GN scope.

BUG=
R=dpranke@chromium.org, scottmg@chromium.org

Review URL: https://codereview.chromium.org/223783005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262045 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 530bf7e81fc648f82634abcfa165bbda19d69cc1
2 files changed
tree: d2c6ae3807619c07c4505a64ee2ee65b27b2e84c
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/