[Basic] Use new GetSVN.cmake parameters #10824
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This should be merged only after LLVM revision D35133 (or some version of it) is merged into LLVM upstream, and pulled down into apple/swift-llvm. In the meantime, however, I think this patch demonstrates why D35133 is useful, so I'd like to submit it for review.
@jrose-apple, feel free to review either of the patches! 馃檱
LLVM's GetSVN.cmake is capable of finding the remote URL and revision of one repository, using the
FIRST_SOURCE_DIR
/FIRST_NAME
parameters, and optionally a second one, using the optionalSECOND_SOURCE_DIR
/SECOND_NAME
parameters. Because Swift requires source control information for three repositories, it calls GetSVN.cmake three times, with threeFIRST_SOURCE_DIR
/FIRST_NAME
parameters.LLVM https://reviews.llvm.org/D35132 modifies GetSVN.cmake such that it can take any number of
SOURCE_DIRS
andNAMES
, instead of just one (or two). Use these new parameters to simplify the CMake in swift/lib/Basic/CMakeLists.txt.There's one other change here: instead of creating three files (LLVMRevision.inc, ClangRevision.inc, and SwiftRevision.inc), as of this diff only one is created: Revision.inc. There is no difference in functionality --
swift::printFullRevisionString()
behaves the same, even when revision information for only a subset of repositories is found.