1import("//llvm/utils/TableGen/tablegen.gni")
2
3tablegen("SparcGenCallingConv") {
4  visibility = [ ":LLVMSparcCodeGen" ]
5  args = [ "-gen-callingconv" ]
6  td_file = "Sparc.td"
7}
8
9tablegen("SparcGenDAGISel") {
10  visibility = [ ":LLVMSparcCodeGen" ]
11  args = [ "-gen-dag-isel" ]
12  td_file = "Sparc.td"
13}
14
15static_library("LLVMSparcCodeGen") {
16  deps = [
17    ":SparcGenCallingConv",
18    ":SparcGenDAGISel",
19    "MCTargetDesc",
20    "TargetInfo",
21    "//llvm/include/llvm/Config:llvm-config",
22    "//llvm/lib/CodeGen",
23    "//llvm/lib/CodeGen/AsmPrinter",
24    "//llvm/lib/CodeGen/SelectionDAG",
25    "//llvm/lib/IR",
26    "//llvm/lib/MC",
27    "//llvm/lib/Support",
28    "//llvm/lib/Target",
29  ]
30  include_dirs = [ "." ]
31  sources = [
32    "DelaySlotFiller.cpp",
33    "LeonPasses.cpp",
34    "SparcAsmPrinter.cpp",
35    "SparcFrameLowering.cpp",
36    "SparcISelDAGToDAG.cpp",
37    "SparcISelLowering.cpp",
38    "SparcInstrInfo.cpp",
39    "SparcMCInstLower.cpp",
40    "SparcMachineFunctionInfo.cpp",
41    "SparcRegisterInfo.cpp",
42    "SparcSubtarget.cpp",
43    "SparcTargetMachine.cpp",
44    "SparcTargetObjectFile.cpp",
45  ]
46}
47
48# This is a bit different from most build files: Due to this group
49# having the directory's name, "//llvm/lib/Target/Sparc" will refer to this
50# target, which pulls in the code in this directory *and all subdirectories*.
51# For most other directories, "//llvm/lib/Foo" only pulls in the code directly
52# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
53# different behavior.
54group("Sparc") {
55  deps = [
56    ":LLVMSparcCodeGen",
57    "AsmParser",
58    "Disassembler",
59    "MCTargetDesc",
60    "TargetInfo",
61  ]
62}
63