blob: 16a7a258208fa6ae60fbfe348f183028735bbc53 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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'")
|