webrtc-audio-processing
webrtc-audio-processing copied to clipboard
Add CMakeLists.txt for this project c packge
cmake_minimum_required(VERSION 2.8)
project("webrtc-audio-processing" C CXX)
add_definitions(-D__STDC_FORMAT_MACROS)
set(CMAKE_BUILD_TYPE "DEBUG")#"RELEASE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")#-O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")#-O2")
set(HOME_BASE "./")
add_definitions(-DWEBRTC_LINUX -DWEBRTC_POSIX -DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD)
set(HAVE_NEON True)
set(HAVE_MIPS True)
# set(HAVE_X86 True)
set(NS_FIXED True)
set(WIN True)
# set(HAVE_ARM True)
# set(HAVE_ARMV7 True)
# set(HAVE_NEON True)
# # 头文件目录
include_directories(${HOME_BASE}/webrtc-audio-processing-sys/webrtc-audio-processing)
include_directories(${HOME_BASE}/webrtc-audio-processing-sys/webrtc-audio-processing)
include_directories(${HOME_BASE}/webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/include)
# 发现目录下的源文件
aux_source_directory(./webrtc-audio-processing-sys/src DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/base DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/resampler DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/vad DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_coding/codecs/isac/main/source DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aecm DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/agc DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/agc/legacy DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/beamformer DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/intelligibility DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/logging DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/transient DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/utility DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/vad DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing DIR_SRCS)
aux_source_directory(./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source DIR_SRCS)
include(utils.cmake)
# 排除不参与编译的文件
if(HAVE_NEON)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/fir_filter_neon.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/resampler/sinc_resampler_neon.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/cross_correlation_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/downsample_fast_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/min_max_operations_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/fir_filter_neon.h")
endif()
if(HAVE_MIPS)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/complex_fft_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/cross_correlation_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/downsample_fast_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/filter_ar_fast_q12_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/min_max_operations_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/resample_by_2_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/spl_sqrt_floor_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/common_audio/signal_processing/vector_scaling_operations_mips.c")
endif()
if (NS_FIXED)
add_definitions(-DWEBRTC_NS_FIXED=1)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/noise_suppression_x.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/noise_suppression_x.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_defines.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core_c.c")
if (!HAVE_NEON)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core_neon.c")
endif()
else()
add_definitions(-DWEBRTC_NS_FLOAT=1)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/noise_suppression.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/noise_suppression.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/defines.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/ns_core.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/ns_core.h")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/windows_private.h")
endif()
if (HAVE_X86)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_core_sse2.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_rdft_sse2.c")
set(OS_FLAGS -msse2)
endif()
if (HAVE_NEON)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_core_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_rdft_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aecm/aecm_core_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core_neon.c")
endif()
if(HAVE_MIPS)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_core_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_rdft_neon.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aecm/aecm_core_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/ns/nsx_core_mips.c")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_rdft_mips.c")
# webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/modules/audio_processing/aec/aec_rdft_mips.c
endif()
if(WIN)
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/condition_variable_native_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/critical_section_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/condition_variable_event_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/event_timer_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/rw_lock_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/thread_win.cc")
list(REMOVE_ITEM DIR_SRCS "./webrtc-audio-processing-sys/webrtc-audio-processing/webrtc/system_wrappers/source/trace_win.cc")
endif()
add_library(libWebrtcapms STATIC ${DIR_SRCS})
Hi @xiangxud, could be please provide more context/rationale for this issue?
thx your project! it's for my porting usecase, i'm use for my embed webrtc app using cmake building system
Thank you @xiangxud. Does your project use Rust? Otherwise, I think you want to use the upstream https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing instead. They use meson build system. If you are okay to use an older version of webrtc, there was a point where they were using autoconf
, which might be even easier to integrate.