diff options
author | Brian Gesiak <modocache@gmail.com> | 2017-07-17 19:22:57 +0000 |
---|---|---|
committer | Brian Gesiak <modocache@gmail.com> | 2017-07-17 19:22:57 +0000 |
commit | 7873d822f79b8cde7642cf94b8c7d68223f5404b (patch) | |
tree | d1b3184efce8c55931942c7a0366de7eced6cc2b /llvm/utils/vim | |
parent | b44e407d6bf581295df55133fee33b8a7009f697 (diff) | |
download | bcm5719-llvm-7873d822f79b8cde7642cf94b8c7d68223f5404b.tar.gz bcm5719-llvm-7873d822f79b8cde7642cf94b8c7d68223f5404b.zip |
[Basic] Detect Git submodule version in CMake
Summary:
When searching for Git version control information, libBasic's CMake
checks for the path '.git/logs/HEAD'. However, when LLVM is included as
a Git submodule, this path does not exist. Instead, it contains a '.git'
file with the following:
```
gitdir: ../../.git/modules/external/llvm
```
Where '../..' is the relative path to the root repository that contains
the LLVM Git submodule.
Because of this discrepancy, `clang --version` does not output source
control information if built from a Git submodule.
To fix, check whether '.git' is a directory or a file. If it's a
directory, simply use the '.git/logs/HEAD' path. If it's a file, read it
and check for the tell-tale sign of a Git submodule: the text "gitdir:".
If it exists, follow that path and use the 'logs/HEAD' at that location
instead. This allows not only the correct revision information to be
retrieved, but also uses a file that will change with each source
control revision.
Test Plan:
1. Before applying this change, build Clang as a Git submodule in a repository
that places it in external/clang, and confirm no revision information
is output when `clang --version` is invoked (just "clang 5.0.0" is
output, no Git hashes).
2. Apply these changes and build Clang as a Git repository nested under
llvm/tools/clang, and confirm that `clang --version` displays correct
version information.
3. Apply these changes and build Clang as a Git submodule using the
structure described in (1), and confirm version control information
is output as in (2).
Reviewers: jordan_rose, beanz, probinson
Reviewed By: jordan_rose
Subscribers: chapuni, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D34955
llvm-svn: 308205
Diffstat (limited to 'llvm/utils/vim')
0 files changed, 0 insertions, 0 deletions