I'd like to propose we update the required CMake version to be 3.18 (the current minimum version for macOS). This is two releases behind the current RC (3.20). If anyone is still using an old CMake, we already have the infrastructure to bootstrap a newer version as part of the build process. Are there any objections to doing this from the community?
In particular, there were fixes related to handling of output locations and fixes related to handling of module search paths and linker search paths for transitive dependencies of targets which required workarounds previously.
Another option would be to actually have two separate versions of CMake and use that specifically for the specific target, but of course that incurs a complexity in the build system.
I'm not suggesting that any one solution is better, just trying to make sure that all the information is available so we can make an informed decision.
Given that how many different failure modes people hit in practice with the build, IMO having a single CMake version is the way to go; if something goes wrong, debugging will be easier with one CMake rather than two.
While you're right that I mainly want to update the CMake version so that we can use uswift, the reason that uswift uses CMake 3.18 (and not an earlier version) is important, and a good reason for us, too, to update our CMake version. Especially as we have more Swift code in the compiler/build pipeline.