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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
|
#
# Generated sources
#
set(D ${CMAKE_CURRENT_SOURCE_DIR}/../src/codebook)
# lsp quantisers
set(CODEBOOKS
${D}/lsp1.txt
${D}/lsp2.txt
${D}/lsp3.txt
${D}/lsp4.txt
${D}/lsp5.txt
${D}/lsp6.txt
${D}/lsp7.txt
${D}/lsp8.txt
${D}/lsp9.txt
${D}/lsp10.txt
)
# lspd quantisers
set(CODEBOOKSD
${D}/dlsp1.txt
${D}/dlsp2.txt
${D}/dlsp3.txt
${D}/dlsp4.txt
${D}/dlsp5.txt
${D}/dlsp6.txt
${D}/dlsp7.txt
${D}/dlsp8.txt
${D}/dlsp9.txt
${D}/dlsp10.txt
)
set(CODEBOOKSJVM
${D}/lspjvm1.txt
${D}/lspjvm2.txt
${D}/lspjvm3.txt
)
set(CODEBOOKSMEL
${D}/mel1.txt
${D}/mel2.txt
${D}/mel3.txt
${D}/mel4.txt
${D}/mel5.txt
${D}/mel6.txt
)
set(CODEBOOKSLSPMELVQ
${D}/lspmelvq1.txt
${D}/lspmelvq2.txt
${D}/lspmelvq3.txt
)
set(CODEBOOKSGE ${D}/gecb.txt)
set(CODEBOOKSNEWAMP1
${D}/train_120_1.txt
${D}/train_120_2.txt
)
set(CODEBOOKSNEWAMP1_ENERGY
${D}/newamp1_energy_q.txt
)
set(CODEBOOKSNEWAMP2
${D}/codes_450.txt
)
set(CODEBOOKSNEWAMP2_ENERGY
${D}/newamp2_energy_q.txt
)
# when crosscompiling we need a native executable
if(CMAKE_CROSSCOMPILING)
include(ExternalProject)
set(SOURCE_DIR ${CMAKE_SOURCE_DIR}/..)
ExternalProject_Add(codec2_native
SOURCE_DIR ${SOURCE_DIR}
BINARY_DIR ${CMAKE_BINARY_DIR}/src/codec2_native
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${SOURCE_DIR}
BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/src/codec2_native --target generate_codebook
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy src/generate_codebook ${CMAKE_CURRENT_BINARY_DIR}
)
add_executable(generate_codebook IMPORTED)
set_target_properties(generate_codebook
PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook)
add_dependencies(generate_codebook codec2_native)
else(CMAKE_CROSSCOMPILING)
# Build code generator binaries. These do not get installed.
# generate_codebook
add_executable(generate_codebook generate_codebook.c)
target_link_libraries(generate_codebook ${CMAKE_REQUIRED_LIBRARIES})
# Make native builds available for cross-compiling.
export(TARGETS generate_codebook
FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake)
endif(CMAKE_CROSSCOMPILING)
# codebook.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebook.c
COMMAND generate_codebook lsp_cb ${CODEBOOKS} > ${CMAKE_CURRENT_BINARY_DIR}/codebook.c
DEPENDS generate_codebook ${CODEBOOKS}
)
# codebookd.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c
COMMAND generate_codebook lsp_cbd ${CODEBOOKSD} > ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c
DEPENDS generate_codebook ${CODEBOOKSD}
)
# codebookjvm.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c
COMMAND generate_codebook lsp_cbjvm ${CODEBOOKSJVM} > ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c
DEPENDS generate_codebook ${CODEBOOKSJVM}
)
# codebookmel.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookmel.c
COMMAND generate_codebook mel_cb ${CODEBOOKSMEL} > ${CMAKE_CURRENT_BINARY_DIR}/codebookmel.c
DEPENDS generate_codebook ${CODEBOOKSMEL}
)
# codebooklspmelvq.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooklspmelvq.c
COMMAND generate_codebook lspmelvq_cb ${CODEBOOKSLSPMELVQ} > ${CMAKE_CURRENT_BINARY_DIR}/codebooklspmelvq.c
DEPENDS generate_codebook ${CODEBOOKSLSPMELVQ}
)
# codebookge.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c
COMMAND generate_codebook ge_cb ${CODEBOOKSGE} > ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c
DEPENDS generate_codebook ${CODEBOOKSGE}
)
# codebooknewamp1.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c
COMMAND generate_codebook newamp1vq_cb ${CODEBOOKSNEWAMP1} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c
DEPENDS generate_codebook ${CODEBOOKSNEWAMP1}
)
# codebooknewamp1_energy.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c
COMMAND generate_codebook newamp1_energy_cb ${CODEBOOKSNEWAMP1_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c
DEPENDS generate_codebook ${CODEBOOKSNEWAMP1_ENERGY}
)
# codebooknewamp2.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c
COMMAND generate_codebook newamp2vq_cb ${CODEBOOKSNEWAMP2} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c
DEPENDS generate_codebook ${CODEBOOKSNEWAMP2}
)
# codebooknewamp2_energy.c
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c
COMMAND generate_codebook newamp2_energy_cb ${CODEBOOKSNEWAMP2_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c
DEPENDS generate_codebook ${CODEBOOKSNEWAMP2_ENERGY}
)
|