xref: /aosp_15_r20/external/executorch/configurations/CMakeLists.txt (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
3*523fa7a6SAndroid Build Coastguard Worker#
4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Workercmake_minimum_required(VERSION 3.19)
8*523fa7a6SAndroid Build Coastguard Worker
9*523fa7a6SAndroid Build Coastguard Workerset(CMAKE_EXPORT_COMPILE_COMMANDS ON)
10*523fa7a6SAndroid Build Coastguard Workerif(NOT CMAKE_CXX_STANDARD)
11*523fa7a6SAndroid Build Coastguard Worker  set(CMAKE_CXX_STANDARD 17)
12*523fa7a6SAndroid Build Coastguard Workerendif()
13*523fa7a6SAndroid Build Coastguard Worker
14*523fa7a6SAndroid Build Coastguard Worker# Source root directory for executorch.
15*523fa7a6SAndroid Build Coastguard Workerif(NOT EXECUTORCH_ROOT)
16*523fa7a6SAndroid Build Coastguard Worker  set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/..)
17*523fa7a6SAndroid Build Coastguard Workerendif()
18*523fa7a6SAndroid Build Coastguard Worker
19*523fa7a6SAndroid Build Coastguard Workerinclude(${EXECUTORCH_ROOT}/build/Utils.cmake)
20*523fa7a6SAndroid Build Coastguard Worker
21*523fa7a6SAndroid Build Coastguard Workerif(NOT PYTHON_EXECUTABLE)
22*523fa7a6SAndroid Build Coastguard Worker  resolve_python_executable()
23*523fa7a6SAndroid Build Coastguard Workerendif()
24*523fa7a6SAndroid Build Coastguard Worker
25*523fa7a6SAndroid Build Coastguard Workerset(_common_compile_options -Wno-deprecated-declarations)
26*523fa7a6SAndroid Build Coastguard Worker
27*523fa7a6SAndroid Build Coastguard Workerinclude(${EXECUTORCH_ROOT}/build/Utils.cmake)
28*523fa7a6SAndroid Build Coastguard Workerinclude(${EXECUTORCH_ROOT}/build/Codegen.cmake)
29*523fa7a6SAndroid Build Coastguard Worker
30*523fa7a6SAndroid Build Coastguard Workerif(EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
31*523fa7a6SAndroid Build Coastguard Worker  # Merge optimized and portable definitions, taking optimized where available.
32*523fa7a6SAndroid Build Coastguard Worker  merge_yaml(
33*523fa7a6SAndroid Build Coastguard Worker    FUNCTIONS_YAML ${EXECUTORCH_ROOT}/kernels/optimized/optimized-oss.yaml
34*523fa7a6SAndroid Build Coastguard Worker    FALLBACK_YAML ${EXECUTORCH_ROOT}/kernels/portable/functions.yaml OUTPUT_DIR
35*523fa7a6SAndroid Build Coastguard Worker    ${CMAKE_CURRENT_BINARY_DIR}
36*523fa7a6SAndroid Build Coastguard Worker  )
37*523fa7a6SAndroid Build Coastguard Worker
38*523fa7a6SAndroid Build Coastguard Worker  gen_selected_ops(
39*523fa7a6SAndroid Build Coastguard Worker    LIB_NAME "optimized_native_cpu_ops_lib" OPS_SCHEMA_YAML
40*523fa7a6SAndroid Build Coastguard Worker    "${CMAKE_CURRENT_BINARY_DIR}/merged.yaml"
41*523fa7a6SAndroid Build Coastguard Worker  )
42*523fa7a6SAndroid Build Coastguard Worker
43*523fa7a6SAndroid Build Coastguard Worker  generate_bindings_for_kernels(
44*523fa7a6SAndroid Build Coastguard Worker    LIB_NAME "optimized_native_cpu_ops_lib" FUNCTIONS_YAML
45*523fa7a6SAndroid Build Coastguard Worker    ${CMAKE_CURRENT_BINARY_DIR}/merged.yaml
46*523fa7a6SAndroid Build Coastguard Worker  )
47*523fa7a6SAndroid Build Coastguard Worker  message("Generated files ${gen_command_sources}")
48*523fa7a6SAndroid Build Coastguard Worker
49*523fa7a6SAndroid Build Coastguard Worker  # optimized_native_cpu_ops_lib: Register optimized op kernels into the runtime
50*523fa7a6SAndroid Build Coastguard Worker  gen_operators_lib(
51*523fa7a6SAndroid Build Coastguard Worker    LIB_NAME
52*523fa7a6SAndroid Build Coastguard Worker    "optimized_native_cpu_ops_lib"
53*523fa7a6SAndroid Build Coastguard Worker    KERNEL_LIBS
54*523fa7a6SAndroid Build Coastguard Worker    portable_kernels
55*523fa7a6SAndroid Build Coastguard Worker    optimized_kernels
56*523fa7a6SAndroid Build Coastguard Worker    DEPS
57*523fa7a6SAndroid Build Coastguard Worker    executorch
58*523fa7a6SAndroid Build Coastguard Worker  )
59*523fa7a6SAndroid Build Coastguard Worker
60*523fa7a6SAndroid Build Coastguard Worker  install(TARGETS optimized_native_cpu_ops_lib DESTINATION lib)
61*523fa7a6SAndroid Build Coastguard Workerendif()
62