FetchContent: Set policies for most commands
Previously, FetchContent was relying on the policies of the includer being compatible with the module. That made the module vulnerable to subtle problems where policy settings might lead to unexpected behavior.
With this change, we now specify the policies for as much of
the module as we can without breaking backward compatibility.
Only a few specific implementation details of the
FetchContent_MakeAvailable()
macro have to remain uncontrolled
due to the way those parts can invoke user or project code which
may be relying on the includer's policy settings (intentionally or not).
Edited by Craig Scott