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