Files
BPI-CM9-Linux/aml-comp/multimedia/libopus/CMakeLists.txt
T
2026-08-24 10:03:24 +08:00

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")