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