xref: /aosp_15_r20/external/executorch/extension/llm/tokenizer/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
2*523fa7a6SAndroid Build Coastguard Worker
3*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets():
4*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
5*523fa7a6SAndroid Build Coastguard Worker
6*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
7*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
8*523fa7a6SAndroid Build Coastguard Worker    """
9*523fa7a6SAndroid Build Coastguard Worker    runtime.python_library(
10*523fa7a6SAndroid Build Coastguard Worker        name = "tokenizer_py_lib",
11*523fa7a6SAndroid Build Coastguard Worker        srcs = [
12*523fa7a6SAndroid Build Coastguard Worker            "__init__.py",
13*523fa7a6SAndroid Build Coastguard Worker            "tokenizer.py",
14*523fa7a6SAndroid Build Coastguard Worker            "utils.py",
15*523fa7a6SAndroid Build Coastguard Worker        ],
16*523fa7a6SAndroid Build Coastguard Worker        base_module = "executorch.extension.llm.tokenizer",
17*523fa7a6SAndroid Build Coastguard Worker        visibility = [
18*523fa7a6SAndroid Build Coastguard Worker            "//executorch/examples/...",
19*523fa7a6SAndroid Build Coastguard Worker            "//executorch/extension/llm/tokenizer/...",
20*523fa7a6SAndroid Build Coastguard Worker            "//executorch/extension/llm/export/...",
21*523fa7a6SAndroid Build Coastguard Worker            "//bento/...",
22*523fa7a6SAndroid Build Coastguard Worker            "//bento_kernels/...",
23*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
24*523fa7a6SAndroid Build Coastguard Worker        ],
25*523fa7a6SAndroid Build Coastguard Worker        _is_external_target = True,
26*523fa7a6SAndroid Build Coastguard Worker        deps = [
27*523fa7a6SAndroid Build Coastguard Worker            "//executorch/examples/models/llama/tokenizer:tiktoken_py",
28*523fa7a6SAndroid Build Coastguard Worker        ],
29*523fa7a6SAndroid Build Coastguard Worker        external_deps = [
30*523fa7a6SAndroid Build Coastguard Worker            "sentencepiece-py",
31*523fa7a6SAndroid Build Coastguard Worker        ],
32*523fa7a6SAndroid Build Coastguard Worker    )
33*523fa7a6SAndroid Build Coastguard Worker
34*523fa7a6SAndroid Build Coastguard Worker    runtime.python_binary(
35*523fa7a6SAndroid Build Coastguard Worker        name = "tokenizer_py",
36*523fa7a6SAndroid Build Coastguard Worker        main_module = "executorch.extension.llm.tokenizer.tokenizer",
37*523fa7a6SAndroid Build Coastguard Worker        visibility = [
38*523fa7a6SAndroid Build Coastguard Worker            "//executorch/examples/...",
39*523fa7a6SAndroid Build Coastguard Worker            "fbsource//xplat/executorch/examples/...",
40*523fa7a6SAndroid Build Coastguard Worker        ],
41*523fa7a6SAndroid Build Coastguard Worker        _is_external_target = True,
42*523fa7a6SAndroid Build Coastguard Worker        deps = [
43*523fa7a6SAndroid Build Coastguard Worker            ":tokenizer_py_lib",
44*523fa7a6SAndroid Build Coastguard Worker        ],
45*523fa7a6SAndroid Build Coastguard Worker    )
46*523fa7a6SAndroid Build Coastguard Worker
47*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
48*523fa7a6SAndroid Build Coastguard Worker        name = "tokenizer_header",
49*523fa7a6SAndroid Build Coastguard Worker        exported_headers = [
50*523fa7a6SAndroid Build Coastguard Worker            "tokenizer.h",
51*523fa7a6SAndroid Build Coastguard Worker        ],
52*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
53*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:core",
54*523fa7a6SAndroid Build Coastguard Worker        ],
55*523fa7a6SAndroid Build Coastguard Worker        visibility = [
56*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
57*523fa7a6SAndroid Build Coastguard Worker        ],
58*523fa7a6SAndroid Build Coastguard Worker    )
59*523fa7a6SAndroid Build Coastguard Worker
60*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
61*523fa7a6SAndroid Build Coastguard Worker        name = "bpe_tokenizer",
62*523fa7a6SAndroid Build Coastguard Worker        srcs = [
63*523fa7a6SAndroid Build Coastguard Worker            "bpe_tokenizer.cpp",
64*523fa7a6SAndroid Build Coastguard Worker        ],
65*523fa7a6SAndroid Build Coastguard Worker        exported_headers = [
66*523fa7a6SAndroid Build Coastguard Worker            "bpe_tokenizer.h",
67*523fa7a6SAndroid Build Coastguard Worker        ],
68*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
69*523fa7a6SAndroid Build Coastguard Worker            ":tokenizer_header",
70*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:core",
71*523fa7a6SAndroid Build Coastguard Worker        ],
72*523fa7a6SAndroid Build Coastguard Worker        visibility = [
73*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
74*523fa7a6SAndroid Build Coastguard Worker        ],
75*523fa7a6SAndroid Build Coastguard Worker    )
76*523fa7a6SAndroid Build Coastguard Worker
77*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
78*523fa7a6SAndroid Build Coastguard Worker        name = "tiktoken",
79*523fa7a6SAndroid Build Coastguard Worker        srcs = [
80*523fa7a6SAndroid Build Coastguard Worker            "tiktoken.cpp",
81*523fa7a6SAndroid Build Coastguard Worker        ],
82*523fa7a6SAndroid Build Coastguard Worker        exported_headers = [
83*523fa7a6SAndroid Build Coastguard Worker            "tiktoken.h",
84*523fa7a6SAndroid Build Coastguard Worker            "base64.h",
85*523fa7a6SAndroid Build Coastguard Worker        ],
86*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
87*523fa7a6SAndroid Build Coastguard Worker            ":tokenizer_header",
88*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:core",
89*523fa7a6SAndroid Build Coastguard Worker        ],
90*523fa7a6SAndroid Build Coastguard Worker        visibility = [
91*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
92*523fa7a6SAndroid Build Coastguard Worker        ],
93*523fa7a6SAndroid Build Coastguard Worker        exported_external_deps = [
94*523fa7a6SAndroid Build Coastguard Worker            "re2",
95*523fa7a6SAndroid Build Coastguard Worker        ],
96*523fa7a6SAndroid Build Coastguard Worker    )
97