Home | History | Annotate | Download | only in Basic
      1 set(LLVM_LINK_COMPONENTS
      2   Core
      3   MC
      4   Support
      5   )
      6 
      7 # Figure out if we can track VC revisions.
      8 function(find_first_existing_file out_var)
      9   foreach(file ${ARGN})
     10     if(EXISTS "${file}")
     11       set(${out_var} "${file}" PARENT_SCOPE)
     12       return()
     13     endif()
     14   endforeach()
     15 endfunction()
     16 
     17 macro(find_first_existing_vc_file out_var path)
     18   find_first_existing_file(${out_var}
     19     "${path}/.git/logs/HEAD" # Git
     20     "${path}/.svn/wc.db"     # SVN 1.7
     21     "${path}/.svn/entries"   # SVN 1.6
     22     )
     23 endmacro()
     24 
     25 find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
     26 find_first_existing_vc_file(clang_vc "${CLANG_SOURCE_DIR}")
     27 
     28 # The VC revision include that we want to generate.
     29 set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
     30 
     31 set(get_svn_script "${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake")
     32 
     33 if(DEFINED llvm_vc AND DEFINED clang_vc)
     34   # Create custom target to generate the VC revision include.
     35   add_custom_command(OUTPUT "${version_inc}"
     36     DEPENDS "${llvm_vc}" "${clang_vc}" "${get_svn_script}"
     37     COMMAND
     38     ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
     39                      "-DFIRST_NAME=LLVM"
     40                      "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}"
     41                      "-DSECOND_NAME=SVN"
     42                      "-DHEADER_FILE=${version_inc}"
     43                      -P "${get_svn_script}")
     44 
     45   # Mark the generated header as being generated.
     46   set_source_files_properties("${version_inc}"
     47     PROPERTIES GENERATED TRUE
     48                HEADER_FILE_ONLY TRUE)
     49 
     50   # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
     51   set_source_files_properties(Version.cpp
     52     PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
     53 else()
     54   # Not producing a VC revision include.
     55   set(version_inc)
     56 
     57   # Being able to force-set the SVN revision in cases where it isn't available
     58   # is useful for performance tracking, and matches compatibility from autoconf.
     59   if(SVN_REVISION)
     60     set_source_files_properties(Version.cpp
     61       PROPERTIES COMPILE_DEFINITIONS "SVN_REVISION=\"${SVN_REVISION}\"")
     62   endif()
     63 endif()
     64 
     65 add_clang_library(clangBasic
     66   Attributes.cpp
     67   Builtins.cpp
     68   CharInfo.cpp
     69   Cuda.cpp
     70   Diagnostic.cpp
     71   DiagnosticIDs.cpp
     72   DiagnosticOptions.cpp
     73   FileManager.cpp
     74   FileSystemStatCache.cpp
     75   IdentifierTable.cpp
     76   LangOptions.cpp
     77   Module.cpp
     78   ObjCRuntime.cpp
     79   OpenMPKinds.cpp
     80   OperatorPrecedence.cpp
     81   SanitizerBlacklist.cpp
     82   Sanitizers.cpp
     83   SourceLocation.cpp
     84   SourceManager.cpp
     85   TargetInfo.cpp
     86   Targets.cpp
     87   TokenKinds.cpp
     88   Version.cpp
     89   VersionTuple.cpp
     90   VirtualFileSystem.cpp
     91   Warnings.cpp
     92   ${version_inc}
     93   )
     94 
     95