xref: /llvm-project/llvm/utils/TableGen/CMakeLists.txt (revision 6aeffcdb913052e43335130e129e36babaa9b252)
1# Basic utilities which is the strict minimum needed to build
2# llvm-min-tblgen.
3add_subdirectory(Basic)
4# Common utilities are all of the reusable components and helper
5# code needed by the backends.
6add_subdirectory(Common)
7
8set(LLVM_LINK_COMPONENTS Support)
9
10# llvm-min-tablegen only contains a subset of backends necessary to
11# build llvm/include. It must not depend on TableGenCommon, as
12# TableGenCommon depends on this already to generate things such as
13# ValueType definitions.
14# Sources included in both, llvm-min-tblgen and llvm-tblgen, must be included
15# into LLVMTableGenBasic to avoid redundant compilation and problems with build
16# caches.
17# At least one source file must be included directly to avoid CMake problems.
18# E.g. CMake derives which linker to use from the types of sources added.
19add_tablegen(llvm-min-tblgen LLVM_HEADERS
20  llvm-min-tblgen.cpp
21  $<TARGET_OBJECTS:obj.LLVMTableGenBasic>
22
23  PARTIAL_SOURCES_INTENDED
24  )
25
26set(LLVM_LINK_COMPONENTS
27  CodeGenTypes
28  Support
29  )
30
31add_tablegen(llvm-tblgen LLVM
32  DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
33  EXPORT LLVM
34  AsmMatcherEmitter.cpp
35  AsmWriterEmitter.cpp
36  CallingConvEmitter.cpp
37  CodeEmitterGen.cpp
38  CodeGenMapTable.cpp
39  CompressInstEmitter.cpp
40  CTagsEmitter.cpp
41  DAGISelEmitter.cpp
42  DAGISelMatcherEmitter.cpp
43  DAGISelMatcherGen.cpp
44  DAGISelMatcherOpt.cpp
45  DecoderEmitter.cpp
46  DFAEmitter.cpp
47  DFAPacketizerEmitter.cpp
48  DisassemblerEmitter.cpp
49  DXILEmitter.cpp
50  ExegesisEmitter.cpp
51  FastISelEmitter.cpp
52  GlobalISelCombinerEmitter.cpp
53  GlobalISelEmitter.cpp
54  InstrDocsEmitter.cpp
55  InstrInfoEmitter.cpp
56  llvm-tblgen.cpp
57  MacroFusionPredicatorEmitter.cpp
58  OptionParserEmitter.cpp
59  OptionRSTEmitter.cpp
60  PseudoLoweringEmitter.cpp
61  RegisterBankEmitter.cpp
62  RegisterInfoEmitter.cpp
63  SDNodeInfoEmitter.cpp
64  SearchableTableEmitter.cpp
65  SubtargetEmitter.cpp
66  WebAssemblyDisassemblerEmitter.cpp
67  X86InstrMappingEmitter.cpp
68  X86DisassemblerTables.cpp
69  X86FoldTablesEmitter.cpp
70  X86MnemonicTables.cpp
71  X86ModRMFilters.cpp
72  X86RecognizableInstr.cpp
73  $<TARGET_OBJECTS:obj.LLVMTableGenBasic>
74  $<TARGET_OBJECTS:obj.LLVMTableGenCommon>
75
76  PARTIAL_SOURCES_INTENDED
77
78  DEPENDS
79  intrinsics_gen # via llvm-min-tablegen
80  )
81