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 endif()
     57 
     58 add_clang_library(clangBasic
     59   Attributes.cpp
     60   Builtins.cpp
     61   CharInfo.cpp
     62   Diagnostic.cpp
     63   DiagnosticIDs.cpp
     64   DiagnosticOptions.cpp
     65   FileManager.cpp
     66   FileSystemStatCache.cpp
     67   IdentifierTable.cpp
     68   LangOptions.cpp
     69   Module.cpp
     70   ObjCRuntime.cpp
     71   OpenMPKinds.cpp
     72   OperatorPrecedence.cpp
     73   SanitizerBlacklist.cpp
     74   Sanitizers.cpp
     75   SourceLocation.cpp
     76   SourceManager.cpp
     77   TargetInfo.cpp
     78   Targets.cpp
     79   TokenKinds.cpp
     80   Version.cpp
     81   VersionTuple.cpp
     82   VirtualFileSystem.cpp
     83   Warnings.cpp
     84   ${version_inc}
     85   )
     86 
     87