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