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_DIR}/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 CLWarnings.cpp 43 CharInfo.cpp 44 CodeGenOptions.cpp 45 Cuda.cpp 46 DarwinSDKInfo.cpp 47 Diagnostic.cpp 48 DiagnosticIDs.cpp 49 DiagnosticOptions.cpp 50 ExpressionTraits.cpp 51 FileEntry.cpp 52 FileManager.cpp 53 FileSystemStatCache.cpp 54 IdentifierTable.cpp 55 LangOptions.cpp 56 LangStandards.cpp 57 MakeSupport.cpp 58 Module.cpp 59 ObjCRuntime.cpp 60 OpenCLOptions.cpp 61 OpenMPKinds.cpp 62 OperatorPrecedence.cpp 63 ProfileList.cpp 64 NoSanitizeList.cpp 65 SanitizerSpecialCaseList.cpp 66 Sanitizers.cpp 67 Sarif.cpp 68 SourceLocation.cpp 69 SourceManager.cpp 70 Stack.cpp 71 TargetID.cpp 72 TargetInfo.cpp 73 Targets.cpp 74 Targets/AArch64.cpp 75 Targets/AMDGPU.cpp 76 Targets/ARC.cpp 77 Targets/ARM.cpp 78 Targets/AVR.cpp 79 Targets/BPF.cpp 80 Targets/CSKY.cpp 81 Targets/DirectX.cpp 82 Targets/Hexagon.cpp 83 Targets/Lanai.cpp 84 Targets/Le64.cpp 85 Targets/M68k.cpp 86 Targets/MSP430.cpp 87 Targets/Mips.cpp 88 Targets/NVPTX.cpp 89 Targets/OSTargets.cpp 90 Targets/PNaCl.cpp 91 Targets/PPC.cpp 92 Targets/RISCV.cpp 93 Targets/SPIR.cpp 94 Targets/Sparc.cpp 95 Targets/SystemZ.cpp 96 Targets/TCE.cpp 97 Targets/VE.cpp 98 Targets/WebAssembly.cpp 99 Targets/X86.cpp 100 Targets/XCore.cpp 101 TokenKinds.cpp 102 TypeTraits.cpp 103 Version.cpp 104 Warnings.cpp 105 XRayInstr.cpp 106 XRayLists.cpp 107 ${version_inc} 108 109 DEPENDS 110 omp_gen 111 ) 112 113