From 19fd918695c4cf0831888acbce34e46088625352 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:12:48 +0200 Subject: [PATCH 01/17] cmake/zephyr: unify cmake rules for src/audio/mixer/ Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/mixer instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- zephyr/CMakeLists.txt | 6 ------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 2810a0e452de..97ebaf732dae 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -31,6 +31,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) kpb.c ) endif() + if(CONFIG_COMP_MIXER) + add_subdirectory(mixer) + endif() if(CONFIG_COMP_SEL) add_subdirectory(selector) endif() @@ -84,9 +87,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) tone.c ) endif() - if(CONFIG_COMP_MIXER) - add_subdirectory(mixer) - endif() if(CONFIG_COMP_MIXIN_MIXOUT) add_subdirectory(mixin_mixout) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 7a3c92f9ce64..3515209db511 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -506,12 +506,6 @@ elseif(CONFIG_IPC_MAJOR_4) set(ipc_suffix ipc4) endif() -zephyr_library_sources_ifdef(CONFIG_COMP_MIXER - ${SOF_AUDIO_PATH}/mixer/mixer.c - ${SOF_AUDIO_PATH}/mixer/mixer_generic.c - ${SOF_AUDIO_PATH}/mixer/mixer_hifi3.c -) - if(CONFIG_COMP_MIXIN_MIXOUT STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/mixin_mixout/llext ${PROJECT_BINARY_DIR}/mixin_mixout_llext) From a43bbaa9a3bfb014d9799972cdbdaa7ba5b4551d Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:16:08 +0200 Subject: [PATCH 02/17] cmake/zephyr: unify cmake rules for src/audio/mixin_mixout/ Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/mixin_mixout/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/mixin_mixout/CMakeLists.txt | 13 ++++++++++++- zephyr/CMakeLists.txt | 13 ------------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 97ebaf732dae..9fe6188883e3 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -34,6 +34,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MIXER) add_subdirectory(mixer) endif() + if(CONFIG_COMP_MIXIN_MIXOUT) + add_subdirectory(mixin_mixout) + endif() if(CONFIG_COMP_SEL) add_subdirectory(selector) endif() @@ -87,9 +90,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) tone.c ) endif() - if(CONFIG_COMP_MIXIN_MIXOUT) - add_subdirectory(mixin_mixout) - endif() if(CONFIG_COMP_MUX) add_subdirectory(mux) endif() diff --git a/src/audio/mixin_mixout/CMakeLists.txt b/src/audio/mixin_mixout/CMakeLists.txt index 2e6dc7456ae5..e6f0776b8b92 100644 --- a/src/audio/mixin_mixout/CMakeLists.txt +++ b/src/audio/mixin_mixout/CMakeLists.txt @@ -1 +1,12 @@ -add_local_sources(sof mixin_mixout.c mixin_mixout_generic.c mixin_mixout_hifi3.c mixin_mixout_hifi5.c) +# SPDX-License-Identifier: BSD-3-Clause + +if(CONFIG_COMP_MIXIN_MIXOUT STREQUAL "m") + + add_subdirectory(llext ${PROJECT_BINARY_DIR}/mixin_mixout_llext) + add_dependencies(app mixin_mixout) + +else() + + add_local_sources(sof mixin_mixout.c mixin_mixout_generic.c mixin_mixout_hifi3.c mixin_mixout_hifi5.c) + +endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 3515209db511..72d3fbf1afe9 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -506,19 +506,6 @@ elseif(CONFIG_IPC_MAJOR_4) set(ipc_suffix ipc4) endif() -if(CONFIG_COMP_MIXIN_MIXOUT STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/mixin_mixout/llext - ${PROJECT_BINARY_DIR}/mixin_mixout_llext) - add_dependencies(app mixin_mixout) -elseif(CONFIG_COMP_MIXIN_MIXOUT) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/mixin_mixout/mixin_mixout.c - ${SOF_AUDIO_PATH}/mixin_mixout/mixin_mixout_generic.c - ${SOF_AUDIO_PATH}/mixin_mixout/mixin_mixout_hifi3.c - ${SOF_AUDIO_PATH}/mixin_mixout/mixin_mixout_hifi5.c - ) -endif() - zephyr_library_sources_ifdef(CONFIG_COMP_TONE ${SOF_AUDIO_PATH}/tone.c ) From fd445d95cf63ea97fa2b9ea8d2346381f5f6592e Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 17:30:05 +0200 Subject: [PATCH 03/17] cmake/zephyr: unify cmake rules for src/audio/tone.c Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 11 +++++------ zephyr/CMakeLists.txt | 4 ---- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 9fe6188883e3..e65a3ca0aeeb 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -43,7 +43,11 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_SRC) add_subdirectory(src) endif() - + if(CONFIG_COMP_TONE) + add_local_sources(sof + tone.c + ) + endif() if(CONFIG_ZEPHYR_NATIVE_DRIVERS) list(APPEND base_files host-zephyr.c) sof_list_append_ifdef(CONFIG_COMP_DAI base_files dai-zephyr.c) @@ -85,11 +89,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MULTIBAND_DRC) add_subdirectory(multiband_drc) endif() - if(CONFIG_COMP_TONE) - add_local_sources(sof - tone.c - ) - endif() if(CONFIG_COMP_MUX) add_subdirectory(mux) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 72d3fbf1afe9..1fb7a68105a5 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -506,10 +506,6 @@ elseif(CONFIG_IPC_MAJOR_4) set(ipc_suffix ipc4) endif() -zephyr_library_sources_ifdef(CONFIG_COMP_TONE - ${SOF_AUDIO_PATH}/tone.c -) - zephyr_library_sources_ifdef(CONFIG_IPC4_GATEWAY ${SOF_AUDIO_PATH}/copier/copier_ipcgtw.c ) From 8d1990f01288b7ea279961a8a59a127635591554 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:21:54 +0200 Subject: [PATCH 04/17] cmake/zephyr: unify cmake rules for src/audio/copier Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/copier/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- zephyr/CMakeLists.txt | 16 ---------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index e65a3ca0aeeb..dcafd37a7046 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -17,6 +17,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_ASRC) add_subdirectory(asrc) endif() + if(CONFIG_COMP_COPIER) + add_subdirectory(copier) + endif() if(CONFIG_COMP_DCBLOCK) add_subdirectory(dcblock) endif() @@ -107,9 +110,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_IGO_NR) add_subdirectory(igo_nr) endif() - if(CONFIG_COMP_COPIER) - add_subdirectory(copier) - endif() if(CONFIG_COMP_RTNR) add_subdirectory(rtnr) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 1fb7a68105a5..639f49bac7d6 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -506,14 +506,6 @@ elseif(CONFIG_IPC_MAJOR_4) set(ipc_suffix ipc4) endif() -zephyr_library_sources_ifdef(CONFIG_IPC4_GATEWAY - ${SOF_AUDIO_PATH}/copier/copier_ipcgtw.c -) - -zephyr_library_sources_ifdef(CONFIG_COPIER_GAIN - ${SOF_AUDIO_PATH}/copier/copier_gain.c -) - zephyr_library_sources_ifdef(CONFIG_SAMPLE_KEYPHRASE ${SOF_SAMPLES_PATH}/audio/detect_test.c ) @@ -602,14 +594,6 @@ zephyr_library_sources_ifdef(CONFIG_IPC4_BASE_FW_INTEL ${SOF_AUDIO_PATH}/base_fw_intel.c ) -zephyr_library_sources_ifdef(CONFIG_COMP_COPIER - ${SOF_AUDIO_PATH}/copier/copier_generic.c - ${SOF_AUDIO_PATH}/copier/copier_hifi.c - ${SOF_AUDIO_PATH}/copier/copier.c - ${SOF_AUDIO_PATH}/copier/copier_host.c - ${SOF_AUDIO_PATH}/copier/copier_dai.c -) - zephyr_library_sources( ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter_hifi3.c ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter.c From e7727fd737ec3056579d5fc5d80d95b7703641ca Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:27:44 +0200 Subject: [PATCH 05/17] cmake/zephyr: unify cmake rules for src/audio/volume/ Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/volume/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/volume/CMakeLists.txt | 37 ++++++++++++++++++--------------- zephyr/CMakeLists.txt | 19 ----------------- 3 files changed, 23 insertions(+), 39 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index dcafd37a7046..064bae52c814 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -51,6 +51,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) tone.c ) endif() + if(CONFIG_COMP_VOLUME) + add_subdirectory(volume) + endif() if(CONFIG_ZEPHYR_NATIVE_DRIVERS) list(APPEND base_files host-zephyr.c) sof_list_append_ifdef(CONFIG_COMP_DAI base_files dai-zephyr.c) @@ -127,9 +130,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MFCC) add_subdirectory(mfcc) endif() - if(CONFIG_COMP_VOLUME) - add_subdirectory(volume) - endif() if(CONFIG_INTEL_ADSP_MIC_PRIVACY) add_subdirectory(mic_privacy_manager) endif() diff --git a/src/audio/volume/CMakeLists.txt b/src/audio/volume/CMakeLists.txt index 5c5b764b5912..8c743ba1f464 100644 --- a/src/audio/volume/CMakeLists.txt +++ b/src/audio/volume/CMakeLists.txt @@ -1,19 +1,22 @@ # SPDX-License-Identifier: BSD-3-Clause -if(CONFIG_COMP_VOLUME) - add_local_sources(sof - volume_generic.c - volume_hifi3.c - volume_hifi4.c - volume_hifi5.c - volume_generic_with_peakvol.c - volume_hifi3_with_peakvol.c - volume_hifi4_with_peakvol.c - volume_hifi5_with_peakvol.c - volume.c) - if(CONFIG_IPC_MAJOR_3) - add_local_sources(sof volume_ipc3.c) - elseif(CONFIG_IPC_MAJOR_4) - add_local_sources(sof volume_ipc4.c) - endif() -endif() \ No newline at end of file +if(CONFIG_COMP_VOLUME STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/volume_llext) + add_dependencies(app volume) +else() + add_local_sources(sof + volume_generic.c + volume_hifi3.c + volume_hifi4.c + volume_hifi5.c + volume_generic_with_peakvol.c + volume_hifi3_with_peakvol.c + volume_hifi4_with_peakvol.c + volume_hifi5_with_peakvol.c + volume.c) + if(CONFIG_IPC_MAJOR_3) + add_local_sources(sof volume_ipc3.c) + elseif(CONFIG_IPC_MAJOR_4) + add_local_sources(sof volume_ipc4.c) + endif() +endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 639f49bac7d6..0cacf43f4bd3 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -510,25 +510,6 @@ zephyr_library_sources_ifdef(CONFIG_SAMPLE_KEYPHRASE ${SOF_SAMPLES_PATH}/audio/detect_test.c ) -if(CONFIG_COMP_VOLUME STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/volume/llext - ${PROJECT_BINARY_DIR}/volume_llext) - add_dependencies(app volume) -elseif(CONFIG_COMP_VOLUME) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/volume/volume_hifi5.c - ${SOF_AUDIO_PATH}/volume/volume_hifi4.c - ${SOF_AUDIO_PATH}/volume/volume_hifi3.c - ${SOF_AUDIO_PATH}/volume/volume_generic.c - ${SOF_AUDIO_PATH}/volume/volume_hifi5_with_peakvol.c - ${SOF_AUDIO_PATH}/volume/volume_hifi4_with_peakvol.c - ${SOF_AUDIO_PATH}/volume/volume_hifi3_with_peakvol.c - ${SOF_AUDIO_PATH}/volume/volume_generic_with_peakvol.c - ${SOF_AUDIO_PATH}/volume/volume.c - ${SOF_AUDIO_PATH}/volume/volume_${ipc_suffix}.c - ) -endif() - zephyr_library_sources_ifdef(CONFIG_COMP_MODULE_ADAPTER ${SOF_AUDIO_PATH}/module_adapter/module_adapter.c ${SOF_AUDIO_PATH}/module_adapter/module_adapter_${ipc_suffix}.c From 1bad2e1674110ee57eb7c9f1a74914854f8ec571 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:37:05 +0200 Subject: [PATCH 06/17] cmake/zephyr: unify cmake rules for src/audio IPC4 modules Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio for base_fw and chain_dma modules. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 15 +++++++-------- zephyr/CMakeLists.txt | 12 ------------ 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 064bae52c814..ba9a2e60a2e0 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -17,6 +17,13 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_ASRC) add_subdirectory(asrc) endif() + if(CONFIG_COMP_BASEFW_IPC4 AND NOT CONFIG_LIBRARY) + add_local_sources(sof base_fw.c) + endif() + add_local_sources_ifdef(CONFIG_IPC4_BASE_FW_INTEL sof base_fw_intel.c) + if(CONFIG_COMP_CHAIN_DMA) + add_local_sources(sof chain_dma.c) + endif() if(CONFIG_COMP_COPIER) add_subdirectory(copier) endif() @@ -116,11 +123,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_RTNR) add_subdirectory(rtnr) endif() - if(CONFIG_COMP_BASEFW_IPC4 AND NOT CONFIG_LIBRARY) - add_local_sources(sof - base_fw.c - ) - endif() if(CONFIG_COMP_ARIA) add_subdirectory(aria) endif() @@ -134,9 +136,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) add_subdirectory(mic_privacy_manager) endif() add_subdirectory(google) - if(CONFIG_COMP_CHAIN_DMA) - add_local_sources(sof chain_dma.c) - endif() if(CONFIG_DTS_CODEC) add_subdirectory(codec) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 0cacf43f4bd3..bb87612f9680 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -563,18 +563,6 @@ zephyr_library_sources_ifdef(CONFIG_PASSTHROUGH_CODEC ) endif() -zephyr_library_sources_ifdef(CONFIG_COMP_CHAIN_DMA - ${SOF_AUDIO_PATH}/chain_dma.c -) - -zephyr_library_sources_ifdef(CONFIG_COMP_BASEFW_IPC4 - ${SOF_AUDIO_PATH}/base_fw.c -) - -zephyr_library_sources_ifdef(CONFIG_IPC4_BASE_FW_INTEL - ${SOF_AUDIO_PATH}/base_fw_intel.c -) - zephyr_library_sources( ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter_hifi3.c ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter.c From f5bdfb14e397ace6565825e8e703321484acc65d Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:41:00 +0200 Subject: [PATCH 07/17] cmake/zephyr: unify cmake rules for src/audio/pcm_converter Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/pcm_converter/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 2 +- zephyr/CMakeLists.txt | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index ba9a2e60a2e0..707be5418ff3 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -13,6 +13,7 @@ set(base_files ### Common actions for Zephyr/XTOS ### if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) add_subdirectory(buffers) + add_subdirectory(pcm_converter) add_subdirectory(pipeline) if(CONFIG_COMP_ASRC) add_subdirectory(asrc) @@ -113,7 +114,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_SMART_AMP) add_subdirectory(smart_amp) endif() - add_subdirectory(pcm_converter) if(CONFIG_COMP_MODULE_ADAPTER) add_subdirectory(module_adapter) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index bb87612f9680..386f9ea6bac6 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -563,15 +563,6 @@ zephyr_library_sources_ifdef(CONFIG_PASSTHROUGH_CODEC ) endif() -zephyr_library_sources( - ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter_hifi3.c - ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter.c - ${SOF_AUDIO_PATH}/pcm_converter/pcm_converter_generic.c -) -zephyr_library_sources_ifdef(CONFIG_PCM_REMAPPING_CONVERTERS - ${SOF_AUDIO_PATH}/pcm_converter/pcm_remap.c -) - zephyr_library_sources_ifdef(CONFIG_MAXIM_DSM ${SOF_AUDIO_PATH}/smart_amp/smart_amp.c ${SOF_AUDIO_PATH}/smart_amp/smart_amp_generic.c From fdb4e5073dd67ffa231c0382f0831d5420444761 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:42:29 +0200 Subject: [PATCH 08/17] audio: add section comments to CMakeLists.txt Add inline comments to explain how the build rules are organized and ordered in the file. Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 707be5418ff3..5e925508c810 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -12,9 +12,12 @@ set(base_files ### Common actions for Zephyr/XTOS ### if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) + # directories included unconditionally (alphabetical order) add_subdirectory(buffers) add_subdirectory(pcm_converter) add_subdirectory(pipeline) + + # directories and files included conditionally (alphabetical order) if(CONFIG_COMP_ASRC) add_subdirectory(asrc) endif() @@ -71,8 +74,12 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) endif() endif() +### Common files (also used in shared library build) + sof_list_append_ifdef(CONFIG_COMP_BLOB base_files data_blob.c) +### (end of common files) + is_zephyr(it_is) if(it_is) ### Zephyr ### From 6cbaf2be9bf7df6a59333b11c54fa4d51a0436c0 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Wed, 19 Mar 2025 16:44:51 +0200 Subject: [PATCH 09/17] cmake/zephyr: unify cmake rules for src/audio/aria Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/aria/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/aria/CMakeLists.txt | 7 ++++++- zephyr/CMakeLists.txt | 13 ------------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 5e925508c810..c39b22567533 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -18,6 +18,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) add_subdirectory(pipeline) # directories and files included conditionally (alphabetical order) + if(CONFIG_COMP_ARIA) + add_subdirectory(aria) + endif() if(CONFIG_COMP_ASRC) add_subdirectory(asrc) endif() @@ -130,9 +133,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_RTNR) add_subdirectory(rtnr) endif() - if(CONFIG_COMP_ARIA) - add_subdirectory(aria) - endif() if(CONFIG_COMP_UP_DOWN_MIXER) add_subdirectory(up_down_mixer) endif() diff --git a/src/audio/aria/CMakeLists.txt b/src/audio/aria/CMakeLists.txt index 36af35cc76fd..b8c1cd7ea761 100644 --- a/src/audio/aria/CMakeLists.txt +++ b/src/audio/aria/CMakeLists.txt @@ -1,3 +1,8 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof aria.c aria_hifi5.c aria_hifi3.c aria_generic.c) +if(CONFIG_COMP_ARIA STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/aria_llext) + add_dependencies(app aria) +else() + add_local_sources(sof aria.c aria_hifi5.c aria_hifi3.c aria_generic.c) +endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 386f9ea6bac6..8f138eee541c 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -577,19 +577,6 @@ zephyr_library_sources_ifdef(CONFIG_MAXIM_DSM_STUB ${SOF_AUDIO_PATH}/smart_amp/maxim_dsm_stub.c ) -if(CONFIG_COMP_ARIA STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/aria/llext - ${PROJECT_BINARY_DIR}/aria_llext) - add_dependencies(app aria) -elseif(CONFIG_COMP_ARIA) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/aria/aria.c - ${SOF_AUDIO_PATH}/aria/aria_hifi5.c - ${SOF_AUDIO_PATH}/aria/aria_hifi3.c - ${SOF_AUDIO_PATH}/aria/aria_generic.c - ) -endif() - if(CONFIG_COMP_CROSSOVER STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/crossover/llext ${PROJECT_BINARY_DIR}/crossover_llext) From bdae64a11884a4cdfe0cd7d96e15a8246ad602c6 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 11:49:12 +0200 Subject: [PATCH 10/17] cmake/zephyr: unify cmake rules for src/audio/crossover Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/crossover/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/crossover/CMakeLists.txt | 8 ++++++++ zephyr/CMakeLists.txt | 12 ------------ 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index c39b22567533..618ff053fd22 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -34,6 +34,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_COPIER) add_subdirectory(copier) endif() + if(CONFIG_COMP_CROSSOVER) + add_subdirectory(crossover) + endif() if(CONFIG_COMP_DCBLOCK) add_subdirectory(dcblock) endif() @@ -101,9 +104,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) ${base_files} ) - if(CONFIG_COMP_CROSSOVER) - add_subdirectory(crossover) - endif() if(CONFIG_COMP_TDFB) add_subdirectory(tdfb) endif() diff --git a/src/audio/crossover/CMakeLists.txt b/src/audio/crossover/CMakeLists.txt index c58c01460cd7..8cea3e0c5156 100644 --- a/src/audio/crossover/CMakeLists.txt +++ b/src/audio/crossover/CMakeLists.txt @@ -1,3 +1,11 @@ +# SPDX-License-Identifier: BSD-3-Clause + +if(CONFIG_COMP_CROSSOVER STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/crossover_llext) + add_dependencies(app crossover) + return() +endif() + add_local_sources(sof crossover.c) add_local_sources(sof crossover_generic.c) if(CONFIG_IPC_MAJOR_3) diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 8f138eee541c..ddbcfe86f56b 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -577,18 +577,6 @@ zephyr_library_sources_ifdef(CONFIG_MAXIM_DSM_STUB ${SOF_AUDIO_PATH}/smart_amp/maxim_dsm_stub.c ) -if(CONFIG_COMP_CROSSOVER STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/crossover/llext - ${PROJECT_BINARY_DIR}/crossover_llext) - add_dependencies(app crossover) -elseif(CONFIG_COMP_CROSSOVER) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/crossover/crossover.c - ${SOF_AUDIO_PATH}/crossover/crossover_generic.c - ${SOF_AUDIO_PATH}/crossover/crossover_${ipc_suffix}.c - ) -endif() - if(CONFIG_COMP_DRC STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/drc/llext ${PROJECT_BINARY_DIR}/drc_llext) From 98657674d114ca1593588a93762dfc04876eb6c4 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:27:01 +0200 Subject: [PATCH 11/17] cmake/zephyr: unify cmake rules for src/audio/drc Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/drc/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/drc/CMakeLists.txt | 28 +++++++++++++++++++--------- zephyr/CMakeLists.txt | 21 --------------------- 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 618ff053fd22..efdafae43029 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -40,6 +40,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_DCBLOCK) add_subdirectory(dcblock) endif() + if(CONFIG_COMP_DRC) + add_subdirectory(drc) + endif() if(CONFIG_COMP_FIR) add_subdirectory(eq_fir) endif() @@ -107,9 +110,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_TDFB) add_subdirectory(tdfb) endif() - if(CONFIG_COMP_DRC) - add_subdirectory(drc) - endif() if(CONFIG_COMP_MULTIBAND_DRC) add_subdirectory(multiband_drc) endif() diff --git a/src/audio/drc/CMakeLists.txt b/src/audio/drc/CMakeLists.txt index 4e2751035ee5..b497284d6bb8 100644 --- a/src/audio/drc/CMakeLists.txt +++ b/src/audio/drc/CMakeLists.txt @@ -1,9 +1,19 @@ -add_local_sources(sof - drc.c - drc_generic.c - drc_hifi3.c - drc_hifi4.c - drc_math_generic.c - drc_math_hifi3.c - drc_log.c -) +# SPDX-License-Identifier: BSD-3-Clause + +if(CONFIG_COMP_DRC STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/drc_llext) + add_dependencies(app drc) +else() + add_local_sources(sof + drc.c + drc_generic.c + drc_hifi3.c + drc_hifi4.c + drc_math_generic.c + drc_math_hifi3.c + ) +endif() + +if(NOT CONFIG_COMP_DRC STREQUAL "n") + add_local_sources(sof drc_log.c) +endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index ddbcfe86f56b..31f3881cae63 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -577,27 +577,6 @@ zephyr_library_sources_ifdef(CONFIG_MAXIM_DSM_STUB ${SOF_AUDIO_PATH}/smart_amp/maxim_dsm_stub.c ) -if(CONFIG_COMP_DRC STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/drc/llext - ${PROJECT_BINARY_DIR}/drc_llext) - add_dependencies(app drc) -elseif(CONFIG_COMP_DRC) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/drc/drc.c - ${SOF_AUDIO_PATH}/drc/drc_generic.c - ${SOF_AUDIO_PATH}/drc/drc_math_generic.c - ${SOF_AUDIO_PATH}/drc/drc_hifi3.c - ${SOF_AUDIO_PATH}/drc/drc_hifi4.c - ${SOF_AUDIO_PATH}/drc/drc_math_hifi3.c - ) -endif() - -if(NOT CONFIG_COMP_DRC STREQUAL "n") - zephyr_library_sources( - ${SOF_AUDIO_PATH}/drc/drc_log.c - ) -endif() - if(CONFIG_COMP_MULTIBAND_DRC STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/multiband_drc/llext ${PROJECT_BINARY_DIR}/multiband_drc_llext) From 343f3366fc25bb0732c019c59b316154c33e8777 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:34:27 +0200 Subject: [PATCH 12/17] cmake/zephyr: unify cmake rules for src/audio/tdbf Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/tdbf/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/tdfb/CMakeLists.txt | 15 ++++++++++----- zephyr/CMakeLists.txt | 15 --------------- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index efdafae43029..624e65616586 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -66,6 +66,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_SRC) add_subdirectory(src) endif() + if(CONFIG_COMP_TDFB) + add_subdirectory(tdfb) + endif() if(CONFIG_COMP_TONE) add_local_sources(sof tone.c @@ -107,9 +110,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) ${base_files} ) - if(CONFIG_COMP_TDFB) - add_subdirectory(tdfb) - endif() if(CONFIG_COMP_MULTIBAND_DRC) add_subdirectory(multiband_drc) endif() diff --git a/src/audio/tdfb/CMakeLists.txt b/src/audio/tdfb/CMakeLists.txt index a476cd5b9f1a..2ecc72640349 100644 --- a/src/audio/tdfb/CMakeLists.txt +++ b/src/audio/tdfb/CMakeLists.txt @@ -1,8 +1,13 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof tdfb.c tdfb_generic.c tdfb_hifiep.c tdfb_hifi3.c tdfb_direction.c) -if(CONFIG_IPC_MAJOR_3) - add_local_sources(sof tdfb_ipc3.c) -elseif(CONFIG_IPC_MAJOR_4) - add_local_sources(sof tdfb_ipc4.c) +if(CONFIG_COMP_TDFB STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/tdfb_llext) + add_dependencies(app tdfb) +else() + add_local_sources(sof tdfb.c tdfb_generic.c tdfb_hifiep.c tdfb_hifi3.c tdfb_direction.c) + if(CONFIG_IPC_MAJOR_3) + add_local_sources(sof tdfb_ipc3.c) + elseif(CONFIG_IPC_MAJOR_4) + add_local_sources(sof tdfb_ipc4.c) + endif() endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 31f3881cae63..24752ee5146d 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -678,21 +678,6 @@ elseif(CONFIG_SAMPLE_SMART_AMP) ) endif() -if(CONFIG_COMP_TDFB STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/tdfb/llext - ${PROJECT_BINARY_DIR}/tdfb_llext) - add_dependencies(app tdfb) -elseif(CONFIG_COMP_TDFB) - zephyr_library_sources( - ${SOF_AUDIO_PATH}/tdfb/tdfb.c - ${SOF_AUDIO_PATH}/tdfb/tdfb_direction.c - ${SOF_AUDIO_PATH}/tdfb/tdfb_generic.c - ${SOF_AUDIO_PATH}/tdfb/tdfb_hifiep.c - ${SOF_AUDIO_PATH}/tdfb/tdfb_hifi3.c - ${SOF_AUDIO_PATH}/tdfb/tdfb_${ipc_suffix}.c - ) -endif() - zephyr_library_sources_ifdef(CONFIG_COMP_UP_DOWN_MIXER ${SOF_AUDIO_PATH}/up_down_mixer/up_down_mixer.c ${SOF_AUDIO_PATH}/up_down_mixer/up_down_mixer_hifi3.c From 86f63d0909cbe1229d3d41b50dc1d05fa283f8db Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:36:54 +0200 Subject: [PATCH 13/17] cmake/zephyr: unify cmake rules for src/audio/up_down_mixer Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/up_down_mixer/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- zephyr/CMakeLists.txt | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 624e65616586..b710f0ff1187 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -74,6 +74,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) tone.c ) endif() + if(CONFIG_COMP_UP_DOWN_MIXER) + add_subdirectory(up_down_mixer) + endif() if(CONFIG_COMP_VOLUME) add_subdirectory(volume) endif() @@ -133,9 +136,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_RTNR) add_subdirectory(rtnr) endif() - if(CONFIG_COMP_UP_DOWN_MIXER) - add_subdirectory(up_down_mixer) - endif() if(CONFIG_COMP_MFCC) add_subdirectory(mfcc) endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 24752ee5146d..c49a7a58cf79 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -678,11 +678,6 @@ elseif(CONFIG_SAMPLE_SMART_AMP) ) endif() -zephyr_library_sources_ifdef(CONFIG_COMP_UP_DOWN_MIXER - ${SOF_AUDIO_PATH}/up_down_mixer/up_down_mixer.c - ${SOF_AUDIO_PATH}/up_down_mixer/up_down_mixer_hifi3.c -) - if(CONFIG_COMP_MUX STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/mux/llext ${PROJECT_BINARY_DIR}/mux_llext) From 73e01ac4eb949c68fbcf6a7af662198704e10751 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:38:46 +0200 Subject: [PATCH 14/17] cmake/zephyr: unify cmake rules for src/audio/mux Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/mux/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/mux/CMakeLists.txt | 16 ++++++++++------ zephyr/CMakeLists.txt | 12 ------------ 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index b710f0ff1187..cf6180ca4619 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -60,6 +60,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MIXIN_MIXOUT) add_subdirectory(mixin_mixout) endif() + if(CONFIG_COMP_MUX) + add_subdirectory(mux) + endif() if(CONFIG_COMP_SEL) add_subdirectory(selector) endif() @@ -116,9 +119,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MULTIBAND_DRC) add_subdirectory(multiband_drc) endif() - if(CONFIG_COMP_MUX) - add_subdirectory(mux) - endif() if(CONFIG_COMP_DAI) add_local_sources(sof dai-legacy.c diff --git a/src/audio/mux/CMakeLists.txt b/src/audio/mux/CMakeLists.txt index a7b890cb3512..6064c738aa29 100644 --- a/src/audio/mux/CMakeLists.txt +++ b/src/audio/mux/CMakeLists.txt @@ -1,10 +1,14 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof mux.c mux_generic.c) +if(CONFIG_COMP_MUX STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/mux_llext) + add_dependencies(app mux) +else() + add_local_sources(sof mux.c mux_generic.c) -if(CONFIG_IPC_MAJOR_3) - add_local_sources(sof mux_ipc3.c) -elseif(CONFIG_IPC_MAJOR_4) - add_local_sources(sof mux_ipc4.c) + if(CONFIG_IPC_MAJOR_3) + add_local_sources(sof mux_ipc3.c) + elseif(CONFIG_IPC_MAJOR_4) + add_local_sources(sof mux_ipc4.c) + endif() endif() - diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index c49a7a58cf79..8dee32108765 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -678,18 +678,6 @@ elseif(CONFIG_SAMPLE_SMART_AMP) ) endif() -if(CONFIG_COMP_MUX STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/mux/llext - ${PROJECT_BINARY_DIR}/mux_llext) - add_dependencies(app mux) -elseif(CONFIG_COMP_MUX) - zephyr_library_sources_ifdef(CONFIG_COMP_MUX - ${SOF_AUDIO_PATH}/mux/mux.c - ${SOF_AUDIO_PATH}/mux/mux_generic.c - ${SOF_AUDIO_PATH}/mux/mux_${ipc_suffix}.c - ) -endif() - if(CONFIG_COMP_MFCC STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/mfcc/llext ${PROJECT_BINARY_DIR}/mfcc_llext) From cb624842355d47a9987d394a1779a7e78924084b Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:45:20 +0200 Subject: [PATCH 15/17] cmake/zephyr: unify cmake rules for src/audio/multiband_drc Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/multiband_drc/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/multiband_drc/CMakeLists.txt | 19 +++++++++++++------ zephyr/CMakeLists.txt | 12 ------------ 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index cf6180ca4619..feee7805052a 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -60,6 +60,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_MIXIN_MIXOUT) add_subdirectory(mixin_mixout) endif() + if(CONFIG_COMP_MULTIBAND_DRC) + add_subdirectory(multiband_drc) + endif() if(CONFIG_COMP_MUX) add_subdirectory(mux) endif() @@ -116,9 +119,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) ${base_files} ) - if(CONFIG_COMP_MULTIBAND_DRC) - add_subdirectory(multiband_drc) - endif() if(CONFIG_COMP_DAI) add_local_sources(sof dai-legacy.c diff --git a/src/audio/multiband_drc/CMakeLists.txt b/src/audio/multiband_drc/CMakeLists.txt index 3579af97f97b..6267948030a8 100644 --- a/src/audio/multiband_drc/CMakeLists.txt +++ b/src/audio/multiband_drc/CMakeLists.txt @@ -1,8 +1,15 @@ -add_local_sources(sof multiband_drc.c) -add_local_sources(sof multiband_drc_generic.c) +# SPDX-License-Identifier: BSD-3-Clause -if(CONFIG_IPC_MAJOR_3) - add_local_sources(sof multiband_drc_ipc3.c) -elseif(CONFIG_IPC_MAJOR_4) - add_local_sources(sof multiband_drc_ipc4.c) +if(CONFIG_COMP_MULTIBAND_DRC STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/multiband_drc_llext) + add_dependencies(app multiband_drc) +else() + add_local_sources(sof multiband_drc.c) + add_local_sources(sof multiband_drc_generic.c) + + if(CONFIG_IPC_MAJOR_3) + add_local_sources(sof multiband_drc_ipc3.c) + elseif(CONFIG_IPC_MAJOR_4) + add_local_sources(sof multiband_drc_ipc4.c) + endif() endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 8dee32108765..e15f8132153e 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -577,18 +577,6 @@ zephyr_library_sources_ifdef(CONFIG_MAXIM_DSM_STUB ${SOF_AUDIO_PATH}/smart_amp/maxim_dsm_stub.c ) -if(CONFIG_COMP_MULTIBAND_DRC STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/multiband_drc/llext - ${PROJECT_BINARY_DIR}/multiband_drc_llext) - add_dependencies(app multiband_drc) -elseif(CONFIG_COMP_MULTIBAND_DRC) - zephyr_library_sources_ifdef(CONFIG_COMP_MULTIBAND_DRC - ${SOF_AUDIO_PATH}/multiband_drc/multiband_drc.c - ${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_generic.c - ${SOF_AUDIO_PATH}/multiband_drc/multiband_drc_${ipc_suffix}.c - ) -endif() - if(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/google/llext_rtc ${PROJECT_BINARY_DIR}/google_rtc_audio_processing_llext) From ae9e13003a7b9e0a917efe0f6e430c71671cbc43 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Thu, 20 Mar 2025 12:45:48 +0200 Subject: [PATCH 16/17] cmake/zephyr: unify cmake rules for src/audio/mfcc Adding all source files in a single, giant zephyr/CMakeLists.txt is inconvenient and does not scale. Modify Zephyr rules to use definitions in src/audio/mfcc/ instead. Link: https://github.com/thesofproject/sof/issues/8260 Signed-off-by: Kai Vehmanen --- src/audio/CMakeLists.txt | 6 +++--- src/audio/mfcc/CMakeLists.txt | 7 ++++++- zephyr/CMakeLists.txt | 15 --------------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index feee7805052a..85f3216d4c0f 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -54,6 +54,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) kpb.c ) endif() + if(CONFIG_COMP_MFCC) + add_subdirectory(mfcc) + endif() if(CONFIG_COMP_MIXER) add_subdirectory(mixer) endif() @@ -136,9 +139,6 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD) if(CONFIG_COMP_RTNR) add_subdirectory(rtnr) endif() - if(CONFIG_COMP_MFCC) - add_subdirectory(mfcc) - endif() if(CONFIG_INTEL_ADSP_MIC_PRIVACY) add_subdirectory(mic_privacy_manager) endif() diff --git a/src/audio/mfcc/CMakeLists.txt b/src/audio/mfcc/CMakeLists.txt index c8ed971f2da6..83a34a75e324 100644 --- a/src/audio/mfcc/CMakeLists.txt +++ b/src/audio/mfcc/CMakeLists.txt @@ -1,3 +1,8 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof mfcc.c mfcc_setup.c mfcc_common.c mfcc_generic.c mfcc_hifi4.c mfcc_hifi3.c) +if(CONFIG_COMP_MFCC STREQUAL "m") + add_subdirectory(llext ${PROJECT_BINARY_DIR}/mfcc_llext) + add_dependencies(app mfcc) +else() + add_local_sources(sof mfcc.c mfcc_setup.c mfcc_common.c mfcc_generic.c mfcc_hifi4.c mfcc_hifi3.c) +endif() diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index e15f8132153e..9881de20a2bf 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -666,21 +666,6 @@ elseif(CONFIG_SAMPLE_SMART_AMP) ) endif() -if(CONFIG_COMP_MFCC STREQUAL "m") - add_subdirectory(${SOF_AUDIO_PATH}/mfcc/llext - ${PROJECT_BINARY_DIR}/mfcc_llext) - add_dependencies(app mfcc) -elseif(CONFIG_COMP_MFCC) - zephyr_library_sources_ifdef(CONFIG_COMP_MFCC - ${SOF_AUDIO_PATH}/mfcc/mfcc.c - ${SOF_AUDIO_PATH}/mfcc/mfcc_setup.c - ${SOF_AUDIO_PATH}/mfcc/mfcc_common.c - ${SOF_AUDIO_PATH}/mfcc/mfcc_generic.c - ${SOF_AUDIO_PATH}/mfcc/mfcc_hifi3.c - ${SOF_AUDIO_PATH}/mfcc/mfcc_hifi4.c - ) -endif() - zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_HOTWORD_DETECT ${SOF_AUDIO_PATH}/google/google_hotword_detect.c ) From 7f5548f3f116040d9c44b55fe038771f46d1d819 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Mon, 24 Mar 2025 20:45:31 +0200 Subject: [PATCH 17/17] Revert "math: iir: add an option to build IIR as a module" This reverts commit aaa01e47ffc0ded9e8ae491a9e96c6e65f4e6df9. --- src/math/CMakeLists.txt | 17 ++++++----------- src/math/Kconfig | 9 --------- src/math/iir.toml | 6 ------ src/math/iir_llext/CMakeLists.txt | 22 ---------------------- src/math/iir_llext/iir.c | 17 ----------------- src/math/iir_llext/llext.toml.h | 5 ----- uuid-registry.txt | 1 - 7 files changed, 6 insertions(+), 71 deletions(-) delete mode 100644 src/math/iir.toml delete mode 100644 src/math/iir_llext/CMakeLists.txt delete mode 100644 src/math/iir_llext/iir.c delete mode 100644 src/math/iir_llext/llext.toml.h diff --git a/src/math/CMakeLists.txt b/src/math/CMakeLists.txt index c635d9c917fd..a4381630a061 100644 --- a/src/math/CMakeLists.txt +++ b/src/math/CMakeLists.txt @@ -54,17 +54,12 @@ if(CONFIG_MATH_FFT) add_subdirectory(fft) endif() -if(CONFIG_MATH_IIR STREQUAL "m") - add_subdirectory(iir_llext ${PROJECT_BINARY_DIR}/iir_llext) - add_dependencies(app iir) -elseif(CONFIG_MATH_IIR) - if(CONFIG_MATH_IIR_DF2T) - list(APPEND base_files iir_df2t_generic.c iir_df2t_hifi3.c iir_df2t.c) - endif() - - if(CONFIG_MATH_IIR_DF1) - list(APPEND base_files iir_df1_generic.c iir_df1_hifi3.c iir_df1_hifi4.c iir_df1_hifi5.c iir_df1.c) - endif() +if(CONFIG_MATH_IIR_DF2T) + list(APPEND base_files iir_df2t_generic.c iir_df2t_hifi3.c iir_df2t.c) +endif() + +if(CONFIG_MATH_IIR_DF1) + list(APPEND base_files iir_df1_generic.c iir_df1_hifi3.c iir_df1_hifi4.c iir_df1_hifi5.c iir_df1.c) endif() if(CONFIG_MATH_WINDOW) diff --git a/src/math/Kconfig b/src/math/Kconfig index 191ae7906b7a..b97f87bfe781 100644 --- a/src/math/Kconfig +++ b/src/math/Kconfig @@ -178,16 +178,8 @@ config MATH_FIR filter calculates a convolution of input PCM sample and a configurable impulse response. -config MATH_IIR - tristate "Select IIR filter library build method" - default m if LIBRARY_DEFAULT_MODULAR - default y - help - A helper option for MATH_IIR_DF2T and MATH_IIR_DF1 - config MATH_IIR_DF2T bool "IIR DF2T filter library" - depends on MATH_IIR != "n" default n help Select this to build IIR (Infinite Impulse Response) filter @@ -195,7 +187,6 @@ config MATH_IIR_DF2T config MATH_IIR_DF1 bool "IIR DF1 filter library" - depends on MATH_IIR != "n" default n help Select this to build IIR (Infinite Impulse Response) filter diff --git a/src/math/iir.toml b/src/math/iir.toml deleted file mode 100644 index 145488fcccc9..000000000000 --- a/src/math/iir.toml +++ /dev/null @@ -1,6 +0,0 @@ - [[module.entry]] - name = "IIR" - uuid = "B0CDCD9E-EF8B-404F-8480-0F287FC9D44D" - load_type = "3" - - index = __COUNTER__ diff --git a/src/math/iir_llext/CMakeLists.txt b/src/math/iir_llext/CMakeLists.txt deleted file mode 100644 index 4b3afb6b05e6..000000000000 --- a/src/math/iir_llext/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) 2024 Intel Corporation. -# SPDX-License-Identifier: Apache-2.0 - -if(CONFIG_MATH_IIR_DF1) - set(df1 ../iir_df1.c ../iir_df1_generic.c ../iir_df1_hifi3.c - ../iir_df1_hifi4.c ../iir_df1_hifi5.c) -else() - set(df1 "") -endif() - -if(CONFIG_MATH_IIR_DF2T) - set(df2t ../iir_df2t.c ../iir_df2t_generic.c ../iir_df2t_hifi3.c) -else() - set(df2t "") -endif() - -if(CONFIG_MATH_IIR_DF1 OR CONFIG_MATH_IIR_DF2T) - sof_llext_build("iir" - SOURCES iir.c ${df1} ${df2t} - LIB openmodules - ) -endif() diff --git a/src/math/iir_llext/iir.c b/src/math/iir_llext/iir.c deleted file mode 100644 index 7891bd8fc5b1..000000000000 --- a/src/math/iir_llext/iir.c +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -// -// Copyright(c) 2025 Intel Corporation. - -/* modular: llext dynamic link */ - -#include -#include -#include -#include -#include - -static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_AUX_MANIFEST("IIR", NULL, SOF_REG_UUID(iir)), -}; - -SOF_LLEXT_BUILDINFO; diff --git a/src/math/iir_llext/llext.toml.h b/src/math/iir_llext/llext.toml.h deleted file mode 100644 index 89669daea077..000000000000 --- a/src/math/iir_llext/llext.toml.h +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include "../iir.toml" - -[module] -count = __COUNTER__ diff --git a/uuid-registry.txt b/uuid-registry.txt index 4e0366cbeb11..63fec8351c0f 100644 --- a/uuid-registry.txt +++ b/uuid-registry.txt @@ -84,7 +84,6 @@ b780a0a6-269f-466f-b47723dfa05af758 google_rtc_audio_processing a5dacb0e-88dc-415c-a1b53e8df77f1976 idc_cmd_task b90f5a4e-5537-4375-a1df95485472ff9e idc_task 696ae2bc-2877-11eb-adc10242ac120002 igo_nr -b0cdcd9e-ef8b-404f-84800f287fc9d44d iir fa00558c-d653-4851-a03ab21f125a9524 interrupt 2f520e85-49ba-4284-90d83def24af313b intc_mt8196 be60f97d-78df-4796-a0ee435cb56b720a ipc