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