зеркало из https://github.com/microsoft/clang-1.git
<rdar://problem/13358795> Teach CMake to check Subversion version information at build time, not configure time.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
b27564e875
Коммит
7aac45a082
|
@ -29,9 +29,25 @@ if( NOT IS_SYMLINK "${CLANG_SOURCE_DIR}" ) # See PR 8437
|
|||
find_package(Subversion)
|
||||
endif()
|
||||
if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
|
||||
Subversion_WC_INFO(${CLANG_SOURCE_DIR} CLANG)
|
||||
# Create custom target to generate the Subversion version include.
|
||||
add_custom_target(clang_revision_tag ALL
|
||||
COMMAND ${CMAKE_COMMAND} -DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}
|
||||
-DFIRST_REPOSITORY=LLVM_REPOSITORY
|
||||
-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}
|
||||
-DSECOND_REPOSITORY=SVN_REPOSITORY
|
||||
-DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
|
||||
-P ${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake)
|
||||
|
||||
# Mark the generated header as being generated.
|
||||
message(STATUS "Expecting header to go in ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
|
||||
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
|
||||
PROPERTIES GENERATED TRUE
|
||||
HEADER_FILE_ONLY TRUE)
|
||||
|
||||
# Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
|
||||
set_source_files_properties(Version.cpp
|
||||
PROPERTIES COMPILE_DEFINITIONS "SVN_REVISION=\"${CLANG_WC_REVISION}\"")
|
||||
PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
|
||||
|
||||
endif()
|
||||
|
||||
add_dependencies(clangBasic
|
||||
|
@ -50,3 +66,8 @@ add_dependencies(clangBasic
|
|||
ClangDiagnosticSema
|
||||
ClangDiagnosticSerialization
|
||||
)
|
||||
|
||||
# clangBasic depends on the version.
|
||||
if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
|
||||
add_dependencies(clangBasic clang_revision_tag)
|
||||
endif()
|
|
@ -18,6 +18,10 @@
|
|||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
#ifdef HAVE_SVN_VERSION_INC
|
||||
# include "SVNVersion.inc"
|
||||
#endif
|
||||
|
||||
namespace clang {
|
||||
|
||||
std::string getClangRepositoryPath() {
|
||||
|
|
Загрузка…
Ссылка в новой задаче