xref: /aosp_15_r20/external/executorch/kernels/optimized/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 Workerload(":lib_defs.bzl", "define_libs")
4*523fa7a6SAndroid Build Coastguard Worker
5*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets(is_fbcode=False):
6*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
7*523fa7a6SAndroid Build Coastguard Worker
8*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
9*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
10*523fa7a6SAndroid Build Coastguard Worker    """
11*523fa7a6SAndroid Build Coastguard Worker
12*523fa7a6SAndroid Build Coastguard Worker    define_libs(is_fbcode)
13*523fa7a6SAndroid Build Coastguard Worker
14*523fa7a6SAndroid Build Coastguard Worker    runtime.export_file(
15*523fa7a6SAndroid Build Coastguard Worker        name = "optimized.yaml",
16*523fa7a6SAndroid Build Coastguard Worker        visibility = [
17*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
18*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
19*523fa7a6SAndroid Build Coastguard Worker        ],
20*523fa7a6SAndroid Build Coastguard Worker    )
21*523fa7a6SAndroid Build Coastguard Worker
22*523fa7a6SAndroid Build Coastguard Worker    runtime.export_file(
23*523fa7a6SAndroid Build Coastguard Worker        name = "optimized-oss.yaml",
24*523fa7a6SAndroid Build Coastguard Worker        visibility = [
25*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
26*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
27*523fa7a6SAndroid Build Coastguard Worker        ],
28*523fa7a6SAndroid Build Coastguard Worker    )
29*523fa7a6SAndroid Build Coastguard Worker
30*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
31*523fa7a6SAndroid Build Coastguard Worker        name = "optimized_operators",
32*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
33*523fa7a6SAndroid Build Coastguard Worker        visibility = [
34*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
35*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
36*523fa7a6SAndroid Build Coastguard Worker        ],
37*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
38*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/optimized/cpu:cpu_optimized",
39*523fa7a6SAndroid Build Coastguard Worker        ],
40*523fa7a6SAndroid Build Coastguard Worker    )
41*523fa7a6SAndroid Build Coastguard Worker
42*523fa7a6SAndroid Build Coastguard Worker    et_operator_library(
43*523fa7a6SAndroid Build Coastguard Worker        name = "optimized_oplist",
44*523fa7a6SAndroid Build Coastguard Worker        ops_schema_yaml_target = ":optimized.yaml",
45*523fa7a6SAndroid Build Coastguard Worker        visibility = [
46*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
47*523fa7a6SAndroid Build Coastguard Worker        ],
48*523fa7a6SAndroid Build Coastguard Worker    )
49*523fa7a6SAndroid Build Coastguard Worker
50*523fa7a6SAndroid Build Coastguard Worker    # Used mainly for operator testing. In practice, a generated lib specific
51*523fa7a6SAndroid Build Coastguard Worker    # to a project should be created that contains only the required operators
52*523fa7a6SAndroid Build Coastguard Worker    # for a particular model.
53*523fa7a6SAndroid Build Coastguard Worker    executorch_generated_lib(
54*523fa7a6SAndroid Build Coastguard Worker        name = "generated_lib",
55*523fa7a6SAndroid Build Coastguard Worker        deps = [
56*523fa7a6SAndroid Build Coastguard Worker            ":optimized_oplist",
57*523fa7a6SAndroid Build Coastguard Worker            ":optimized_operators",
58*523fa7a6SAndroid Build Coastguard Worker        ],
59*523fa7a6SAndroid Build Coastguard Worker        functions_yaml_target = ":optimized.yaml",
60*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
61*523fa7a6SAndroid Build Coastguard Worker        visibility = [
62*523fa7a6SAndroid Build Coastguard Worker            "//executorch/...",
63*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
64*523fa7a6SAndroid Build Coastguard Worker        ],
65*523fa7a6SAndroid Build Coastguard Worker    )
66