xref: /aosp_15_r20/external/executorch/kernels/portable/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
2*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/codegen:codegen.bzl", "et_operator_library", "executorch_generated_lib")
3*523fa7a6SAndroid Build Coastguard Worker
4*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets():
5*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
8*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
9*523fa7a6SAndroid Build Coastguard Worker    """
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
12*523fa7a6SAndroid Build Coastguard Worker        name = "operators",
13*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
14*523fa7a6SAndroid Build Coastguard Worker        visibility = [
15*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
16*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
17*523fa7a6SAndroid Build Coastguard Worker        ],
18*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
19*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable/cpu:cpu",
20*523fa7a6SAndroid Build Coastguard Worker        ],
21*523fa7a6SAndroid Build Coastguard Worker    )
22*523fa7a6SAndroid Build Coastguard Worker
23*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
24*523fa7a6SAndroid Build Coastguard Worker        name = "operators_aten",
25*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
26*523fa7a6SAndroid Build Coastguard Worker        visibility = [
27*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
28*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
29*523fa7a6SAndroid Build Coastguard Worker        ],
30*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
31*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable/cpu:cpu_aten",
32*523fa7a6SAndroid Build Coastguard Worker        ],
33*523fa7a6SAndroid Build Coastguard Worker    )
34*523fa7a6SAndroid Build Coastguard Worker
35*523fa7a6SAndroid Build Coastguard Worker    runtime.export_file(
36*523fa7a6SAndroid Build Coastguard Worker        name = "functions.yaml",
37*523fa7a6SAndroid Build Coastguard Worker        visibility = [
38*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
39*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
40*523fa7a6SAndroid Build Coastguard Worker        ],
41*523fa7a6SAndroid Build Coastguard Worker    )
42*523fa7a6SAndroid Build Coastguard Worker
43*523fa7a6SAndroid Build Coastguard Worker    runtime.export_file(
44*523fa7a6SAndroid Build Coastguard Worker        name = "custom_ops.yaml",
45*523fa7a6SAndroid Build Coastguard Worker        visibility = [
46*523fa7a6SAndroid Build Coastguard Worker            "//executorch/codegen/...",
47*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
48*523fa7a6SAndroid Build Coastguard Worker        ],
49*523fa7a6SAndroid Build Coastguard Worker    )
50*523fa7a6SAndroid Build Coastguard Worker
51*523fa7a6SAndroid Build Coastguard Worker    et_operator_library(
52*523fa7a6SAndroid Build Coastguard Worker        name = "executorch_all_ops",
53*523fa7a6SAndroid Build Coastguard Worker        include_all_operators = True,
54*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
55*523fa7a6SAndroid Build Coastguard Worker        visibility = [
56*523fa7a6SAndroid Build Coastguard Worker            "//executorch/codegen/...",
57*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
58*523fa7a6SAndroid Build Coastguard Worker        ],
59*523fa7a6SAndroid Build Coastguard Worker    )
60*523fa7a6SAndroid Build Coastguard Worker
61*523fa7a6SAndroid Build Coastguard Worker    et_operator_library(
62*523fa7a6SAndroid Build Coastguard Worker        name = "executorch_aten_ops",
63*523fa7a6SAndroid Build Coastguard Worker        ops_schema_yaml_target = "//executorch/kernels/portable:functions.yaml",
64*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
65*523fa7a6SAndroid Build Coastguard Worker        visibility = [
66*523fa7a6SAndroid Build Coastguard Worker            "//executorch/codegen/...",
67*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
68*523fa7a6SAndroid Build Coastguard Worker        ],
69*523fa7a6SAndroid Build Coastguard Worker    )
70*523fa7a6SAndroid Build Coastguard Worker
71*523fa7a6SAndroid Build Coastguard Worker    et_operator_library(
72*523fa7a6SAndroid Build Coastguard Worker        name = "executorch_custom_ops",
73*523fa7a6SAndroid Build Coastguard Worker        ops_schema_yaml_target = "//executorch/kernels/portable:custom_ops.yaml",
74*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
75*523fa7a6SAndroid Build Coastguard Worker        visibility = [
76*523fa7a6SAndroid Build Coastguard Worker            "//executorch/codegen/...",
77*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
78*523fa7a6SAndroid Build Coastguard Worker        ],
79*523fa7a6SAndroid Build Coastguard Worker    )
80*523fa7a6SAndroid Build Coastguard Worker
81*523fa7a6SAndroid Build Coastguard Worker    generated_lib_common_args = {
82*523fa7a6SAndroid Build Coastguard Worker        "custom_ops_aten_kernel_deps": [
83*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:operators_aten",
84*523fa7a6SAndroid Build Coastguard Worker        ],
85*523fa7a6SAndroid Build Coastguard Worker        "custom_ops_yaml_target": "//executorch/kernels/portable:custom_ops.yaml",
86*523fa7a6SAndroid Build Coastguard Worker        # size_test expects _static targets to be available for these libraries.
87*523fa7a6SAndroid Build Coastguard Worker        "define_static_targets": True,
88*523fa7a6SAndroid Build Coastguard Worker        "functions_yaml_target": "//executorch/kernels/portable:functions.yaml",
89*523fa7a6SAndroid Build Coastguard Worker        "visibility": [
90*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
91*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
92*523fa7a6SAndroid Build Coastguard Worker        ],
93*523fa7a6SAndroid Build Coastguard Worker    }
94*523fa7a6SAndroid Build Coastguard Worker
95*523fa7a6SAndroid Build Coastguard Worker    executorch_generated_lib(
96*523fa7a6SAndroid Build Coastguard Worker        name = "generated_lib",
97*523fa7a6SAndroid Build Coastguard Worker        deps = [
98*523fa7a6SAndroid Build Coastguard Worker            ":executorch_aten_ops",
99*523fa7a6SAndroid Build Coastguard Worker            ":executorch_custom_ops",
100*523fa7a6SAndroid Build Coastguard Worker        ],
101*523fa7a6SAndroid Build Coastguard Worker        kernel_deps = ["//executorch/kernels/portable:operators"],
102*523fa7a6SAndroid Build Coastguard Worker        **generated_lib_common_args
103*523fa7a6SAndroid Build Coastguard Worker    )
104*523fa7a6SAndroid Build Coastguard Worker
105*523fa7a6SAndroid Build Coastguard Worker    executorch_generated_lib(
106*523fa7a6SAndroid Build Coastguard Worker        name = "generated_lib_aten",
107*523fa7a6SAndroid Build Coastguard Worker        deps = [
108*523fa7a6SAndroid Build Coastguard Worker            ":executorch_aten_ops",
109*523fa7a6SAndroid Build Coastguard Worker            ":executorch_custom_ops",
110*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:operators_aten",
111*523fa7a6SAndroid Build Coastguard Worker        ],
112*523fa7a6SAndroid Build Coastguard Worker        custom_ops_aten_kernel_deps = [
113*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:operators_aten",
114*523fa7a6SAndroid Build Coastguard Worker        ],
115*523fa7a6SAndroid Build Coastguard Worker        custom_ops_yaml_target = "//executorch/kernels/portable:custom_ops.yaml",
116*523fa7a6SAndroid Build Coastguard Worker        aten_mode = True,
117*523fa7a6SAndroid Build Coastguard Worker        visibility = [
118*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
119*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
120*523fa7a6SAndroid Build Coastguard Worker        ],
121*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
122*523fa7a6SAndroid Build Coastguard Worker    )
123