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