xref: /llvm-project/utils/bazel/llvm-project-overlay/mlir/examples/toy/Ch2/BUILD.bazel (revision 43b291cbecca155a905f52f37b2b1bea7e9aba76)
1# Description:
2#   MLIR Tutorial
3
4load("//mlir:tblgen.bzl", "gentbl_cc_library", "td_library")
5
6licenses(["notice"])
7
8package(default_visibility = ["//visibility:public"])
9
10td_library(
11    name = "ToyOpsTdFiles",
12    srcs = [
13        "include/toy/Ops.td",
14    ],
15    includes = ["include"],
16    deps = [
17        "//mlir:FunctionInterfacesTdFiles",
18        "//mlir:OpBaseTdFiles",
19        "//mlir:SideEffectInterfacesTdFiles",
20    ],
21)
22
23gentbl_cc_library(
24    name = "ToyOpsIncGen",
25    tbl_outs = [
26        (
27            ["-gen-op-decls"],
28            "include/toy/Ops.h.inc",
29        ),
30        (
31            ["-gen-op-defs"],
32            "include/toy/Ops.cpp.inc",
33        ),
34        (
35            ["-gen-dialect-decls"],
36            "include/toy/Dialect.h.inc",
37        ),
38        (
39            ["-gen-dialect-defs"],
40            "include/toy/Dialect.cpp.inc",
41        ),
42    ],
43    tblgen = "//mlir:mlir-tblgen",
44    td_file = "include/toy/Ops.td",
45    deps = [":ToyOpsTdFiles"],
46)
47
48cc_binary(
49    name = "toyc-ch2",
50    srcs = [
51        "mlir/Dialect.cpp",
52        "mlir/MLIRGen.cpp",
53        "parser/AST.cpp",
54        "toyc.cpp",
55    ] + glob(["include/toy/*.h"]),
56    includes = ["include/"],
57    deps = [
58        ":ToyOpsIncGen",
59        "//llvm:Support",
60        "//mlir:Analysis",
61        "//mlir:BytecodeReader",
62        "//mlir:FunctionInterfaces",
63        "//mlir:IR",
64        "//mlir:Parser",
65        "//mlir:SideEffectInterfaces",
66        "//mlir:Support",
67    ],
68)
69