ExternalProject/FetchContent: Support relative remote URLs
Teach ExternalProject_Add and FetchContent_Declare to resolve relative remote URLs provided via GIT_REPOSITORY:
- When a branch has an upstream remote set, this is used regardless of the number of remotes available globally in the parent project.
- If the branch remote can't be used (e.g. detached state), cmake will either:
- use a single remote, regardless of the name,
- or
originif multiple remotes are defined, issuing an error if multiple remotes are defined and none of them are calledorigin.
Add policy CMP0150 to maintain compatibility.
Fixes: #24211 (closed)
Topic-rename: ExternalProject-relative-git-urls
Edited by Brad King