From ab2b538bf38f08b885cbaf47d6c630dd59e892d4 Mon Sep 17 00:00:00 2001 From: uvvpavel Date: Mon, 23 Mar 2026 16:30:44 +0000 Subject: [PATCH 01/10] adding support for vx4b build, rewriting pipelines example to be single-tile --- CHANGELOG.rst | 5 ++ Jenkinsfile | 8 ++- examples/CMakeLists.txt | 6 ++ examples/app_aec/CMakeLists.txt | 6 +- examples/app_pipeline/CMakeLists.txt | 7 ++- examples/app_pipeline/src/app.c | 61 +++++++++++++++------ examples/app_pipeline/src/main.xc | 32 ----------- examples/app_pipeline/src/pipeline.c | 12 ++-- examples/app_pipeline/src/pipeline_state.h | 4 +- examples/app_vnr/CMakeLists.txt | 6 +- lib_voice/lib_build_info.cmake | 2 +- lib_voice/src/aec/aec_process_frame.c | 4 +- lib_voice/vnr_model.cmake | 12 +++- requirements.txt | 2 +- tests/profile_mips/lib_voice_mips.json | 2 +- tests/profile_mips/lib_voice_mips_table.rst | 2 +- tests/requirements_test.txt | 4 +- 17 files changed, 103 insertions(+), 72 deletions(-) delete mode 100644 examples/app_pipeline/src/main.xc diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a3f509cb..b975f05f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,11 @@ lib_voice change log ==================== +UNRELEASED +---------- + + * CHANGED: `app_pipeline` example is now single-tile + 1.0.0 ----- diff --git a/Jenkinsfile b/Jenkinsfile index ca444bd1..2d882e7f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,6 +18,11 @@ pipeline { defaultValue: '15.3.1', description: 'The XTC tools version' ) + string( + name: 'TOOLS_VX4_VERSION', + defaultValue: '-j --repo arch_vx_slipgate -b master -a XTC 112', + description: 'The XTC Slipgate tools version' + ) string( name: 'XMOSDOC_VERSION', defaultValue: 'v8.0.1', @@ -66,7 +71,8 @@ pipeline { } dir("${REPO}/examples") { withVenv { - xcoreBuild() + xcoreBuild(archiveBins: false, buildDir: "build_xs3a", toolsVersion: params.TOOLS_VERSION) + xcoreBuild(archiveBins: false, buildDir: "build_vx4b", toolsVersion: params.TOOLS_VX4_VERSION, cmakeOpts: "-DXCORE_TARGET=XK-EVK-XU416") } } } diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d60b0b75..42c64515 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -2,6 +2,12 @@ cmake_minimum_required(VERSION 3.21) include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) project(lib_voice_examples) +if(DEFINED XCORE_TARGET) + set(XCORE_TARGET ${XCORE_TARGET}) +else() + set(XCORE_TARGET XK-EVK-XU316) +endif() + add_subdirectory(app_aec) add_subdirectory(app_vnr) diff --git a/examples/app_aec/CMakeLists.txt b/examples/app_aec/CMakeLists.txt index bf33f9a1..cbb02816 100644 --- a/examples/app_aec/CMakeLists.txt +++ b/examples/app_aec/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 3.21) include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) project(app_aec) -set(APP_HW_TARGET XK-EVK-XU316) +if(DEFINED XCORE_TARGET) + set(APP_HW_TARGET ${XCORE_TARGET}) +else() + set(APP_HW_TARGET XK-EVK-XU316) +endif() if(NOT BUILD_NATIVE) set(APP_COMPILER_FLAGS_1th -report -DAEC_THREADS=1) diff --git a/examples/app_pipeline/CMakeLists.txt b/examples/app_pipeline/CMakeLists.txt index 2e0da47c..ffbcc014 100644 --- a/examples/app_pipeline/CMakeLists.txt +++ b/examples/app_pipeline/CMakeLists.txt @@ -2,7 +2,12 @@ cmake_minimum_required(VERSION 3.21) include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) project(app_pipeline) -set(APP_HW_TARGET XK-EVK-XU316) +if(DEFINED XCORE_TARGET) + set(APP_HW_TARGET ${XCORE_TARGET}) +else() + set(APP_HW_TARGET XK-EVK-XU316) +endif() + set(APP_COMPILER_FLAGS_std_arch -report) set(APP_COMPILER_FLAGS_alt_arch -report -DALT_ARCH_MODE=1) diff --git a/examples/app_pipeline/src/app.c b/examples/app_pipeline/src/app.c index cd7a7f20..e4fba2b1 100644 --- a/examples/app_pipeline/src/app.c +++ b/examples/app_pipeline/src/app.c @@ -6,17 +6,21 @@ #include #include #include +#include -extern void pipeline_tile0_init(pipeline_state_tile0_t *state); -extern void pipeline_tile1_init(pipeline_state_tile1_t *state); +DECLARE_JOB(pipeline_wrapper_thread0, (chanend_t)); +DECLARE_JOB(pipeline_wrapper_thread1, (chanend_t)); -extern void pipeline_process_frame_tile0(pipeline_state_tile0_t *state, +extern void pipeline_thread0_init(pipeline_state_thread0_t *state); +extern void pipeline_thread1_init(pipeline_state_thread1_t *state); + +extern void pipeline_process_frame_thread0(pipeline_state_thread0_t *state, int32_t (*input_y_data)[AP_FRAME_ADVANCE], int32_t (*input_x_data)[AP_FRAME_ADVANCE], int32_t (*output_data)[AP_FRAME_ADVANCE], pipeline_metadata_t *md_output); -extern void pipeline_process_frame_tile1(pipeline_state_tile1_t *state, pipeline_metadata_t *md_input, +extern void pipeline_process_frame_thread1(pipeline_state_thread1_t *state, pipeline_metadata_t *md_input, int32_t (*input_data)[AP_FRAME_ADVANCE], int32_t output_data[AP_FRAME_ADVANCE]); @@ -39,43 +43,64 @@ static inline void consumer(int32_t frame_y[AP_FRAME_ADVANCE]) { printf("frame done\n"); } -void pipeline_wrapper_tile0(chanend_t c_pcm_out) +void pipeline_wrapper_thread0(chanend_t c_pcm_out) { int32_t DWORD_ALIGNED frame_y[AP_MAX_Y_CHANNELS][AP_FRAME_ADVANCE]; int32_t DWORD_ALIGNED frame_x[AP_MAX_X_CHANNELS][AP_FRAME_ADVANCE]; // Initialise pipeline - pipeline_state_tile0_t DWORD_ALIGNED pipeline_tile0_state; - pipeline_tile0_init(&pipeline_tile0_state); + pipeline_state_thread0_t DWORD_ALIGNED pipeline_thread0_state; + pipeline_thread0_init(&pipeline_thread0_state); for(unsigned b = 0; b < 5; b++){ producer(frame_y, frame_x); pipeline_metadata_t md; - int32_t DWORD_ALIGNED tile0_output[AP_MAX_Y_CHANNELS][AP_FRAME_ADVANCE]; - pipeline_process_frame_tile0(&pipeline_tile0_state, frame_y, frame_x, tile0_output, &md); + int32_t DWORD_ALIGNED thread0_output[AP_MAX_Y_CHANNELS][AP_FRAME_ADVANCE]; + pipeline_process_frame_thread0(&pipeline_thread0_state, frame_y, frame_x, thread0_output, &md); - // Send data to process to the other tile and receive processed output back - //Transfer to other tile + // Send data to process to the other thread and receive processed output back + // Send the "valid" signal first + chan_out_byte(c_pcm_out, 1); chan_out_buf_byte(c_pcm_out, (uint8_t*)&md, sizeof(pipeline_metadata_t)); - chan_out_buf_word(c_pcm_out, (uint32_t*)&tile0_output[0][0], (AP_MAX_Y_CHANNELS * AP_FRAME_ADVANCE)); + chan_out_buf_word(c_pcm_out, (uint32_t*)&thread0_output[0][0], (AP_MAX_Y_CHANNELS * AP_FRAME_ADVANCE)); } + // Send the "terminate" signal + chan_out_byte(c_pcm_out, 0); } -void pipeline_wrapper_tile1(chanend_t c_pcm_in) +void pipeline_wrapper_thread1(chanend_t c_pcm_in) { - pipeline_state_tile1_t DWORD_ALIGNED pipeline_tile1_state; + pipeline_state_thread1_t DWORD_ALIGNED pipeline_thread1_state; pipeline_metadata_t md; - int32_t DWORD_ALIGNED tile0_output[AP_MAX_Y_CHANNELS][AP_FRAME_ADVANCE]; + int32_t DWORD_ALIGNED thread0_output[AP_MAX_Y_CHANNELS][AP_FRAME_ADVANCE]; int32_t DWORD_ALIGNED pipeline_output[AP_FRAME_ADVANCE]; - pipeline_tile1_init(&pipeline_tile1_state); + pipeline_thread1_init(&pipeline_thread1_state); while(1) { + // Check the "valid" status first + uint8_t status = chan_in_byte(c_pcm_in); + if (!status) break; + chan_in_buf_byte(c_pcm_in, (uint8_t*)&md, sizeof(pipeline_metadata_t)); - chan_in_buf_word(c_pcm_in, (uint32_t*)&tile0_output[0][0], (AP_MAX_Y_CHANNELS * AP_FRAME_ADVANCE)); + chan_in_buf_word(c_pcm_in, (uint32_t*)&thread0_output[0][0], (AP_MAX_Y_CHANNELS * AP_FRAME_ADVANCE)); - pipeline_process_frame_tile1(&pipeline_tile1_state, &md, tile0_output, pipeline_output); + pipeline_process_frame_thread1(&pipeline_thread1_state, &md, thread0_output, pipeline_output); consumer(pipeline_output); } } + +// producer -> stage1 -> (thread0_to_thread1) -> stage2 -> stage3 -> stage4 -> consumer +// producer and stage1 run on thread0 +// stage2, stage3, stage4 and consumer run on thread1 + +int main() { + channel_t ch = chan_alloc(); + PAR_JOBS( + PJOB(pipeline_wrapper_thread0, (ch.end_a)), + PJOB(pipeline_wrapper_thread1, (ch.end_b)) + ); + chan_free(ch); + return 0; +} \ No newline at end of file diff --git a/examples/app_pipeline/src/main.xc b/examples/app_pipeline/src/main.xc deleted file mode 100644 index a2ea9435..00000000 --- a/examples/app_pipeline/src/main.xc +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2017-2026 XMOS LIMITED. -// This Software is subject to the terms of the XMOS Public Licence: Version 1. -#include -#include -#include -#include - -// producer -> stage1 -> (tile0_to_tile1) -> stage2 -> stage3 -> stage4 -> consumer -// producer and stage1 run on tile0 -// stage2, stage3, stage4 and consumer run on tile1 - -extern "C" { - extern void pipeline_wrapper_tile0(chanend c_pcm_out); - extern void pipeline_wrapper_tile1(chanend c_pcm_in); -} - -int main(){ - chan c_tile0_to_tile1; - - par { - on tile[0]: - { - pipeline_wrapper_tile0(c_tile0_to_tile1); - _Exit(0); - } - on tile[1]: - { - pipeline_wrapper_tile1(c_tile0_to_tile1); - } - } - return 0; -} diff --git a/examples/app_pipeline/src/pipeline.c b/examples/app_pipeline/src/pipeline.c index 3a42ff05..890ad4cf 100644 --- a/examples/app_pipeline/src/pipeline.c +++ b/examples/app_pipeline/src/pipeline.c @@ -5,8 +5,8 @@ #include "pipeline_state.h" -void pipeline_tile0_init(pipeline_state_tile0_t *state) { - memset(state, 0, sizeof(pipeline_state_tile0_t)); +void pipeline_thread0_init(pipeline_state_thread0_t *state) { + memset(state, 0, sizeof(pipeline_state_thread0_t)); // Initialise AEC, DE, ADEC stages aec_conf_t aec_de_mode_conf, aec_non_de_mode_conf; @@ -44,8 +44,8 @@ void pipeline_tile0_init(pipeline_state_tile0_t *state) { stage1_init(&state->stage_1_state, &aec_de_mode_conf, &aec_non_de_mode_conf, &adec_conf); } -void pipeline_tile1_init(pipeline_state_tile1_t *state) { - memset(state, 0, sizeof(pipeline_state_tile1_t)); +void pipeline_thread1_init(pipeline_state_thread1_t *state) { + memset(state, 0, sizeof(pipeline_state_thread1_t)); // Initialise IC, VNR ic_init(&state->ic_state); @@ -58,7 +58,7 @@ void pipeline_tile1_init(pipeline_state_tile1_t *state) { agc_init(&state->agc_state, &agc_conf_asr); } -void pipeline_process_frame_tile0(pipeline_state_tile0_t *state, +void pipeline_process_frame_thread0(pipeline_state_thread0_t *state, int32_t (*input_y_data)[AP_FRAME_ADVANCE], int32_t (*input_x_data)[AP_FRAME_ADVANCE], int32_t (*output_data)[AP_FRAME_ADVANCE], @@ -79,7 +79,7 @@ void pipeline_process_frame_tile0(pipeline_state_tile0_t *state, memcpy(md_output, &md, sizeof(pipeline_metadata_t)); } -void pipeline_process_frame_tile1(pipeline_state_tile1_t *state, pipeline_metadata_t *md_input, +void pipeline_process_frame_thread1(pipeline_state_thread1_t *state, pipeline_metadata_t *md_input, int32_t (*input_data)[AP_FRAME_ADVANCE], int32_t output_data[AP_FRAME_ADVANCE]) { diff --git a/examples/app_pipeline/src/pipeline_state.h b/examples/app_pipeline/src/pipeline_state.h index 3ddb0d97..685ddb27 100644 --- a/examples/app_pipeline/src/pipeline_state.h +++ b/examples/app_pipeline/src/pipeline_state.h @@ -16,7 +16,7 @@ typedef struct { typedef struct { // Stage1 - AEC, DE, ADEC stage1_t DWORD_ALIGNED stage_1_state; -} pipeline_state_tile0_t; +} pipeline_state_thread0_t; typedef struct { // IC, VNR @@ -26,6 +26,6 @@ typedef struct { ns_state_t DWORD_ALIGNED ns_state; // AGC agc_state_t agc_state; -} pipeline_state_tile1_t; +} pipeline_state_thread1_t; #endif diff --git a/examples/app_vnr/CMakeLists.txt b/examples/app_vnr/CMakeLists.txt index 4943c68a..96e41c73 100644 --- a/examples/app_vnr/CMakeLists.txt +++ b/examples/app_vnr/CMakeLists.txt @@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 3.21) include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) project(app_vnr) -set(APP_HW_TARGET XK-EVK-XU316) +if(DEFINED XCORE_TARGET) + set(APP_HW_TARGET ${XCORE_TARGET}) +else() + set(APP_HW_TARGET XK-EVK-XU316) +endif() if(NOT BUILD_NATIVE) set(APP_COMPILER_FLAGS -report) diff --git a/lib_voice/lib_build_info.cmake b/lib_voice/lib_build_info.cmake index 8888d5d5..40d736c9 100644 --- a/lib_voice/lib_build_info.cmake +++ b/lib_voice/lib_build_info.cmake @@ -1,6 +1,6 @@ set(LIB_NAME lib_voice) set(LIB_VERSION 1.0.0) -set(LIB_DEPENDENT_MODULES "lib_xcore_math(2.4.1)") +set(LIB_DEPENDENT_MODULES "lib_xcore_math(develop)") set(LIB_COMPILER_FLAGS -g diff --git a/lib_voice/src/aec/aec_process_frame.c b/lib_voice/src/aec/aec_process_frame.c index 688e3312..d3ea5c5d 100644 --- a/lib_voice/src/aec/aec_process_frame.c +++ b/lib_voice/src/aec/aec_process_frame.c @@ -9,7 +9,7 @@ enum e_fft {Y_FFT, X_FFT, ERROR_FFT}; #define REF_ACTIVE_THRESHOLD f64_to_float_s32(pow(10, REF_ACTIVE_THRESHOLD_DB/20.0)) -#ifdef __XS3A__ +#if defined(__XS3A__) || defined(__VX4B__) #include DECLARE_JOB(calc_time_domain_ema_energy_task, (const aec_par_tasks_and_channels_t*, aec_filter_state_t *, int32_t*, int, int, enum e_td_ema)); DECLARE_JOB(fft_task, (const aec_par_tasks_and_channels_t*, aec_filter_state_t*, aec_filter_state_t*, int, int, enum e_fft)); @@ -272,7 +272,7 @@ void filter_adapt_task(const aec_par_tasks_t *s, aec_filter_state_t *main_state, } } -#ifdef __XS3A__ +#if defined(__XS3A__) || defined(__VX4B__) #define PAR_THREADS_PJOBS(FUNC, ARR, NUM_THREADS, ...) \ do { \ diff --git a/lib_voice/vnr_model.cmake b/lib_voice/vnr_model.cmake index a3587075..9e8f54d7 100644 --- a/lib_voice/vnr_model.cmake +++ b/lib_voice/vnr_model.cmake @@ -38,12 +38,20 @@ set(MODEL_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/src.autogen/vnr_model/) set(MODEL_IN_PATH ${CMAKE_CURRENT_LIST_DIR}/src/vnr/model/trained_model.tflite) set(MODEL_OUT_PATH ${MODEL_OUT_DIR}/trained_model_xcore.tflite) set(MODEL_N_CORES 1) -set(MODEL_TH 0.50) + +if (APP_BUILD_ARCH STREQUAL "vx4b") + set(MODEL_TH 2) + set(ARCH_STR "VX4A") +else() + # xs3a and native + set(MODEL_TH 0.50) + set(ARCH_STR "XS3A") +endif() file(MAKE_DIRECTORY ${MODEL_OUT_DIR}) add_custom_command( OUTPUT ${MODEL_OUT_PATH}.cpp ${MODEL_OUT_PATH}.h ${MODEL_OUT_PATH} - COMMAND xcore-opt ${MODEL_IN_PATH} -tc ${MODEL_N_CORES} -o ${MODEL_OUT_PATH} --xcore-conv-err-threshold ${MODEL_TH} --xcore-naming-prefix vnr_model_ + COMMAND xcore-opt ${MODEL_IN_PATH} -tc ${MODEL_N_CORES} -o ${MODEL_OUT_PATH} --xcore-conv-err-threshold ${MODEL_TH} --xcore-naming-prefix vnr_model_ --xcore-target-arch=${ARCH_STR} DEPENDS ${MODEL_IN_PATH} ) diff --git a/requirements.txt b/requirements.txt index 1c22bb33..697fa1e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ # python_version 3.11 # pip_version 25.* -xmos-ai-tools==1.4.2 +xmos-ai-tools==1.4.3.dev23 diff --git a/tests/profile_mips/lib_voice_mips.json b/tests/profile_mips/lib_voice_mips.json index c01afaad..1c633169 100644 --- a/tests/profile_mips/lib_voice_mips.json +++ b/tests/profile_mips/lib_voice_mips.json @@ -7,5 +7,5 @@ "app_mips_ic": 13.21, "app_mips_ns": 20.79, "app_mips_aec_alt_arch_2threads": 30.7, - "app_mips_agc": 21.31 + "app_mips_agc": 20.46 } \ No newline at end of file diff --git a/tests/profile_mips/lib_voice_mips_table.rst b/tests/profile_mips/lib_voice_mips_table.rst index 7117329a..b247987d 100644 --- a/tests/profile_mips/lib_voice_mips_table.rst +++ b/tests/profile_mips/lib_voice_mips_table.rst @@ -17,7 +17,7 @@ * - AEC_STD_ARCH_2THREADS - 40.85 * - AGC - - 21.31 + - 20.46 * - IC - 13.21 * - NS diff --git a/tests/requirements_test.txt b/tests/requirements_test.txt index e67aa1a1..109da09d 100644 --- a/tests/requirements_test.txt +++ b/tests/requirements_test.txt @@ -23,7 +23,7 @@ pytest~=9.0.2 pytest-xdist~=3.8.0 matplotlib~=3.10.8 soundfile~=0.13.1 -xmos-ai-tools==1.4.2 +xmos-ai-tools==1.4.3.dev23 xscope-fileio==1.3.1 # Development dependencies # @@ -39,5 +39,5 @@ xscope-fileio==1.3.1 # setup.py file, e.g., '-e .' or '-e ./python' (without the quotes). -e ./shared/python git+ssh://git@github.com/xmos/audio_test_tools@v4.6.0#egg=audio_test_tools&subdirectory=python -git+ssh://git@github.com/xmos/py_voice@v1.2.0#egg=py_voice +git+ssh://git@github.com/xmos/py_voice@develop#egg=py_voice git+ssh://git@github0.xmos.com/xmos-int/xtagctl@v3.0.0#egg=xtagctl From 5b80e930970dbb360b7555917a5456a5ad5b3a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 1 Apr 2026 13:59:16 +0100 Subject: [PATCH 02/10] Adding ai_tools xcommon_cmake --- lib_voice/lib_build_info.cmake | 7 ++++--- lib_voice/vnr_model.cmake | 35 ---------------------------------- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/lib_voice/lib_build_info.cmake b/lib_voice/lib_build_info.cmake index 40d736c9..93c2bca0 100644 --- a/lib_voice/lib_build_info.cmake +++ b/lib_voice/lib_build_info.cmake @@ -1,6 +1,9 @@ set(LIB_NAME lib_voice) set(LIB_VERSION 1.0.0) -set(LIB_DEPENDENT_MODULES "lib_xcore_math(develop)") +set(LIB_DEPENDENT_MODULES + "lib_xcore_math(develop)" + "ai_tools(xcommon_cmake)" +) set(LIB_COMPILER_FLAGS -g @@ -68,8 +71,6 @@ foreach(target ${APP_BUILD_TARGETS}) endforeach() endif() - # Link aitools with the targets - target_link_libraries(${target} PRIVATE tflite_micro) if(BUILD_NATIVE) target_compile_features(${target} PRIVATE cxx_std_11) endif() diff --git a/lib_voice/vnr_model.cmake b/lib_voice/vnr_model.cmake index 9e8f54d7..5316ed8a 100644 --- a/lib_voice/vnr_model.cmake +++ b/lib_voice/vnr_model.cmake @@ -1,38 +1,3 @@ - -set(CMD "\ -import os; \ -import xmos_ai_tools.runtime as rt; \ -print(os.path.dirname(rt.__file__)) \ -") - -execute_process( - COMMAND python -c "${CMD}" - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - OUTPUT_VARIABLE XMOS_AITOOLSLIB_PATH - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -# Add tflite_micro -set(XMOS_AITOOLSLIB_PATH_CMAKE "${XMOS_AITOOLSLIB_PATH}/buildfiles/aitoolslib.cmake") - -if(XMOS_AITOOLSLIB_PATH STREQUAL "") - message(FATAL_ERROR "Path to XMOS AI tools NOT found") -elseif(NOT EXISTS ${XMOS_AITOOLSLIB_PATH_CMAKE}) - message(FATAL_ERROR "Cmake file 'aitoolslib.cmake' NOT found in this path") -else() - message(STATUS "Found python package xmos-ai-tools at: ${XMOS_AITOOLSLIB_PATH}") - include(${XMOS_AITOOLSLIB_PATH_CMAKE}) - if(NOT TARGET tflite_micro) - set(TFLM_LIB_NAME tflite_micro) - add_library(${TFLM_LIB_NAME} STATIC IMPORTED GLOBAL) - target_compile_definitions(${TFLM_LIB_NAME} INTERFACE ${XMOS_AITOOLSLIB_DEFINITIONS}) - set_target_properties(${TFLM_LIB_NAME} PROPERTIES - LINKER_LANGUAGE CXX - IMPORTED_LOCATION ${XMOS_AITOOLSLIB_LIBRARIES} - INTERFACE_INCLUDE_DIRECTORIES ${XMOS_AITOOLSLIB_INCLUDES}) - endif() -endif() - ## Export model set(MODEL_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/src.autogen/vnr_model/) set(MODEL_IN_PATH ${CMAKE_CURRENT_LIST_DIR}/src/vnr/model/trained_model.tflite) From fd2baa034256bfee54e5752155162b05c54cadbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 1 Apr 2026 14:38:14 +0100 Subject: [PATCH 03/10] Update xmos-ai-tools version to 1.4.3.dev24 in requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 697fa1e0..7854d52b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ # python_version 3.11 # pip_version 25.* -xmos-ai-tools==1.4.3.dev23 +xmos-ai-tools==1.4.3.dev24 From 0924ecc9af0d1f448c8020a932cddf1aa95d2dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 9 Apr 2026 11:09:29 +0100 Subject: [PATCH 04/10] Update CMakeLists.txt to link ai_tools and adjust dependency paths --- lib_voice/CMakeLists.txt | 2 +- tests/custom_cmake_build/CMakeLists.txt | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib_voice/CMakeLists.txt b/lib_voice/CMakeLists.txt index 89aa208f..8cefd647 100644 --- a/lib_voice/CMakeLists.txt +++ b/lib_voice/CMakeLists.txt @@ -60,7 +60,7 @@ target_link_libraries(lib_voice_module_lib_vnr ) target_link_libraries(lib_voice_module_lib_vnr PRIVATE - tflite_micro + ai_tools ) target_link_libraries(lib_voice_module_lib_vnr PRIVATE diff --git a/tests/custom_cmake_build/CMakeLists.txt b/tests/custom_cmake_build/CMakeLists.txt index 8a24dba6..3188eb6f 100644 --- a/tests/custom_cmake_build/CMakeLists.txt +++ b/tests/custom_cmake_build/CMakeLists.txt @@ -1,8 +1,12 @@ cmake_minimum_required(VERSION 3.21) project(custom_cmake_build) enable_language(CXX C ASM) -set(XCORE_MATH_PATH ${CMAKE_CURRENT_LIST_DIR}/../../..) # Expected to have been fetched in the sandbox as part of xcommon cmake build -add_subdirectory(${XCORE_MATH_PATH}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) + +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) # Expected to have been fetched in the sandbox as part of xcommon cmake build + +## add dependencies and lib_voice +add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) +add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) ### Add executable From 5dde917583d4a9404eec389a579c4ced00fb1cfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 9 Apr 2026 11:24:53 +0100 Subject: [PATCH 05/10] Refactor CMakeLists.txt files to standardize dependency paths for lib_voice and ai_tools --- tests/custom_cmake_build/CMakeLists.txt | 5 ++--- tests/lib_ic/py_c_frame_compare/CMakeLists.txt | 8 +++++--- tests/lib_vnr/test_vnr_cffi/CMakeLists.txt | 8 +++++--- tests/stage_b/CMakeLists.txt | 6 ++++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/tests/custom_cmake_build/CMakeLists.txt b/tests/custom_cmake_build/CMakeLists.txt index 3188eb6f..d200e176 100644 --- a/tests/custom_cmake_build/CMakeLists.txt +++ b/tests/custom_cmake_build/CMakeLists.txt @@ -2,9 +2,8 @@ cmake_minimum_required(VERSION 3.21) project(custom_cmake_build) enable_language(CXX C ASM) -set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) # Expected to have been fetched in the sandbox as part of xcommon cmake build - -## add dependencies and lib_voice +## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt index b87d6638..9ad2cf96 100644 --- a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt +++ b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.21) project(ic_py_c_frame_compare) enable_language(CXX C ASM) -set(XCORE_MATH_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../..) # Expected to have been fetched in the sandbox as part of xcommon cmake build -add_subdirectory(${XCORE_MATH_PATH}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) +add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) +add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt index fc119652..945147cc 100644 --- a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt +++ b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.21) project(test_vnr_cffi) enable_language(CXX C ASM) -set(XCORE_MATH_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../..) # Expected to have been fetched in the sandbox as part of xcommon cmake build -add_subdirectory(${XCORE_MATH_PATH}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) +add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) +add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/stage_b/CMakeLists.txt b/tests/stage_b/CMakeLists.txt index 988867e9..690c9cab 100644 --- a/tests/stage_b/CMakeLists.txt +++ b/tests/stage_b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.21) project(test_stage_b_frame) enable_language(CXX C ASM) -set(XCORE_MATH_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../) # Expected to have been fetched in the sandbox as part of xcommon cmake build -add_subdirectory(${XCORE_MATH_PATH}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) +## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) +add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) From 338c00ac2c8dc82dad9f8633b7d71deef7d26f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 9 Apr 2026 11:49:50 +0100 Subject: [PATCH 06/10] Update CMakeLists.txt to correct SANDBOX_DIR path and standardize lib_voice subdirectory inclusion --- tests/custom_cmake_build/CMakeLists.txt | 2 +- tests/lib_ic/py_c_frame_compare/CMakeLists.txt | 4 ++-- tests/lib_vnr/test_vnr_cffi/CMakeLists.txt | 4 ++-- tests/stage_b/CMakeLists.txt | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/custom_cmake_build/CMakeLists.txt b/tests/custom_cmake_build/CMakeLists.txt index d200e176..e776c6c7 100644 --- a/tests/custom_cmake_build/CMakeLists.txt +++ b/tests/custom_cmake_build/CMakeLists.txt @@ -6,7 +6,7 @@ enable_language(CXX C ASM) set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) ### Add executable set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) diff --git a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt index 9ad2cf96..e6ce95fc 100644 --- a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt +++ b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21) project(ic_py_c_frame_compare) enable_language(CXX C ASM) ## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) -set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt index 945147cc..9f61e0a4 100644 --- a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt +++ b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21) project(test_vnr_cffi) enable_language(CXX C ASM) ## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) -set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/stage_b/CMakeLists.txt b/tests/stage_b/CMakeLists.txt index 690c9cab..6350aac6 100644 --- a/tests/stage_b/CMakeLists.txt +++ b/tests/stage_b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21) project(test_stage_b_frame) enable_language(CXX C ASM) ## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) -set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) From baf98a685788793a630d56e5c8721e78e5a6b4be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 9 Apr 2026 11:58:57 +0100 Subject: [PATCH 07/10] Update CMakeLists.txt to correct lib_voice subdirectory paths in test configurations --- tests/custom_cmake_build/CMakeLists.txt | 2 +- tests/lib_ic/py_c_frame_compare/CMakeLists.txt | 2 +- tests/lib_vnr/test_vnr_cffi/CMakeLists.txt | 2 +- tests/stage_b/CMakeLists.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/custom_cmake_build/CMakeLists.txt b/tests/custom_cmake_build/CMakeLists.txt index e776c6c7..03bfc42c 100644 --- a/tests/custom_cmake_build/CMakeLists.txt +++ b/tests/custom_cmake_build/CMakeLists.txt @@ -6,7 +6,7 @@ enable_language(CXX C ASM) set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) ### Add executable set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) diff --git a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt index e6ce95fc..25bc6b07 100644 --- a/tests/lib_ic/py_c_frame_compare/CMakeLists.txt +++ b/tests/lib_ic/py_c_frame_compare/CMakeLists.txt @@ -5,4 +5,4 @@ enable_language(CXX C ASM) set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt index 9f61e0a4..fc2dcff8 100644 --- a/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt +++ b/tests/lib_vnr/test_vnr_cffi/CMakeLists.txt @@ -5,4 +5,4 @@ enable_language(CXX C ASM) set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) diff --git a/tests/stage_b/CMakeLists.txt b/tests/stage_b/CMakeLists.txt index 6350aac6..1e542728 100644 --- a/tests/stage_b/CMakeLists.txt +++ b/tests/stage_b/CMakeLists.txt @@ -5,4 +5,4 @@ enable_language(CXX C ASM) set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) -add_subdirectory(${SANDBOX_DIR}/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) +add_subdirectory(${SANDBOX_DIR}/lib_voice/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) From 57cfb9043865a4f25416b8e624a98aefcb4c6798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 9 Apr 2026 12:12:45 +0100 Subject: [PATCH 08/10] Update CMakeLists.txt to correct SANDBOX_DIR path for test configurations --- tests/stage_b/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/stage_b/CMakeLists.txt b/tests/stage_b/CMakeLists.txt index 1e542728..51219898 100644 --- a/tests/stage_b/CMakeLists.txt +++ b/tests/stage_b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21) project(test_stage_b_frame) enable_language(CXX C ASM) ## Add lib_voice and dependencies (expected to have been fetched in the sandbox as part of xcommon cmake build) -set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../..) +set(SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) add_subdirectory(${SANDBOX_DIR}/lib_xcore_math/lib_xcore_math ${CMAKE_BINARY_DIR}/lib_xcore_math) add_subdirectory(${SANDBOX_DIR}/ai_tools/ai_tools ${CMAKE_BINARY_DIR}/ai_tools) add_subdirectory(${SANDBOX_DIR}/lib_voice/lib_voice ${CMAKE_BINARY_DIR}/lib_voice) From a6539b7bb1837eae9d9a4b79039291ca8f2cdefe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Mon, 13 Apr 2026 15:32:35 +0100 Subject: [PATCH 09/10] Add FetchContent for ai_tools dependency in CMakeLists.txt --- lib_voice/CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib_voice/CMakeLists.txt b/lib_voice/CMakeLists.txt index 8cefd647..94899ca6 100644 --- a/lib_voice/CMakeLists.txt +++ b/lib_voice/CMakeLists.txt @@ -1,4 +1,13 @@ +## Dependencies +include(FetchContent) + +FetchContent_Declare( + ai_tools + GIT_REPOSITORY https://github.com/xmos/ai_tools + GIT_TAG xcommon_cmake # pin version! +) + ## Common compile options add_library(lib_voice_compile_options INTERFACE) @@ -36,6 +45,7 @@ target_link_libraries(lib_voice_module_aec add_library(lib_voice::aec ALIAS lib_voice_module_aec) ## vnr +FetchContent_MakeAvailable(ai_tools) include(${CMAKE_CURRENT_LIST_DIR}/vnr_model.cmake) ## VNR Inference add_library(lib_voice_module_lib_vnr STATIC) From 07845b927b0e22a37c3a73fbdd823b536f16a097 Mon Sep 17 00:00:00 2001 From: xalbertoisorna Date: Mon, 13 Apr 2026 21:06:03 +0100 Subject: [PATCH 10/10] adding cmakelists location --- lib_voice/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_voice/CMakeLists.txt b/lib_voice/CMakeLists.txt index 94899ca6..1095f06b 100644 --- a/lib_voice/CMakeLists.txt +++ b/lib_voice/CMakeLists.txt @@ -4,8 +4,9 @@ include(FetchContent) FetchContent_Declare( ai_tools + SOURCE_SUBDIR ai_tools GIT_REPOSITORY https://github.com/xmos/ai_tools - GIT_TAG xcommon_cmake # pin version! + GIT_TAG xcommon_cmake #TODO pin version ) ## Common compile options