125 lines
3.8 KiB
CMake
125 lines
3.8 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
|
|
include(GNUInstallDirs)
|
|
#project(assembler C ASM)
|
|
#############################################
|
|
# opus
|
|
#############################################
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(arm)")
|
|
add_definitions(-DARCH_ARM)
|
|
list(APPEND RESAMPLE_FILES libswresample/arm/audio_convert_init.c)
|
|
list(APPEND RESAMPLE_FILES libswresample/arm/resample_init.c)
|
|
#list(APPEND RESAMPLE_FILES arm/fft_init_arm.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/arm/cpu.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/arm/float_dsp_init_arm.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/arm/float_dsp_init_neon.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/arm/float_dsp_init_vfp.c)
|
|
ENABLE_LANGUAGE(C ASM)
|
|
list(APPEND ARM_FILES libswresample/arm/audio_convert_neon.S)
|
|
#list(APPEND ARM_FILES arm/fft_vfp.S)
|
|
list(APPEND ARM_FILES libswresample/arm/resample.S)
|
|
list(APPEND ARM_FILES libavutil/arm/float_dsp_neon.S)
|
|
list(APPEND ARM_FILES libavutil/arm/float_dsp_vfp.S)
|
|
else()
|
|
add_definitions(-DARCH_AARCH64)
|
|
list(APPEND RESAMPLE_FILES libswresample/aarch64/audio_convert_init.c)
|
|
list(APPEND RESAMPLE_FILES libswresample/aarch64/resample_init.c)
|
|
#list(APPEND RESAMPLE_FILES aarch64/fft_init_aarch64.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/aarch64/cpu.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/aarch64/float_dsp_init.c)
|
|
list(APPEND RESAMPLE_FILES libavutil/aarch64/tx_float_init.c)
|
|
list(APPEND RESAMPLE_FILES libavcodec/aarch64/opusdsp_init.c)
|
|
ENABLE_LANGUAGE(C ASM)
|
|
list(APPEND ARM_FILES libswresample/aarch64/audio_convert_neon.S)
|
|
list(APPEND ARM_FILES libavutil/aarch64/float_dsp_neon.S)
|
|
list(APPEND ARM_FILES libavutil/aarch64/tx_float_neon.S)
|
|
list(APPEND ARM_FILES libavcodec/aarch64/opusdsp_neon.S)
|
|
endif()
|
|
|
|
#set_property(SOURCE arm/audio_convert_neon.S APPEND PROPERTY COMPILE_OPTIONS "-x" "assembler-with-cpp")
|
|
|
|
add_library(opus-ahal SHARED
|
|
dsp.c
|
|
dec.c
|
|
celt.c
|
|
dec_celt.c
|
|
pvq.c
|
|
rc.c
|
|
tab.c
|
|
parse.c
|
|
silk.c
|
|
${RESAMPLE_FILES}
|
|
${ARM_FILES}
|
|
./libavutil/cpu.c
|
|
./libavutil/tx.c
|
|
./libavutil/bprint.c
|
|
./libavutil/intmath.c
|
|
./libavutil/tx_double.c
|
|
./libavutil/tx_float.c
|
|
./libavutil/tx_int32.c
|
|
./libavutil/channel_layout.c
|
|
./libavutil/log2_tab.c
|
|
./libavutil/audio_fifo.c
|
|
./libavutil/float_dsp.c
|
|
./libavutil/opt.c
|
|
./libavutil/mem.c
|
|
./libavutil/fifo.c
|
|
./libavutil/samplefmt.c
|
|
./libavutil/rational.c
|
|
./libavutil/error.c
|
|
./libavutil/avstring.c
|
|
./libavutil/avsscanf.c
|
|
./libavutil/mathematics.c
|
|
./libavutil/eval.c
|
|
./libavutil/reverse.c
|
|
./libavutil/log.c
|
|
./libavutil/time.c
|
|
./libavutil/frame.c
|
|
./libavutil/buffer.c
|
|
./libavutil/dict.c
|
|
./libswresample/swresample.c
|
|
./libswresample/resample.c
|
|
./libswresample/audioconvert.c
|
|
./libswresample/rematrix.c
|
|
./libswresample/resample_dsp.c
|
|
./libswresample/dither.c
|
|
./libswresample/options.c
|
|
./libavcodec/vorbis_data.c
|
|
./libavcodec/mathtables.c
|
|
./libavcodec/get_buffer.c
|
|
./libavcodec/refstruct.c
|
|
)
|
|
if(ANDROID_BUILD)
|
|
add_definitions(-DANDROID_BUILD)
|
|
add_definitions(-DUSE_LOGCAT)
|
|
endif()
|
|
|
|
target_compile_options(opus-ahal PRIVATE -Wl,-no-undefined -Xlinker --unresolved-symbols=ignore-in-shared-libs -g)
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
|
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")
|
|
#add_definitions(-DUSE_DEFAULT_STDLIB -DUSE_HELIX_AAC_DECODER)
|
|
|
|
#set_target_properties(opus-ahal PROPERTIES
|
|
# VERSION ${PROJECT_VERSION}
|
|
# SOVERSION 1)
|
|
target_include_directories(opus-ahal PRIVATE
|
|
${PROJECT_SOURCE_DIR}
|
|
${PROJECT_SOURCE_DIR}/include
|
|
${PROJECT_SOURCE_DIR}/libavcodec
|
|
${PROJECT_SOURCE_DIR}/libavutil
|
|
${PROJECT_SOURCE_DIR}/compat
|
|
${PROJECT_SOURCE_DIR}/compat/float
|
|
${PROJECT_SOURCE_DIR}/arm
|
|
${PROJECT_SOURCE_DIR}/libswresample
|
|
)
|
|
if(ANDROID_BUILD)
|
|
target_link_options(opus-ahal PRIVATE "-Wl,-soname,libopus-ahal.so")
|
|
target_link_libraries(opus-ahal -lm -llog)
|
|
else()
|
|
target_link_libraries(opus-ahal
|
|
-lcutils -lamaudioutils -llog)
|
|
endif()
|
|
|
|
install(TARGETS opus-ahal
|
|
LIBRARY DESTINATION "lib")
|