diff options
| author | Marin Ivanov <[email protected]> | 2025-07-25 10:17:14 +0300 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2026-01-18 20:09:26 +0200 |
| commit | 0168586485e6310c598713c911b1dec5618d61a1 (patch) | |
| tree | 6aabc2a12ef8fef70683f5389bea00f948015f77 /src/CMakeLists.txt | |
* codec2 cut-down version 1.2.0
* Remove codebook and generation of sources
* remove c2dec c2enc binaries
* prepare for emscripten
Diffstat (limited to 'src/CMakeLists.txt')
| -rw-r--r-- | src/CMakeLists.txt | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..16a7a25 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,89 @@ +# +# 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 + $<INSTALL_INTERFACE:include/codec2> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> +) + +# 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'")
\ No newline at end of file |
