xref: /aosp_15_r20/external/executorch/runtime/kernel/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 _operator_registry_preprocessor_flags():
4*523fa7a6SAndroid Build Coastguard Worker    max_kernel_num = native.read_config("executorch", "max_kernel_num", None)
5*523fa7a6SAndroid Build Coastguard Worker    if max_kernel_num != None:
6*523fa7a6SAndroid Build Coastguard Worker        return ["-DMAX_KERNEL_NUM=" + max_kernel_num]
7*523fa7a6SAndroid Build Coastguard Worker    elif not runtime.is_oss:
8*523fa7a6SAndroid Build Coastguard Worker        return select({
9*523fa7a6SAndroid Build Coastguard Worker            "DEFAULT": [],
10*523fa7a6SAndroid Build Coastguard Worker            "fbsource//xplat/executorch/build/constraints:executorch-max-kernel-num-256": ["-DMAX_KERNEL_NUM=256"],
11*523fa7a6SAndroid Build Coastguard Worker            "fbsource//xplat/executorch/build/constraints:executorch-max-kernel-num-64": ["-DMAX_KERNEL_NUM=64"],
12*523fa7a6SAndroid Build Coastguard Worker        })
13*523fa7a6SAndroid Build Coastguard Worker    else:
14*523fa7a6SAndroid Build Coastguard Worker        return []
15*523fa7a6SAndroid Build Coastguard Worker
16*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets():
17*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
18*523fa7a6SAndroid Build Coastguard Worker
19*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
20*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
21*523fa7a6SAndroid Build Coastguard Worker    """
22*523fa7a6SAndroid Build Coastguard Worker
23*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
24*523fa7a6SAndroid Build Coastguard Worker        name = "operator_registry",
25*523fa7a6SAndroid Build Coastguard Worker        srcs = ["operator_registry.cpp"],
26*523fa7a6SAndroid Build Coastguard Worker        exported_headers = ["operator_registry.h"],
27*523fa7a6SAndroid Build Coastguard Worker        visibility = [
28*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
29*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
30*523fa7a6SAndroid Build Coastguard Worker        ],
31*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
32*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:core",
33*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:evalue",
34*523fa7a6SAndroid Build Coastguard Worker        ],
35*523fa7a6SAndroid Build Coastguard Worker        preprocessor_flags = _operator_registry_preprocessor_flags(),
36*523fa7a6SAndroid Build Coastguard Worker    )
37*523fa7a6SAndroid Build Coastguard Worker
38*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
39*523fa7a6SAndroid Build Coastguard Worker        name = "operator_registry_MAX_NUM_KERNELS_TEST_ONLY",
40*523fa7a6SAndroid Build Coastguard Worker        srcs = ["operator_registry.cpp"],
41*523fa7a6SAndroid Build Coastguard Worker        exported_headers = ["operator_registry.h"],
42*523fa7a6SAndroid Build Coastguard Worker        visibility = [
43*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
44*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
45*523fa7a6SAndroid Build Coastguard Worker        ],
46*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
47*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:core",
48*523fa7a6SAndroid Build Coastguard Worker            "//executorch/runtime/core:evalue",
49*523fa7a6SAndroid Build Coastguard Worker        ],
50*523fa7a6SAndroid Build Coastguard Worker        preprocessor_flags = ["-DMAX_KERNEL_NUM=1"],
51*523fa7a6SAndroid Build Coastguard Worker    )
52*523fa7a6SAndroid Build Coastguard Worker
53*523fa7a6SAndroid Build Coastguard Worker    for aten_mode in (True, False):
54*523fa7a6SAndroid Build Coastguard Worker        aten_suffix = "_aten" if aten_mode else ""
55*523fa7a6SAndroid Build Coastguard Worker
56*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
57*523fa7a6SAndroid Build Coastguard Worker            name = "kernel_runtime_context" + aten_suffix,
58*523fa7a6SAndroid Build Coastguard Worker            exported_headers = [
59*523fa7a6SAndroid Build Coastguard Worker                "kernel_runtime_context.h",
60*523fa7a6SAndroid Build Coastguard Worker            ],
61*523fa7a6SAndroid Build Coastguard Worker            visibility = [
62*523fa7a6SAndroid Build Coastguard Worker                "//executorch/kernels/...",
63*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/executor/...",
64*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel/...",
65*523fa7a6SAndroid Build Coastguard Worker                "@EXECUTORCH_CLIENTS",
66*523fa7a6SAndroid Build Coastguard Worker            ],
67*523fa7a6SAndroid Build Coastguard Worker            exported_deps = [
68*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:core",
69*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/platform:platform",
70*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:memory_allocator",
71*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:event_tracer" + aten_suffix,
72*523fa7a6SAndroid Build Coastguard Worker                # TODO(T147221312): This will eventually depend on exec_aten
73*523fa7a6SAndroid Build Coastguard Worker                # once KernelRuntimeContext support tensor resizing, which is
74*523fa7a6SAndroid Build Coastguard Worker                # why this target supports aten mode.
75*523fa7a6SAndroid Build Coastguard Worker            ],
76*523fa7a6SAndroid Build Coastguard Worker        )
77*523fa7a6SAndroid Build Coastguard Worker
78*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
79*523fa7a6SAndroid Build Coastguard Worker            name = "kernel_includes" + aten_suffix,
80*523fa7a6SAndroid Build Coastguard Worker            exported_headers = [
81*523fa7a6SAndroid Build Coastguard Worker                "kernel_includes.h",
82*523fa7a6SAndroid Build Coastguard Worker            ],
83*523fa7a6SAndroid Build Coastguard Worker            visibility = [
84*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel/...",
85*523fa7a6SAndroid Build Coastguard Worker                "//executorch/kernels/...",
86*523fa7a6SAndroid Build Coastguard Worker                "//executorch/kernels/prim_ops/...",  # Prim kernels
87*523fa7a6SAndroid Build Coastguard Worker                "@EXECUTORCH_CLIENTS",
88*523fa7a6SAndroid Build Coastguard Worker            ],
89*523fa7a6SAndroid Build Coastguard Worker            exported_deps = [
90*523fa7a6SAndroid Build Coastguard Worker                ":kernel_runtime_context" + aten_suffix,
91*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core/exec_aten:lib" + aten_suffix,
92*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core/exec_aten/util:scalar_type_util" + aten_suffix,
93*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core/exec_aten/util:tensor_util" + aten_suffix,
94*523fa7a6SAndroid Build Coastguard Worker            ],
95*523fa7a6SAndroid Build Coastguard Worker        )
96