text: static_library("Basic") {
    output_name = "clangBasic"
    configs += [ "//llvm/utils/gn/build:clang_code" ]
    public_deps = [
      # public_dep because public header Version.h includes generated Version.inc.
      "//clang/include/clang/Basic:AttrList",
      "//clang/include/clang/Basic:AttrSubMatchRulesList",
      "//clang/include/clang/Basic:DiagnosticGroups",
      "//clang/include/clang/Basic:diags_tablegen",
      "//clang/include/clang/Basic:version",
    ]
    deps = [
      "//clang/include/clang/Basic:AttrHasAttributeImpl",
      "//clang/include/clang/Basic:arm_fp16",
      "//clang/include/clang/Basic:arm_neon",
      "//clang/include/clang/Config",
      "//llvm/include/llvm/Config:llvm-config",
      "//llvm/lib/IR",
      "//llvm/lib/MC",
      "//llvm/lib/Support",
    ]
    include_dirs = [ "." ]
    sources = [
      "Attributes.cpp",
      "Builtins.cpp",
      "CharInfo.cpp",
      "CodeGenOptions.cpp",
      "Cuda.cpp",
      "Diagnostic.cpp",
      "DiagnosticIDs.cpp",
      "DiagnosticOptions.cpp",
      "FileManager.cpp",
      "FileSystemStatCache.cpp",
      "FixedPoint.cpp",
      "IdentifierTable.cpp",
      "LangOptions.cpp",
      "MemoryBufferCache.cpp",
      "Module.cpp",
      "ObjCRuntime.cpp",
      "OpenMPKinds.cpp",
      "OperatorPrecedence.cpp",
      "SanitizerBlacklist.cpp",
      "SanitizerSpecialCaseList.cpp",
      "Sanitizers.cpp",
      "SourceLocation.cpp",
      "SourceManager.cpp",
      "TargetInfo.cpp",
      "Targets.cpp",
      "Targets/AArch64.cpp",
      "Targets/AMDGPU.cpp",
      "Targets/ARC.cpp",
      "Targets/ARM.cpp",
      "Targets/AVR.cpp",
      "Targets/BPF.cpp",
      "Targets/Hexagon.cpp",
      "Targets/Lanai.cpp",
      "Targets/Le64.cpp",
      "Targets/MSP430.cpp",
      "Targets/Mips.cpp",
      "Targets/NVPTX.cpp",
      "Targets/OSTargets.cpp",
      "Targets/PNaCl.cpp",
      "Targets/PPC.cpp",
      "Targets/RISCV.cpp",
      "Targets/SPIR.cpp",
      "Targets/Sparc.cpp",
      "Targets/SystemZ.cpp",
      "Targets/TCE.cpp",
      "Targets/WebAssembly.cpp",
      "Targets/X86.cpp",
      "Targets/XCore.cpp",
      "TokenKinds.cpp",
  
      # FIXME: This should be in its own target that passes -DHAVE_SVN_VERSION_INC
      # and that also depends on a target generating SVNVersion.inc.
      "Version.cpp",
      "Warnings.cpp",
      "XRayInstr.cpp",
      "XRayLists.cpp",
    ]
  }
  