Redo escaping in GN.

This makes Windows escaping more correct and handles Posix shell characters better as well. Now there are completely different codepaths for Windows and Posix escaping.

I removed JSON escaping since this is no longer needed now that we no longer write GYP files.

I no longer have a separate SHELL and NINJA modes. Instead, I have pure NINJA mode for writing file names for Ninja to interpret, and NINKA_FORK mode which does NINJA escaping plus the correct platform-specific rules for the method Ninja uses for running build steps on the current system.

Includes used to always be quoted ("-I../..") which was ugly. Now they're not quoted unless necessary (which is almost never). If it requires quoting, it will do -I"foo bar" which looks a bit odd but saves a bunch of special casing in the output code.

Previously defines weren't quoted at all. Now they work like include dirs.

Removed the convert_slashes flag on PathOutput which is no longer used.

Removed some backslash special-casing in the unit tests on Windows. These are no longer necessary since we changed path output on Windows to use forward-slashes.

Fix base's StackString on GCC. Previously this was only used on Windows-specific code.

Fix mesa Windows GN build.

BUG=358764
R=scottmg@chromium.org

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

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


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