diff options
Diffstat (limited to 'clang/lib/Basic')
| -rw-r--r-- | clang/lib/Basic/CMakeLists.txt | 56 | 
1 files changed, 30 insertions, 26 deletions
| diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt index 4eccfdeee55..34111691c82 100644 --- a/clang/lib/Basic/CMakeLists.txt +++ b/clang/lib/Basic/CMakeLists.txt @@ -20,26 +20,35 @@ add_clang_library(clangBasic    TokenKinds.cpp    Version.cpp    VersionTuple.cpp -  ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc    ) -# Create custom target to generate the Subversion version include. -add_custom_target(clang_revision_tag -  ${CMAKE_COMMAND} -DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR} -                   -DFIRST_NAME=LLVM -                   -DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR} -                   -DSECOND_NAME=SVN -                   -DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc -                   -P ${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake) +# Determine Subversion revision. +# FIXME: This only gets updated when CMake is run, so this revision number +# may be out-of-date! +if( NOT IS_SYMLINK "${CLANG_SOURCE_DIR}" )  # See PR 8437 +  find_package(Subversion) +endif() +if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn") +  # 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) -# Mark the generated header as being generated. -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 "HAVE_SVN_VERSION_INC") -# Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC. -set_source_files_properties(Version.cpp -  PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC") +endif()  add_dependencies(clangBasic    ClangARMNeon @@ -56,14 +65,9 @@ add_dependencies(clangBasic    ClangDiagnosticParse    ClangDiagnosticSema    ClangDiagnosticSerialization -  clang_revision_tag -) - -# Force regeneration now. -FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc) +  ) -if(CLANG_ALWAYS_CHECK_VC_REV) -  add_custom_command(TARGET clangBasic POST_BUILD -    COMMAND ${CMAKE_COMMAND} -E remove -            ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc) -endif() +# clangBasic depends on the version. +if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn") +  add_dependencies(clangBasic clang_revision_tag) +endif()
\ No newline at end of file | 

