GetSVN.cmake currently takes one or two pairs of <source directory path,
name>, then attempts to get the remote repository URL and source control
revision of the repositories at those one or two paths.
It takes two pairs in order for Clang to get the revision of both
itself, and its dependency LLVM.
For projects that rely upon both LLVM and Clang (Apple's Swift is one
example, but there are others), GetSVN.cmake is used to fetch *three*
revisions: Swift, Clang, and LLVM.
To support this use case, change GetSVN.cmake: instead of taking one or
two pairs (specified via FIRST_SOURCE_DIR/FIRST_NAME, have it take a list
of pairs (SOURCE_DIRS/NAMES).
In order to allow Clang to migrate, have GetSVN.cmake support both sets
of arguments for now. The old arguments can be removed once Clang begins
using the new arguments, and Swift can follow when it updates its
copy of LLVM.
Test Plan:
- Perform a clean build of Clang, verify that clang --version still prints the correct LLVM and Clang revision information.
- Modify Clang's CMake to use the new arguments, then perform another clean build. clang --version should still print the correct revision information.