New build flag system, convert Google Now flag

This generates headers with build flags rather than forcing them all to be global. It includes an accessor wrapper so that references to the flags will fail if the proper header is not included.

Converts Google Now to use this and remove the global google now define and grit define.

Adds support for grit define values of "true" and "false" for ease of integration with GN (they are mapped to the corresponding Python "True" and "False").

Adds dependencies from the main gyp targets to the new generated feature define target. Since GYP only does hard dependencies one level, this should reduce the chance that somebody adds more of these cases and forces to add a dependency.

Reland of https://codereview.chromium.org/1458653002/
TBR=mark@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#361741}


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