xref: /aosp_15_r20/external/executorch/configurations/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker"""Client build configurations.
2*523fa7a6SAndroid Build Coastguard Worker
3*523fa7a6SAndroid Build Coastguard WorkerThis package contains useful build targets for executorch clients, assembling
4*523fa7a6SAndroid Build Coastguard Workercommon collections of deps into self-contained targets.
5*523fa7a6SAndroid Build Coastguard Worker"""
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/backends:backends.bzl", "get_all_cpu_backend_targets")
8*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
9*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/codegen:codegen.bzl", "executorch_generated_lib")
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets():
12*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
13*523fa7a6SAndroid Build Coastguard Worker
14*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
15*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
16*523fa7a6SAndroid Build Coastguard Worker    """
17*523fa7a6SAndroid Build Coastguard Worker
18*523fa7a6SAndroid Build Coastguard Worker    # An extended executor library that includes all CPU backend targets and
19*523fa7a6SAndroid Build Coastguard Worker    # helper deps.
20*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
21*523fa7a6SAndroid Build Coastguard Worker        name = "executor_cpu_optimized",
22*523fa7a6SAndroid Build Coastguard Worker        exported_deps = [
23*523fa7a6SAndroid Build Coastguard Worker            "//executorch/extension/threadpool:threadpool",
24*523fa7a6SAndroid Build Coastguard Worker        ] + get_all_cpu_backend_targets(),
25*523fa7a6SAndroid Build Coastguard Worker        visibility = [
26*523fa7a6SAndroid Build Coastguard Worker            "//executorch/test/...",
27*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
28*523fa7a6SAndroid Build Coastguard Worker        ],
29*523fa7a6SAndroid Build Coastguard Worker    )
30*523fa7a6SAndroid Build Coastguard Worker
31*523fa7a6SAndroid Build Coastguard Worker    # Add a common configuration of cpu optimized operators. This adds a bit of confusion
32*523fa7a6SAndroid Build Coastguard Worker    # with the above executorch_cpu_optimized target. Generally it would make sense
33*523fa7a6SAndroid Build Coastguard Worker    # to just add optimized operators to that target but because executorch_cpu_optimized
34*523fa7a6SAndroid Build Coastguard Worker    # might be used elsewhere, I dont want to include ops in that target and find out
35*523fa7a6SAndroid Build Coastguard Worker    # size implication. Aim to simplify this later.
36*523fa7a6SAndroid Build Coastguard Worker    # File a task, TODO(task), for llama work
37*523fa7a6SAndroid Build Coastguard Worker    executorch_generated_lib(
38*523fa7a6SAndroid Build Coastguard Worker        name = "optimized_native_cpu_ops",
39*523fa7a6SAndroid Build Coastguard Worker        deps = [
40*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/optimized:optimized_operators",
41*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/optimized:optimized_oplist",
42*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:executorch_aten_ops",
43*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:operators",
44*523fa7a6SAndroid Build Coastguard Worker        ],
45*523fa7a6SAndroid Build Coastguard Worker        functions_yaml_target = "//executorch/kernels/optimized:optimized.yaml",
46*523fa7a6SAndroid Build Coastguard Worker        fallback_yaml_target = "//executorch/kernels/portable:functions.yaml",
47*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
48*523fa7a6SAndroid Build Coastguard Worker        visibility = [
49*523fa7a6SAndroid Build Coastguard Worker            "//executorch/examples/...",
50*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
51*523fa7a6SAndroid Build Coastguard Worker        ],
52*523fa7a6SAndroid Build Coastguard Worker    )
53*523fa7a6SAndroid Build Coastguard Worker
54*523fa7a6SAndroid Build Coastguard Worker    # TODO(T183193812): delete this target after optimized-oss.yaml is gone
55*523fa7a6SAndroid Build Coastguard Worker    executorch_generated_lib(
56*523fa7a6SAndroid Build Coastguard Worker        name = "optimized_native_cpu_ops_oss",
57*523fa7a6SAndroid Build Coastguard Worker        deps = [
58*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/optimized:optimized_operators",
59*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/optimized:optimized_oplist",
60*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:executorch_aten_ops",
61*523fa7a6SAndroid Build Coastguard Worker            "//executorch/kernels/portable:operators",
62*523fa7a6SAndroid Build Coastguard Worker        ],
63*523fa7a6SAndroid Build Coastguard Worker        functions_yaml_target = "//executorch/kernels/optimized:optimized-oss.yaml",
64*523fa7a6SAndroid Build Coastguard Worker        fallback_yaml_target = "//executorch/kernels/portable:functions.yaml",
65*523fa7a6SAndroid Build Coastguard Worker        define_static_targets = True,
66*523fa7a6SAndroid Build Coastguard Worker        visibility = [
67*523fa7a6SAndroid Build Coastguard Worker            "//executorch/examples/...",
68*523fa7a6SAndroid Build Coastguard Worker            "@EXECUTORCH_CLIENTS",
69*523fa7a6SAndroid Build Coastguard Worker        ],
70*523fa7a6SAndroid Build Coastguard Worker    )
71