xref: /llvm-project/flang/include/flang/Optimizer/Dialect/CMakeLists.txt (revision 76e7c8f4aaa7f3bdf6085927756a8772ab7f00f6)
1add_subdirectory(CUF)
2
3# This replicates part of the add_mlir_dialect cmake function from MLIR that
4# cannot be used her because it expects to be run inside MLIR directory which
5# is not the case for FIR.
6set(LLVM_TARGET_DEFINITIONS FIRDialect.td)
7mlir_tablegen(FIRDialect.h.inc -gen-dialect-decls -dialect=fir)
8mlir_tablegen(FIRDialect.cpp.inc -gen-dialect-defs -dialect=fir)
9
10set(LLVM_TARGET_DEFINITIONS FIRAttr.td)
11mlir_tablegen(FIREnumAttr.h.inc -gen-enum-decls)
12mlir_tablegen(FIREnumAttr.cpp.inc -gen-enum-defs)
13mlir_tablegen(FIRAttr.h.inc --gen-attrdef-decls)
14mlir_tablegen(FIRAttr.cpp.inc -gen-attrdef-defs)
15
16set(LLVM_TARGET_DEFINITIONS FIROps.td)
17mlir_tablegen(FIROps.h.inc -gen-op-decls)
18mlir_tablegen(FIROps.cpp.inc -gen-op-defs)
19mlir_tablegen(FIROpsTypes.h.inc --gen-typedef-decls)
20mlir_tablegen(FIROpsTypes.cpp.inc --gen-typedef-defs)
21add_public_tablegen_target(FIROpsIncGen)
22
23set(LLVM_TARGET_DEFINITIONS FortranVariableInterface.td)
24mlir_tablegen(FortranVariableInterface.h.inc -gen-op-interface-decls)
25mlir_tablegen(FortranVariableInterface.cpp.inc -gen-op-interface-defs)
26
27set(LLVM_TARGET_DEFINITIONS FirAliasTagOpInterface.td)
28mlir_tablegen(FirAliasTagOpInterface.h.inc -gen-op-interface-decls)
29mlir_tablegen(FirAliasTagOpInterface.cpp.inc -gen-op-interface-defs)
30
31set(LLVM_TARGET_DEFINITIONS CanonicalizationPatterns.td)
32mlir_tablegen(CanonicalizationPatterns.inc -gen-rewriters)
33add_public_tablegen_target(CanonicalizationPatternsIncGen)
34
35add_custom_target(flang-doc)
36set_target_properties(flang-doc PROPERTIES FOLDER "Flang/Docs")
37set(dialect_doc_filename "FIRLangRef")
38
39set(LLVM_TARGET_DEFINITIONS FIROps.td)
40tablegen(MLIR ${dialect_doc_filename}.md -gen-op-doc "-I${MLIR_INCLUDE_DIR}")
41set(GEN_DOC_FILE ${FLANG_BINARY_DIR}/docs/Dialect/${dialect_doc_filename}.md)
42add_custom_command(
43        OUTPUT ${GEN_DOC_FILE}
44        COMMAND ${CMAKE_COMMAND} -E copy
45                ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md
46                ${GEN_DOC_FILE}
47        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md)
48add_custom_target(${dialect_doc_filename}DocGen DEPENDS ${GEN_DOC_FILE})
49set_target_properties(${dialect_doc_filename}DocGen PROPERTIES FOLDER "Flang/Tablegenning/Docs")
50add_dependencies(flang-doc ${dialect_doc_filename}DocGen)
51