This allows the various binaries (swift-frontend, SourceKit, etc.) to
share the same code, as well as allowing plugins to link against these
shared libraries.
Introduce an experimental option `BuiltinMacros` that takes the magic
literals (`#file`, `#line`, `#function`, etc.) after type checking and
processes the original source for the expression using the build
syntactic macro system in the swift-syntax library. At present, the
result of expansion is printed to standard output, but it's enough to
verify that we're able to find the corresponding syntax node based on
the C++ AST.
Builds of Swift sources via CMake are not getting a target triple set,
so they pick up the host triple. This leads to spurious warnings about
linking in code built for a newer OS version (e.g., the one you're on)
into libraries with an older deployment target. It also breaks
building a cross-compiler. Always set the target triple.
Only introduce it and its dependency when the new Swift parser is being
built, and rely more on existing logic to make sure we get the right
build/link flags.