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