CMake ExternalProject/FetchContent Git vs. URL archive

CMake ExternalProject and FetchContent can download from Git or URL archive. Archive download is usually much faster, especially for projects with a large number of Git commits. Checksum of the archive can optionally be verified with URL_HASH option.

Example

Git submodule

At first glance since Git config can set fetchParallel Git clone submodule in parallel might be something the ExternalProject GIT_CONFIG could do, but we have not tried this.