diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
commit | 06d4ba388873e6d1cfa9cd715a8935ecc8cd2097 (patch) | |
tree | 3eb853da77d46cc77c4b017525a422f9ddb1385b /lib/Basic/CMakeLists.txt | |
parent | 30d791273d07fac9c0c1641a0731191bca6e8606 (diff) | |
download | src-06d4ba388873e6d1cfa9cd715a8935ecc8cd2097.tar.gz src-06d4ba388873e6d1cfa9cd715a8935ecc8cd2097.zip |
Vendor import of clang RELEASE_360/rc1 tag r226102 (effectively, 3.6.0 RC1):vendor/clang/clang-release_360-r226102
Notes
Notes:
svn path=/vendor/clang/dist/; revision=277325
svn path=/vendor/clang/clang-release_360-r226102/; revision=277326; tag=vendor/clang/clang-release_360-r226102
Diffstat (limited to 'lib/Basic/CMakeLists.txt')
-rw-r--r-- | lib/Basic/CMakeLists.txt | 80 |
1 files changed, 55 insertions, 25 deletions
diff --git a/lib/Basic/CMakeLists.txt b/lib/Basic/CMakeLists.txt index 0df82b3bc906..50a06d9e7a42 100644 --- a/lib/Basic/CMakeLists.txt +++ b/lib/Basic/CMakeLists.txt @@ -1,8 +1,60 @@ set(LLVM_LINK_COMPONENTS + Core MC Support ) +# Figure out if we can track VC revisions. +function(find_first_existing_file out_var) + foreach(file ${ARGN}) + if(EXISTS "${file}") + set(${out_var} "${file}" PARENT_SCOPE) + return() + endif() + endforeach() +endfunction() + +macro(find_first_existing_vc_file out_var path) + find_first_existing_file(${out_var} + "${path}/.git/logs/HEAD" # Git + "${path}/.svn/wc.db" # SVN 1.7 + "${path}/.svn/entries" # SVN 1.6 + ) +endmacro() + +find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}") +find_first_existing_vc_file(clang_vc "${CLANG_SOURCE_DIR}") + +# The VC revision include that we want to generate. +set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc") + +set(get_svn_script "${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake") + +if(DEFINED llvm_vc AND DEFINED clang_vc) + # Create custom target to generate the VC revision include. + add_custom_command(OUTPUT "${version_inc}" + DEPENDS "${llvm_vc}" "${clang_vc}" "${get_svn_script}" + COMMAND + ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}" + "-DFIRST_NAME=LLVM" + "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}" + "-DSECOND_NAME=SVN" + "-DHEADER_FILE=${version_inc}" + -P "${get_svn_script}") + + # Mark the generated header as being generated. + set_source_files_properties("${version_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") +else() + # Not producing a VC revision include. + set(version_inc) +endif() + add_clang_library(clangBasic Attributes.cpp Builtins.cpp @@ -17,6 +69,8 @@ add_clang_library(clangBasic ObjCRuntime.cpp OpenMPKinds.cpp OperatorPrecedence.cpp + SanitizerBlacklist.cpp + Sanitizers.cpp SourceLocation.cpp SourceManager.cpp TargetInfo.cpp @@ -26,30 +80,6 @@ add_clang_library(clangBasic VersionTuple.cpp VirtualFileSystem.cpp Warnings.cpp + ${version_inc} ) -# 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") - set(FIRST_SOURCE_DIR ${LLVM_MAIN_SRC_DIR}) - set(FIRST_REPOSITORY LLVM_REPOSITORY) - set(SECOND_SOURCE_DIR ${CLANG_SOURCE_DIR}) - set(SECOND_REPOSITORY SVN_REPOSITORY) - set(HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc) - include(GetSVN) - - # 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 "HAVE_SVN_VERSION_INC") - -endif() |