CMAKE_MINIMUM_REQUIRED(VERSION 3.6) PROJECT(noise-suppression VERSION ${VERSION} LANGUAGES C CXX) SET(INC_DIR include) INCLUDE_DIRECTORIES(${INC_DIR}) set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if (ENABLE_AUDIO_RESAMPLING) INCLUDE(FindPkgConfig) pkg_check_modules(TIZEN_PKGS REQUIRED speexdsp ) FOREACH(flag ${TIZEN_PKGS_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) endif() SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${TIZEN_PKGS_CFLAGS}") SET(TIZEN_FEATURE_FLAGS "-DTIZEN_FEATURE_MODIFICATION") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -g -Wall -fPIC ${TIZEN_FEATURE_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -g -Wall -fPIC ${TIZEN_FEATURE_FLAGS}") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -pie -fPIC") SET(PKG_LDFLAGS "m") if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") MESSAGE("Not using fast math for x86_64 architecture") else () SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFLOAT_APPROX -ffast-math") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFLOAT_APPROX -ffast-math") endif() if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_NEON_OPTIMIZATION") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NEON_OPTIMIZATION") elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_NEON_OPTIMIZATION") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NEON_OPTIMIZATION") endif() SET(LIB_NAME "${PROJECT_NAME}") MESSAGE(CFLAGS='${CMAKE_C_FLAGS}') MESSAGE(CXXFLAGS='${CMAKE_CXX_FLAGS}') MESSAGE(CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}') SET(SRCS src/AudioProcessor.cpp src/DNNManager.cpp src/NoiseSuppressionApi.cpp src/NoiseSuppression.cpp src/celt_lpc.c src/kiss_fft.c src/pitch.c src/NSLogger.c src/rnn_data_16K_v2.0.c src/rnn_data_48K_v1.0.c ) if (ENABLE_AUDIO_RESAMPLING) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_AUDIO_RESAMPLING") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_AUDIO_RESAMPLING") SET(SRCS ${SRCS} src/AudioResampler.cpp) endif() INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src) ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${TIZEN_PKGS_LDFLAGS} ${PKG_LDFLAGS}) SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} CLEAN_DIRECT_OUTPUT 1 ) INSTALL(TARGETS ${LIB_NAME} DESTINATION ${LIB_INSTALL_DIR}) INSTALL( DIRECTORY ${INC_DIR}/ DESTINATION "${CMAKE_INSTALL_PREFIX}/include" FILES_MATCHING PATTERN "${INC_DIR}/noise-suppression.h" PATTERN "${INC_DIR}/noise-suppression-type.h" ) SET(PC_NAME ${LIB_NAME}) SET(PC_REQUIRED ${pc_dependents}) SET(PC_LDFLAGS -l${LIB_NAME}) CONFIGURE_FILE( ${LIB_NAME}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}.pc @ONLY ) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) ADD_SUBDIRECTORY(tool)