@@ -73,4 +73,78 @@ add_subdirectory(lib)
7373
7474enable_testing()
7575add_subdirectory(test)
76+ ```
77+
78+ # Additional CMakeLists for Out-of-Tree Dialect
79+
80+ ---
81+
82+ ## ` include/CMakeLists.txt `
83+
84+ ``` cmake
85+ # Configure include directory for TableGen generated headers
86+ add_subdirectory(TutoDialect)
87+ ```
88+
89+ ---
90+
91+ ## ` include/TutoDialect/CMakeLists.txt `
92+
93+ ``` cmake
94+ set(LLVM_TARGET_DEFINITIONS TutoDialect.td)
95+ mlir_tablegen(TutoDialectDialect.h.inc -gen-dialect-decls)
96+ mlir_tablegen(TutoDialectDialect.cpp.inc -gen-dialect-defs)
97+ add_public_tablegen_target(TutoDialectIncGen)
98+
99+ set(LLVM_TARGET_DEFINITIONS TutoDialectOps.td)
100+ mlir_tablegen(TutoDialectOps.h.inc -gen-op-decls)
101+ mlir_tablegen(TutoDialectOps.cpp.inc -gen-op-defs)
102+ add_public_tablegen_target(TutoDialectOpsIncGen)
103+ ```
104+
105+ ---
106+
107+ ## ` lib/CMakeLists.txt `
108+
109+ ``` cmake
110+ add_mlir_dialect_library(TutoDialect
111+ TutoDialect.cpp
112+
113+ DEPENDS
114+ TutoDialectIncGen
115+ TutoDialectOpsIncGen
116+
117+ LINK_LIBS PUBLIC
118+ MLIRIR
119+ )
120+ ```
121+
122+ ---
123+
124+ ## ` test/CMakeLists.txt `
125+
126+ ``` cmake
127+ add_subdirectory(TutoDialect)
128+ ```
129+
130+ ---
131+
132+ ## ` test/TutoDialect/CMakeLists.txt `
133+
134+ ``` cmake
135+ configure_lit_site_cfg(
136+ ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
137+ ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
138+ )
139+
140+ set(TUTO_DIALECT_TEST_DEPENDS
141+ FileCheck count not
142+ TutoDialect
143+ )
144+
145+ add_lit_testsuite(check-tuto-dialect "Running the TutoDialect tests"
146+ ${CMAKE_CURRENT_BINARY_DIR}
147+ DEPENDS ${TUTO_DIALECT_TEST_DEPENDS}
148+ )
149+ add_lit_testsuites(TUTO_DIALECT ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${TUTO_DIALECT_TEST_DEPENDS})
76150```
0 commit comments