mac: Roll hermetic toolchain to Xcode 8.3.2.

Xcode 8.3.2 requires macOS 10.12+. This version of Xcode 8.3.2 has both the
10.10 and 10.12 SDKs, and builds will continue to use the 10.10 SDK.

To support machines running macOS versions < 10.12, but don't require building
targets, this CL also:
  * Does not download the hermetic toolchain if the macOS version does not
    support the toolchain version.
  * Does not allow building targets with the default hermetic toolchain if the
    macOS version does not support the toolchain version.

BUG=624049

Review-Url: https://codereview.chromium.org/2950933003
Review-Url: https://codereview.chromium.org/2950933003
Review-Url: https://codereview.chromium.org/2950933003
Review-Url: https://codereview.chromium.org/2950933003
Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#481692}
Committed: https://chromium.googlesource.com/chromium/src/+/2f19b143e444c920e643feda583e9ceb72d29c8e
Committed: https://chromium.googlesource.com/chromium/src/+/350127923178be13e901e047ea5719890e7af365
Committed: https://chromium.googlesource.com/chromium/src/+/87de017dbe9a09bf33e34e462f8cb0a1b1dba087
Cr-Original-Original-Commit-Position: refs/heads/master@{#482776}
Cr-Original-Commit-Position: refs/heads/master@{#483217}
Cr-Original-Original-Original-Original-Commit-Position: refs/heads/master@{#481225}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d5dfcdb0f4ef632fc90a53e02796f72d8d81f657
1 file changed
tree: 86af0942248f2e33939a9a67c9801c97a3af568d
  1. build.gni
  2. gtest.gni
  3. OWNERS
  4. pdfium.gni
  5. README.md
  6. webrtc.gni
README.md

Build overrides in GN

This directory is used to allow different products to customize settings for repos that are DEPS'ed in or shared.

For example: V8 could be built on its own (in a “standalone” configuration), and it could be built as part of Chromium. V8 might define a top-level target, //v8:d8 (a simple executable), that should only be built in the standalone configuration. To figure out whether or not it should be in a standalone configuration, v8 can create a file, build_overrides/v8.gni, that contains a variable, build_standalone_d8 = true. and import it (as import(“//build_overrides/v8.gni”) from its top-level BUILD.gn file.

Chromium, on the other hand, might not need to build d8, and so it would create its own build_overrides/v8.gni file, and in it set build_standalone_d8 = false.

The two files should define the same set of variables, but the values can vary as appropriate to the needs of the two different builds.

The build.gni file provides a way for projects to override defaults for variables used in //build itself (which we want to be shareable between projects).

TODO(crbug.com/588513): Ideally //build_overrides and, in particular, //build_overrides/build.gni should go away completely in favor of some mechanism that can re-use other required files like //.gn, so that we don't have to keep requiring projects to create a bunch of different files to use GN.