1 CMAKE_MINIMUM_REQUIRED(VERSION 3.6)
2 PROJECT(noise-suppression VERSION ${VERSION} LANGUAGES C CXX)
5 INCLUDE_DIRECTORIES(${INC_DIR})
7 set(CMAKE_CXX_STANDARD 17)
8 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
10 if (ENABLE_AUDIO_RESAMPLING)
11 INCLUDE(FindPkgConfig)
12 pkg_check_modules(TIZEN_PKGS REQUIRED
16 FOREACH(flag ${TIZEN_PKGS_CFLAGS})
17 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
21 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${TIZEN_PKGS_CFLAGS}")
23 SET(TIZEN_FEATURE_FLAGS "-DTIZEN_FEATURE_MODIFICATION")
25 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -g -Wall -fPIC ${TIZEN_FEATURE_FLAGS}")
26 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -g -Wall -fPIC ${TIZEN_FEATURE_FLAGS}")
27 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -pie -fPIC")
30 if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
31 MESSAGE("Not using fast math for x86_64 architecture")
33 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFLOAT_APPROX -ffast-math")
34 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFLOAT_APPROX -ffast-math")
37 if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
38 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_NEON_OPTIMIZATION")
39 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NEON_OPTIMIZATION")
40 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
41 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_NEON_OPTIMIZATION")
42 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NEON_OPTIMIZATION")
45 SET(LIB_NAME "${PROJECT_NAME}")
47 MESSAGE(CFLAGS='${CMAKE_C_FLAGS}')
48 MESSAGE(CXXFLAGS='${CMAKE_CXX_FLAGS}')
49 MESSAGE(CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}')
52 src/AudioProcessor.cpp
54 src/NoiseSuppressionApi.cpp
55 src/NoiseSuppression.cpp
60 src/rnn_data_16K_v2.0.c
61 src/rnn_data_48K_v1.0.c
64 if (ENABLE_AUDIO_RESAMPLING)
65 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_AUDIO_RESAMPLING")
66 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_AUDIO_RESAMPLING")
67 SET(SRCS ${SRCS} src/AudioResampler.cpp)
70 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
71 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
72 ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS})
73 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${TIZEN_PKGS_LDFLAGS} ${PKG_LDFLAGS})
75 SET_TARGET_PROPERTIES(${LIB_NAME}
77 VERSION ${PROJECT_VERSION}
78 SOVERSION ${PROJECT_VERSION_MAJOR}
82 INSTALL(TARGETS ${LIB_NAME} DESTINATION ${LIB_INSTALL_DIR})
84 DIRECTORY ${INC_DIR}/ DESTINATION "${CMAKE_INSTALL_PREFIX}/include"
86 PATTERN "${INC_DIR}/noise-suppression.h"
87 PATTERN "${INC_DIR}/noise-suppression-type.h"
90 SET(PC_NAME ${LIB_NAME})
91 SET(PC_REQUIRED ${pc_dependents})
92 SET(PC_LDFLAGS -l${LIB_NAME})
96 ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}.pc
99 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
101 ADD_SUBDIRECTORY(tool)