File size: 1,948 Bytes
759d0dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
cmake_minimum_required(VERSION 3.13)
project(openwakeword_axera_cpp LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_BUILD_TYPE Release CACHE STRING "")

set(AXERA_TARGET "AX650" CACHE STRING "AXERA target: AX650 or AX630C")
set_property(CACHE AXERA_TARGET PROPERTY STRINGS AX650 AX630C)
string(TOUPPER "${AXERA_TARGET}" AXERA_TARGET)
if(AXERA_TARGET STREQUAL "AX650")
  set(KWS_EXECUTABLE openwakeword_ax650)
  set(DEFAULT_BSP_MSP_DIR
      "${CMAKE_SOURCE_DIR}/toolchains/ax650n_bsp_sdk/msp/out")
elseif(AXERA_TARGET STREQUAL "AX630C")
  set(KWS_EXECUTABLE openwakeword_ax630c)
  set(DEFAULT_BSP_MSP_DIR
      "${CMAKE_SOURCE_DIR}/toolchains/ax620e_bsp_sdk/msp/out/arm64_glibc")
else()
  message(FATAL_ERROR "AXERA_TARGET must be AX650 or AX630C")
endif()

set(BSP_MSP_DIR "${DEFAULT_BSP_MSP_DIR}" CACHE PATH
    "BSP directory containing include/ and lib/")
if(NOT EXISTS "${BSP_MSP_DIR}/include/ax_engine_api.h")
  message(FATAL_ERROR
          "${AXERA_TARGET} BSP not found: ${BSP_MSP_DIR}. "
          "Set BSP_MSP_DIR to the directory containing include/ and lib/.")
endif()

add_executable(${KWS_EXECUTABLE}
  openwakeword_ax.cpp
  src/engine_wrapper.cpp
)
target_include_directories(${KWS_EXECUTABLE} PRIVATE
  ${CMAKE_SOURCE_DIR}
  ${CMAKE_SOURCE_DIR}/src
  ${BSP_MSP_DIR}/include
)
target_link_directories(${KWS_EXECUTABLE} PRIVATE ${BSP_MSP_DIR}/lib)
target_compile_definitions(${KWS_EXECUTABLE} PRIVATE
  AXERA_TARGET_NAME="${AXERA_TARGET}"
)
target_compile_options(${KWS_EXECUTABLE} PRIVATE
  -O3 -Wall -Wextra -Wpedantic
  -fvisibility=hidden -fdata-sections -ffunction-sections
)
target_link_libraries(${KWS_EXECUTABLE} PRIVATE
  ax_sys ax_engine ax_interpreter pthread dl m
)
target_link_options(${KWS_EXECUTABLE} PRIVATE
  -Wl,--enable-new-dtags -Wl,--allow-shlib-undefined
)
set_target_properties(${KWS_EXECUTABLE} PROPERTIES
  BUILD_WITH_INSTALL_RPATH TRUE
  INSTALL_RPATH "$ORIGIN"
)