xref: /aosp_15_r20/external/armnn/samples/SpeechRecognition/CMakeLists.txt (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
2*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*89c4ff92SAndroid Build Coastguard Worker
4*89c4ff92SAndroid Build Coastguard Workercmake_minimum_required(VERSION 3.0.2)
5*89c4ff92SAndroid Build Coastguard Worker
6*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_C_STANDARD                99)
7*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_STANDARD              14)
8*89c4ff92SAndroid Build Coastguard Worker
9*89c4ff92SAndroid Build Coastguard Worker# Make the standard a requirement => prevent fallback to previous
10*89c4ff92SAndroid Build Coastguard Worker# supported standard
11*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_C_STANDARD_REQUIRED       ON)
12*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_STANDARD_REQUIRED     ON)
13*89c4ff92SAndroid Build Coastguard Worker
14*89c4ff92SAndroid Build Coastguard Worker# We want to pass standard C/C++ flags, without gnu extensions
15*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_C_EXTENSIONS              OFF)
16*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_EXTENSIONS            OFF)
17*89c4ff92SAndroid Build Coastguard Worker
18*89c4ff92SAndroid Build Coastguard Workerproject (speech-recognition-example)
19*89c4ff92SAndroid Build Coastguard Worker
20*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_C_FLAGS_DEBUG         "-DDEBUG -O0 -g -fPIC -pthread")
21*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_C_FLAGS_RELEASE       "-DNDEBUG -O3 -fPIC -pthread")
22*89c4ff92SAndroid Build Coastguard Worker
23*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_FLAGS_DEBUG       "-DDEBUG -O0 -g -fPIC -pthread")
24*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_FLAGS_RELEASE     "-DNDEBUG -O3 -fPIC -pthread")
25*89c4ff92SAndroid Build Coastguard Worker
26*89c4ff92SAndroid Build Coastguard Workerinclude(ExternalProject)
27*89c4ff92SAndroid Build Coastguard Worker
28*89c4ff92SAndroid Build Coastguard Worker# Build in release mode by default
29*89c4ff92SAndroid Build Coastguard Workerif (NOT CMAKE_BUILD_TYPE STREQUAL Debug)
30*89c4ff92SAndroid Build Coastguard Worker    set(CMAKE_BUILD_TYPE Release CACHE INTERNAL "")
31*89c4ff92SAndroid Build Coastguard Workerendif()
32*89c4ff92SAndroid Build Coastguard Worker
33*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
34*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
35*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
36*89c4ff92SAndroid Build Coastguard Worker
37*89c4ff92SAndroid Build Coastguard Workerif (NOT DEFINED DEPENDENCIES_DIR)
38*89c4ff92SAndroid Build Coastguard Worker    set(DEPENDENCIES_DIR ${CMAKE_BINARY_DIR}/dependencies)
39*89c4ff92SAndroid Build Coastguard Workerendif()
40*89c4ff92SAndroid Build Coastguard Worker
41*89c4ff92SAndroid Build Coastguard Workerinclude(../common/cmake/find_armnn.cmake)
42*89c4ff92SAndroid Build Coastguard Worker
43*89c4ff92SAndroid Build Coastguard Workerinclude_directories(include)
44*89c4ff92SAndroid Build Coastguard Workerinclude_directories(../common/include/ArmnnUtils)
45*89c4ff92SAndroid Build Coastguard Workerinclude_directories(../common/include/Utils)
46*89c4ff92SAndroid Build Coastguard Workerinclude_directories(../common/include/Audio)
47*89c4ff92SAndroid Build Coastguard Worker
48*89c4ff92SAndroid Build Coastguard Workerfile(GLOB SOURCES "src/*.cpp")
49*89c4ff92SAndroid Build Coastguard Workerfile(GLOB COMMON_UTILS_SOURCES "../common/src/Utils/*.cpp")
50*89c4ff92SAndroid Build Coastguard Workerfile(GLOB COMMON_AUDIO_SOURCES "../common/src/Audio/*.cpp")
51*89c4ff92SAndroid Build Coastguard Workerlist(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/Main.cpp)
52*89c4ff92SAndroid Build Coastguard Workerfile(GLOB TEST_SOURCES "test/*.cpp")
53*89c4ff92SAndroid Build Coastguard Workerfile(GLOB APP_MAIN "src/Main.cpp")
54*89c4ff92SAndroid Build Coastguard Worker
55*89c4ff92SAndroid Build Coastguard Workerif(BUILD_UNIT_TESTS)
56*89c4ff92SAndroid Build Coastguard Worker    include(cmake/unit_tests.cmake)
57*89c4ff92SAndroid Build Coastguard Workerendif()
58*89c4ff92SAndroid Build Coastguard Worker
59*89c4ff92SAndroid Build Coastguard Workerset(APP_TARGET_NAME "${CMAKE_PROJECT_NAME}")
60*89c4ff92SAndroid Build Coastguard Worker
61*89c4ff92SAndroid Build Coastguard Workeradd_executable("${APP_TARGET_NAME}"  ${COMMON_UTILS_SOURCES} ${COMMON_AUDIO_SOURCES} ${SOURCES} ${APP_MAIN})
62*89c4ff92SAndroid Build Coastguard Worker
63*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries("${APP_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} -lsndfile -lsamplerate)
64*89c4ff92SAndroid Build Coastguard Workertarget_include_directories("${APP_TARGET_NAME}" PUBLIC ${ARMNN_INCLUDE_DIR} )
65