xref: /aosp_15_r20/external/executorch/extension/llm/runner/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
2
3def define_common_targets():
4    runtime.cxx_library(
5        name = "irunner",
6        exported_headers = [
7            "irunner.h",
8        ],
9        visibility = [
10            "@EXECUTORCH_CLIENTS",
11        ],
12    )
13
14    runtime.cxx_library(
15        name = "stats",
16        exported_headers = [
17            "stats.h",
18            "util.h",
19        ],
20        visibility = [
21            "@EXECUTORCH_CLIENTS",
22        ],
23    )
24
25    for aten in (True, False):
26        aten_suffix = "_aten" if aten else ""
27
28        runtime.cxx_library(
29            name = "text_decoder_runner" + aten_suffix,
30            exported_headers = ["text_decoder_runner.h"],
31            srcs = ["text_decoder_runner.cpp"],
32            visibility = [
33                "@EXECUTORCH_CLIENTS",
34            ],
35            exported_deps = [
36                ":stats",
37                "//executorch/extension/llm/sampler:sampler" + aten_suffix,
38                "//executorch/extension/module:module" + aten_suffix,
39                "//executorch/extension/tensor:tensor" + aten_suffix,
40            ],
41        )
42
43        runtime.cxx_library(
44            name = "text_prefiller" + aten_suffix,
45            exported_headers = ["text_prefiller.h"],
46            srcs = ["text_prefiller.cpp"],
47            visibility = [
48                "@EXECUTORCH_CLIENTS",
49            ],
50            exported_deps = [
51                ":text_decoder_runner" + aten_suffix,
52                "//executorch/extension/llm/tokenizer:tokenizer_header",
53                "//executorch/extension/module:module" + aten_suffix,
54                "//executorch/extension/tensor:tensor" + aten_suffix,
55            ],
56        )
57
58        runtime.cxx_library(
59            name = "text_token_generator" + aten_suffix,
60            exported_headers = ["text_token_generator.h"],
61            visibility = [
62                "@EXECUTORCH_CLIENTS",
63            ],
64            exported_deps = [
65                ":text_decoder_runner" + aten_suffix,
66                "//executorch/extension/llm/tokenizer:tokenizer_header",
67                "//executorch/extension/module:module" + aten_suffix,
68                "//executorch/extension/tensor:tensor" + aten_suffix,
69            ],
70        )
71
72        runtime.cxx_library(
73            name = "image_prefiller" + aten_suffix,
74            exported_headers = ["image_prefiller.h", "image.h"],
75            visibility = [
76                "@EXECUTORCH_CLIENTS",
77            ],
78            exported_deps = [
79                "//executorch/extension/module:module" + aten_suffix,
80            ],
81        )
82
83        runtime.cxx_library(
84            name = "runner_lib" + aten_suffix,
85            exported_headers = [
86                "multimodal_runner.h",
87            ],
88            visibility = [
89                "@EXECUTORCH_CLIENTS",
90            ],
91            exported_deps = [
92                ":image_prefiller" + aten_suffix,
93                ":text_decoder_runner" + aten_suffix,
94                ":text_prefiller" + aten_suffix,
95                ":text_token_generator" + aten_suffix,
96            ],
97        )
98