@@ -351,6 +351,9 @@ add_library(executorch_core ${_executorch_core__srcs})
351351# Legacy name alias.
352352add_library (executorch_no_prim_ops ALIAS executorch_core)
353353
354+ # A list of all configured backends.
355+ set (_executorch_backends "" )
356+
354357target_link_libraries (executorch_core PRIVATE program_schema)
355358if (ANDROID)
356359 target_link_libraries (executorch_core PUBLIC log )
@@ -494,6 +497,7 @@ install(FILES tools/cmake/Utils.cmake tools/cmake/executorch-config.cmake
494497
495498if (EXECUTORCH_BUILD_ARM_BAREMETAL)
496499 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/arm)
500+ list (APPEND _executorch_backends executorch_delegate_ethos_u)
497501endif ()
498502
499503if (EXECUTORCH_BUILD_CADENCE)
@@ -502,30 +506,37 @@ endif()
502506
503507if (EXECUTORCH_BUILD_NXP_NEUTRON)
504508 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/nxp)
509+ list (APPEND _executorch_backends executorch_delegate_neutron)
505510endif ()
506511
507512if (EXECUTORCH_BUILD_COREML)
508513 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/apple /coreml)
514+ list (APPEND _executorch_backends coremldelegate)
509515endif ()
510516
511517if (EXECUTORCH_BUILD_MPS)
512518 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/apple /mps)
519+ list (APPEND _executorch_backends mpsdelegate)
513520endif ()
514521
515522if (EXECUTORCH_BUILD_NEURON)
516523 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/mediatek)
524+ list (APPEND _executorch_backends neuron_backend)
517525endif ()
518526
519527if (EXECUTORCH_BUILD_OPENVINO)
520528 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/openvino)
529+ list (APPEND _executorch_backends openvino_backend)
521530endif ()
522531
523532if (EXECUTORCH_BUILD_QNN)
524533 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/qualcomm)
534+ list (APPEND _executorch_backends qnn_executorch_backend)
525535endif ()
526536
527537if (EXECUTORCH_BUILD_XNNPACK)
528538 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/xnnpack)
539+ list (APPEND _executorch_backends xnnpack_backend)
529540endif ()
530541
531542if (EXECUTORCH_BUILD_CORTEX_M)
@@ -689,6 +700,17 @@ if(EXECUTORCH_BUILD_KERNELS_QUANTIZED)
689700 target_link_options_shared_lib(quantized_ops_lib)
690701endif ()
691702
703+ if (EXECUTORCH_BUILD_VULKAN)
704+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /backends/vulkan)
705+ list (APPEND _executorch_backends vulkan_backend)
706+ endif ()
707+
708+ # Top-level interface targets.
709+ add_library (executorch_backends INTERFACE )
710+
711+ # A target containing all configured backends.
712+ target_link_libraries (executorch_backends INTERFACE ${_executorch_backends} )
713+
692714if (EXECUTORCH_BUILD_EXECUTOR_RUNNER)
693715 # Baseline libraries that executor_runner will link against.
694716 set (_executor_runner_libs executorch gflags)
@@ -726,19 +748,6 @@ if(EXECUTORCH_BUILD_EXECUTOR_RUNNER)
726748 if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
727749 target_link_options_gc_sections(executor_runner)
728750 endif ()
729- target_link_libraries (executor_runner ${_executor_runner_libs} )
730- target_compile_options (executor_runner PUBLIC ${_common_compile_options} )
731-
732- # Automatically set when using `emcmake cmake` for Wasm build.
733- if (EMSCRIPTEN)
734- # Directory of model pte files to embed in the wasm binary.
735- if (NOT DEFINED WASM_MODEL_DIR)
736- set (WASM_MODEL_DIR "${CMAKE_SOURCE_DIR} /models/" )
737- endif ()
738-
739- set (CMAKE_EXECUTABLE_SUFFIX ".html" )
740- target_link_options (executor_runner PUBLIC -sALLOW_MEMORY_GROWTH --embed-file "${WASM_MODEL_DIR} @/" )
741- endif ()
742751endif ()
743752
744753if (EXECUTORCH_BUILD_VULKAN)
@@ -749,6 +758,10 @@ if(EXECUTORCH_BUILD_ANDROID_JNI)
749758 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /extension/android)
750759endif ()
751760
761+ if (EXECUTORCH_BUILD_ANDROID_JNI)
762+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /extension/android)
763+ endif ()
764+
752765include (Test .cmake)
753766
754767# Print all the configs that were called with announce_configured_options.
0 commit comments