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