xref: /llvm-project/mlir/lib/Interfaces/CMakeLists.txt (revision caf8b1f654122342dc846ae4d9a86d5c6f93f945)
1set(LLVM_OPTIONAL_SOURCES
2  CallInterfaces.cpp
3  CastInterfaces.cpp
4  ControlFlowInterfaces.cpp
5  CopyOpInterface.cpp
6  DataLayoutInterfaces.cpp
7  DerivedAttributeOpInterface.cpp
8  DestinationStyleOpInterface.cpp
9  FunctionImplementation.cpp
10  FunctionInterfaces.cpp
11  InferIntRangeInterface.cpp
12  InferTypeOpInterface.cpp
13  LoopLikeInterface.cpp
14  MemorySlotInterfaces.cpp
15  ParallelCombiningOpInterface.cpp
16  RuntimeVerifiableOpInterface.cpp
17  ShapedOpInterfaces.cpp
18  SideEffectInterfaces.cpp
19  SubsetOpInterface.cpp
20  TilingInterface.cpp
21  ValueBoundsOpInterface.cpp
22  VectorInterfaces.cpp
23  ViewLikeInterface.cpp
24  )
25
26function(add_mlir_interface_library name)
27  add_mlir_library(MLIR${name}
28    ${name}.cpp
29
30    ADDITIONAL_HEADER_DIRS
31    ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
32
33    DEPENDS
34    MLIR${name}IncGen
35
36    LINK_LIBS PUBLIC
37    MLIRIR
38    )
39endfunction(add_mlir_interface_library)
40
41
42add_mlir_interface_library(CallInterfaces)
43add_mlir_interface_library(CastInterfaces)
44add_mlir_interface_library(ControlFlowInterfaces)
45add_mlir_interface_library(CopyOpInterface)
46add_mlir_interface_library(DataLayoutInterfaces)
47add_mlir_interface_library(DerivedAttributeOpInterface)
48add_mlir_interface_library(DestinationStyleOpInterface)
49
50add_mlir_library(MLIRFunctionInterfaces
51  FunctionInterfaces.cpp
52  FunctionImplementation.cpp
53
54  ADDITIONAL_HEADER_DIRS
55  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
56
57  DEPENDS
58  MLIRFunctionInterfacesIncGen
59
60  LINK_LIBS PUBLIC
61  MLIRIR
62)
63
64add_mlir_interface_library(InferIntRangeInterface)
65add_mlir_interface_library(InferTypeOpInterface)
66
67add_mlir_library(MLIRLoopLikeInterface
68  LoopLikeInterface.cpp
69
70  ADDITIONAL_HEADER_DIRS
71  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
72
73  DEPENDS
74  MLIRLoopLikeInterfaceIncGen
75
76  LINK_LIBS PUBLIC
77  MLIRIR
78  MLIRFunctionInterfaces
79)
80
81add_mlir_interface_library(MemorySlotInterfaces)
82add_mlir_interface_library(ParallelCombiningOpInterface)
83add_mlir_interface_library(RuntimeVerifiableOpInterface)
84add_mlir_interface_library(ShapedOpInterfaces)
85add_mlir_interface_library(SideEffectInterfaces)
86
87add_mlir_library(MLIRSubsetOpInterface
88  SubsetOpInterface.cpp
89
90  ADDITIONAL_HEADER_DIRS
91  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
92
93  DEPENDS
94  MLIRDestinationStyleOpInterface
95  MLIRSubsetOpInterfaceIncGen
96  MLIRValueBoundsOpInterface
97
98  LINK_LIBS PUBLIC
99  MLIRDestinationStyleOpInterface
100  MLIRIR
101  MLIRValueBoundsOpInterface
102  )
103
104add_mlir_library(MLIRTilingInterface
105  TilingInterface.cpp
106
107  ADDITIONAL_HEADER_DIRS
108  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
109
110  DEPENDS
111  MLIRTilingInterfaceIncGen
112  MLIRDialectUtils
113
114  LINK_LIBS PUBLIC
115  MLIRIR
116)
117
118add_mlir_interface_library(VectorInterfaces)
119add_mlir_interface_library(ViewLikeInterface)
120
121add_mlir_library(MLIRValueBoundsOpInterface
122  ValueBoundsOpInterface.cpp
123
124  ADDITIONAL_HEADER_DIRS
125  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
126
127  DEPENDS
128  MLIRDestinationStyleOpInterface
129  MLIRValueBoundsOpInterfaceIncGen
130  MLIRViewLikeInterface
131
132  LINK_LIBS PUBLIC
133  MLIRAnalysis
134  MLIRDestinationStyleOpInterface
135  MLIRIR
136  )
137
138add_subdirectory(Utils)
139