# # codec2 library sources # set(CODEC2_SRCS lpc.c nlp.c postfilter.c sine.c codec2.c codec2_fft.c codec2_fifo.c kiss_fft.c kiss_fftr.c interp.c lsp.c mbest.c newamp1.c phase.c quantise.c pack.c codebook.c codebookd.c codebookjmv.c codebookge.c codebooknewamp1.c codebooknewamp1_energy.c codebooknewamp2.c codebooknewamp2_energy.c phi0.c lpcnet_freq.c ) set(CODEC2_PUBLIC_HEADERS codec2.h codec2_fifo.h comp.h codec2_math.h ${CODEC2_VERSION_PATH}/version.h ) # # Debug options # #add_definitions(-DDEBUG_ALLOC) # # Setup the codec2 library # # Patch level version bumps should not change API/ABI. set(SOVERSION "${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}") message(STATUS "codec2 version: ${CODEC2_VERSION}") add_library(codec2 ${CODEC2_SRCS}) add_executable(codec2lib ${CODEC2_SRCS}) if(UNIX) target_link_libraries(codec2 PUBLIC m) endif(UNIX) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) set_target_properties(codec2 PROPERTIES SOVERSION ${SOVERSION} PUBLIC_HEADER "${CODEC2_PUBLIC_HEADERS}" ) # Required include directories for export target_include_directories(codec2 INTERFACE $ $ $ ) # Export config for import from full install install(EXPORT codec2-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/codec2 ) # Export config for import from build tree. export(TARGETS codec2 FILE ${CMAKE_BINARY_DIR}/codec2.cmake ) install(TARGETS codec2 EXPORT codec2-config LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/codec2 COMPONENT dev ) set(EMSCRIPTEN_OPTS "-s 'STRICT=1' -s 'ALLOW_MEMORY_GROWTH=1' -s 'WASM=1' -s 'MODULARIZE=1' -s 'EXTRA_EXPORTED_RUNTIME_METHODS=[FS]'") #set_target_properties(codec2lib PROPERTIES LINK_FLAGS "${EMSCRIPTEN_OPTS} --no-entry -s 'EXPORT_NAME=createCodec2'")