1set(LLVM_LINK_COMPONENTS 2 Support 3 ) 4 5find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc) 6find_first_existing_vc_file("${CLANG_SOURCE_DIR}" clang_vc) 7 8# The VC revision include that we want to generate. 9set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc") 10 11set(generate_vcs_version_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake") 12 13if(llvm_vc AND LLVM_APPEND_VC_REV) 14 set(llvm_source_dir ${LLVM_MAIN_SRC_DIR}) 15endif() 16if(clang_vc AND LLVM_APPEND_VC_REV) 17 set(clang_source_dir ${CLANG_SOURCE_DIR}) 18endif() 19 20# Create custom target to generate the VC revision include. 21add_custom_command(OUTPUT "${version_inc}" 22 DEPENDS "${llvm_vc}" "${clang_vc}" "${generate_vcs_version_script}" 23 COMMAND ${CMAKE_COMMAND} "-DNAMES=\"LLVM;CLANG\"" 24 "-DLLVM_SOURCE_DIR=${llvm_source_dir}" 25 "-DCLANG_SOURCE_DIR=${clang_source_dir}" 26 "-DHEADER_FILE=${version_inc}" 27 -P "${generate_vcs_version_script}") 28 29# Mark the generated header as being generated. 30set_source_files_properties("${version_inc}" 31 PROPERTIES GENERATED TRUE 32 HEADER_FILE_ONLY TRUE) 33 34if(CLANG_VENDOR) 35 set_source_files_properties(Version.cpp 36 PROPERTIES COMPILE_DEFINITIONS "CLANG_VENDOR=\"${CLANG_VENDOR} \"") 37endif() 38 39add_clang_library(clangBasic 40 Attributes.cpp 41 Builtins.cpp 42 CharInfo.cpp 43 CodeGenOptions.cpp 44 Cuda.cpp 45 DarwinSDKInfo.cpp 46 Diagnostic.cpp 47 DiagnosticIDs.cpp 48 DiagnosticOptions.cpp 49 ExpressionTraits.cpp 50 FileEntry.cpp 51 FileManager.cpp 52 FileSystemStatCache.cpp 53 IdentifierTable.cpp 54 LangOptions.cpp 55 LangStandards.cpp 56 Module.cpp 57 ObjCRuntime.cpp 58 OpenCLOptions.cpp 59 OpenMPKinds.cpp 60 OperatorPrecedence.cpp 61 ProfileList.cpp 62 NoSanitizeList.cpp 63 SanitizerSpecialCaseList.cpp 64 Sanitizers.cpp 65 SourceLocation.cpp 66 SourceManager.cpp 67 Stack.cpp 68 TargetID.cpp 69 TargetInfo.cpp 70 Targets.cpp 71 Targets/AArch64.cpp 72 Targets/AMDGPU.cpp 73 Targets/ARC.cpp 74 Targets/ARM.cpp 75 Targets/AVR.cpp 76 Targets/BPF.cpp 77 Targets/Hexagon.cpp 78 Targets/Lanai.cpp 79 Targets/Le64.cpp 80 Targets/M68k.cpp 81 Targets/MSP430.cpp 82 Targets/Mips.cpp 83 Targets/NVPTX.cpp 84 Targets/OSTargets.cpp 85 Targets/PNaCl.cpp 86 Targets/PPC.cpp 87 Targets/RISCV.cpp 88 Targets/SPIR.cpp 89 Targets/Sparc.cpp 90 Targets/SystemZ.cpp 91 Targets/TCE.cpp 92 Targets/VE.cpp 93 Targets/WebAssembly.cpp 94 Targets/X86.cpp 95 Targets/XCore.cpp 96 TokenKinds.cpp 97 TypeTraits.cpp 98 Version.cpp 99 Warnings.cpp 100 XRayInstr.cpp 101 XRayLists.cpp 102 ${version_inc} 103 104 DEPENDS 105 omp_gen 106 ) 107 108