xref: /aosp_15_r20/external/executorch/backends/mediatek/CMakeLists.txt (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1#[[
2/*
3* Copyright (c) 2024 MediaTek Inc.
4*
5* Licensed under the BSD License (the "License"); you may not use this file
6* except in compliance with the License. See the license file in the root
7* directory of this source tree for more details.
8*/
9]]
10
11# Let include directory as "executorch/..."
12set(_common_include_directories ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
13set(NEURON_BUFFER_ALLOCATOR_LIB
14    ""
15    CACHE PATH "Path to Neuron Buffer Allocator library"
16)
17message(
18  STATUS "Looking for neuron_buffer_allocator in ${NEURON_BUFFER_ALLOCATOR_LIB}"
19)
20
21include_directories(BEFORE ${_common_include_directories})
22
23# shortcut include directory for neuron headers
24include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/runtime/include)
25
26# targets
27add_library(neuron_backend SHARED)
28target_compile_options(neuron_backend PRIVATE "-frtti" "-fexceptions")
29target_link_libraries(neuron_backend
30    PRIVATE
31    executorch_core
32    android
33    log
34    ${NEURON_BUFFER_ALLOCATOR_LIB}
35)
36target_sources(
37  neuron_backend
38  INTERFACE ${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBackend.h
39            ${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBufferAllocator.h
40            ${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronExecutor.h
41            ${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronLog.h
42            ${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/APUWareUtilsLib.h
43            ${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/NeuronAdapterShim.h
44  PRIVATE ${CMAKE_CURRENT_LIST_DIR}/runtime/NeuronBackend.cpp
45          ${CMAKE_CURRENT_LIST_DIR}/runtime/NeuronExecutor.cpp
46)
47target_link_options_shared_lib(neuron_backend)
48
49install(TARGETS neuron_backend DESTINATION lib)
50