xref: /aosp_15_r20/external/executorch/kernels/prim_ops/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
10*523fa7a6SAndroid Build Coastguard Worker    for aten_mode in (True, False):
11*523fa7a6SAndroid Build Coastguard Worker        aten_suffix = ("_aten" if aten_mode else "")
12*523fa7a6SAndroid Build Coastguard Worker
13*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
14*523fa7a6SAndroid Build Coastguard Worker            name = "et_copy_index" + aten_suffix,
15*523fa7a6SAndroid Build Coastguard Worker            srcs = ["et_copy_index.cpp"],
16*523fa7a6SAndroid Build Coastguard Worker            visibility = [],  # Private
17*523fa7a6SAndroid Build Coastguard Worker            exported_headers = ["et_copy_index.h"],
18*523fa7a6SAndroid Build Coastguard Worker            deps = [
19*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:kernel_includes" + aten_suffix,
20*523fa7a6SAndroid Build Coastguard Worker            ],
21*523fa7a6SAndroid Build Coastguard Worker            exported_deps = [
22*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:evalue" + aten_suffix,
23*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:kernel_runtime_context" + aten_suffix,
24*523fa7a6SAndroid Build Coastguard Worker            ],
25*523fa7a6SAndroid Build Coastguard Worker        )
26*523fa7a6SAndroid Build Coastguard Worker
27*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
28*523fa7a6SAndroid Build Coastguard Worker            name = "et_view" + aten_suffix,
29*523fa7a6SAndroid Build Coastguard Worker            srcs = ["et_view.cpp"],
30*523fa7a6SAndroid Build Coastguard Worker            visibility = [],  # Private
31*523fa7a6SAndroid Build Coastguard Worker            exported_headers = ["et_view.h"],
32*523fa7a6SAndroid Build Coastguard Worker            deps = [
33*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:kernel_includes" + aten_suffix,
34*523fa7a6SAndroid Build Coastguard Worker            ],
35*523fa7a6SAndroid Build Coastguard Worker            exported_deps = [
36*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:evalue" + aten_suffix,
37*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:kernel_runtime_context" + aten_suffix,
38*523fa7a6SAndroid Build Coastguard Worker            ],
39*523fa7a6SAndroid Build Coastguard Worker        )
40*523fa7a6SAndroid Build Coastguard Worker
41*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
42*523fa7a6SAndroid Build Coastguard Worker            name = "prim_ops_registry" + aten_suffix,
43*523fa7a6SAndroid Build Coastguard Worker            srcs = ["register_prim_ops.cpp"],
44*523fa7a6SAndroid Build Coastguard Worker            visibility = [
45*523fa7a6SAndroid Build Coastguard Worker                "//executorch/...",
46*523fa7a6SAndroid Build Coastguard Worker                "@EXECUTORCH_CLIENTS",
47*523fa7a6SAndroid Build Coastguard Worker            ],
48*523fa7a6SAndroid Build Coastguard Worker            # @lint-ignore BUCKLINT link_whole, need this to register prim ops.
49*523fa7a6SAndroid Build Coastguard Worker            link_whole = True,
50*523fa7a6SAndroid Build Coastguard Worker            # prim ops are registered through a global table so the ctor needs to be allowed
51*523fa7a6SAndroid Build Coastguard Worker            compiler_flags = select({
52*523fa7a6SAndroid Build Coastguard Worker                "DEFAULT": ["-Wno-global-constructors"],
53*523fa7a6SAndroid Build Coastguard Worker                "ovr_config//os:windows": [],
54*523fa7a6SAndroid Build Coastguard Worker            }),
55*523fa7a6SAndroid Build Coastguard Worker            deps = [
56*523fa7a6SAndroid Build Coastguard Worker                ":et_copy_index" + aten_suffix,
57*523fa7a6SAndroid Build Coastguard Worker                ":et_view" + aten_suffix,
58*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:evalue" + aten_suffix,
59*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:operator_registry",
60*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/kernel:kernel_includes" + aten_suffix,
61*523fa7a6SAndroid Build Coastguard Worker            ],
62*523fa7a6SAndroid Build Coastguard Worker        )
63