xref: /llvm-project/llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn (revision f06d4d9ae501115c20829bab7513a977a71bf53c)
1static_library("Driver") {
2  output_name = "clangDriver"
3  configs += [ "//llvm/utils/gn/build:clang_code" ]
4  include_dirs = [ "." ]
5  deps = [
6    "//clang/include/clang/Config",
7
8    # Driver doesn't depend on StaticAnalyzer and the other way round, but
9    # as of clang r311958 Driver does depend on StaticAnalyzer/Checkers's
10    # tablegen'd Checkers.inc.  The CMake build runs all clang tablegen steps
11    # before all lib compilations via the clang-tablegen-targets target; the
12    # GN build has this dependency instead.
13    # FIXME: Move Checkers.td somewhere else to clean up this layering mess.
14    # See the review thread of r311958 for details.
15    "//clang/include/clang/StaticAnalyzer/Checkers",
16    "//clang/lib/Basic",
17    "//llvm/include/llvm/Config:llvm-config",
18    "//llvm/lib/BinaryFormat",
19    "//llvm/lib/Option",
20    "//llvm/lib/Support",
21    "//llvm/lib/TargetParser",
22    "//llvm/lib/WindowsDriver",
23  ]
24  public_deps = [
25    # public_dep because public header Options.h includes generated Options.inc.
26    "//clang/include/clang/Driver:Options",
27  ]
28  if (host_os == "win") {
29    # MSVCToolChain.cpp uses version.dll.
30    libs = [ "version.lib" ]
31  }
32  sources = [
33    "Action.cpp",
34    "Compilation.cpp",
35    "Distro.cpp",
36    "Driver.cpp",
37    "DriverOptions.cpp",
38    "Job.cpp",
39    "Multilib.cpp",
40    "MultilibBuilder.cpp",
41    "OffloadBundler.cpp",
42    "OptionUtils.cpp",
43    "Phases.cpp",
44    "SanitizerArgs.cpp",
45    "Tool.cpp",
46    "ToolChain.cpp",
47    "ToolChains/AIX.cpp",
48    "ToolChains/AMDGPU.cpp",
49    "ToolChains/AMDGPUOpenMP.cpp",
50    "ToolChains/AVR.cpp",
51    "ToolChains/Arch/AArch64.cpp",
52    "ToolChains/Arch/ARM.cpp",
53    "ToolChains/Arch/CSKY.cpp",
54    "ToolChains/Arch/LoongArch.cpp",
55    "ToolChains/Arch/M68k.cpp",
56    "ToolChains/Arch/Mips.cpp",
57    "ToolChains/Arch/PPC.cpp",
58    "ToolChains/Arch/RISCV.cpp",
59    "ToolChains/Arch/Sparc.cpp",
60    "ToolChains/Arch/SystemZ.cpp",
61    "ToolChains/Arch/VE.cpp",
62    "ToolChains/Arch/X86.cpp",
63    "ToolChains/BareMetal.cpp",
64    "ToolChains/CSKYToolChain.cpp",
65    "ToolChains/Clang.cpp",
66    "ToolChains/CommonArgs.cpp",
67    "ToolChains/CrossWindows.cpp",
68    "ToolChains/Cuda.cpp",
69    "ToolChains/Darwin.cpp",
70    "ToolChains/DragonFly.cpp",
71    "ToolChains/Flang.cpp",
72    "ToolChains/FreeBSD.cpp",
73    "ToolChains/Fuchsia.cpp",
74    "ToolChains/Gnu.cpp",
75    "ToolChains/HIPAMD.cpp",
76    "ToolChains/HIPSPV.cpp",
77    "ToolChains/HIPUtility.cpp",
78    "ToolChains/HLSL.cpp",
79    "ToolChains/Haiku.cpp",
80    "ToolChains/Hexagon.cpp",
81    "ToolChains/Hurd.cpp",
82    "ToolChains/InterfaceStubs.cpp",
83    "ToolChains/Linux.cpp",
84    "ToolChains/MSP430.cpp",
85    "ToolChains/MSVC.cpp",
86    "ToolChains/MinGW.cpp",
87    "ToolChains/MipsLinux.cpp",
88    "ToolChains/NaCl.cpp",
89    "ToolChains/NetBSD.cpp",
90    "ToolChains/OHOS.cpp",
91    "ToolChains/OpenBSD.cpp",
92    "ToolChains/PPCFreeBSD.cpp",
93    "ToolChains/PPCLinux.cpp",
94    "ToolChains/PS4CPU.cpp",
95    "ToolChains/RISCVToolchain.cpp",
96    "ToolChains/SPIRV.cpp",
97    "ToolChains/SPIRVOpenMP.cpp",
98    "ToolChains/SYCL.cpp",
99    "ToolChains/Solaris.cpp",
100    "ToolChains/TCE.cpp",
101    "ToolChains/UEFI.cpp",
102    "ToolChains/VEToolchain.cpp",
103    "ToolChains/WebAssembly.cpp",
104    "ToolChains/XCore.cpp",
105    "ToolChains/ZOS.cpp",
106    "Types.cpp",
107    "XRayArgs.cpp",
108  ]
109}
110