From 2bfdd7aad4174227d0856120e8ee31a8885edf11 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 17 Nov 2023 19:13:22 +0000 Subject: [PATCH 1/4] zephyr/cmake: remove now unused SOF_IPC_PATH variable Fixes commit 1bd9e0d2c7a8 ("cmake/zephyr: decentralize src/ipc/") Signed-off-by: Marc Herbert --- zephyr/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index b4d729bada78..621d9782f9cb 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -48,16 +48,17 @@ zephyr_interface_library_named(SOF) # SOF source paths. cmake_path(SET sof_top_dir NORMALIZE "${CMAKE_CURRENT_SOURCE_DIR}/..") set(SOF_SRC_PATH "${sof_top_dir}/src") + set(SOF_PLATFORM_PATH "${SOF_SRC_PATH}/platform") set(SOF_AUDIO_PATH "${SOF_SRC_PATH}/audio") set(SOF_AUDIO_MODULES_PATH "${SOF_SRC_PATH}/audio/module_adapter/module") set(SOF_SAMPLES_PATH "${SOF_SRC_PATH}/samples") set(SOF_LIB_PATH "${SOF_SRC_PATH}/lib") set(SOF_DRIVERS_PATH "${SOF_SRC_PATH}/drivers") -set(SOF_IPC_PATH "${SOF_SRC_PATH}/ipc") set(SOF_DEBUG_PATH "${SOF_SRC_PATH}/debug") set(SOF_MATH_PATH "${SOF_SRC_PATH}/math") set(SOF_TRACE_PATH "${SOF_SRC_PATH}/trace") + set(RIMAGE_TOP ${sof_top_dir}/tools/rimage) # Save path to rimage configuration files in cmake cache for later use by From 8991d7ffda6c83a382d8368d07808b790b0456b7 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 17 Nov 2023 20:50:23 +0000 Subject: [PATCH 2/4] cmake: a few new add_local_sources[_ifdef]() compatibility macros For reducing CMake duplication and centralization, see #8260 Not used yet. Signed-off-by: Marc Herbert --- scripts/cmake/misc.cmake | 6 ++++++ zephyr/CMakeLists.txt | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/scripts/cmake/misc.cmake b/scripts/cmake/misc.cmake index ee794780cd09..36976c119b9d 100644 --- a/scripts/cmake/misc.cmake +++ b/scripts/cmake/misc.cmake @@ -49,6 +49,12 @@ macro(is_zephyr ret) endif() endmacro() +macro(add_local_sources_ifdef condition target) + if(${condition}) + add_local_sources(${target} ${ARGN}) + endif() +endmacro() + # Adds sources to target like target_sources, but assumes that # paths are relative to subdirectory. # Works like: diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 621d9782f9cb..008d01650da9 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -128,6 +128,20 @@ macro(is_zephyr ret) endif() endmacro() +# Wrappers for re-using existing, XTOS CMake files. Do NOT use in Zephyr-specific code. +macro(add_local_sources target) + if (NOT "${target}" STREQUAL "sof") + message(FATAL_ERROR "add_local_sources() target is not 'sof'") + endif() + zephyr_library_sources(${ARGN}) +endmacro() +macro(add_local_sources_ifdef condition target) + if (NOT "${target}" STREQUAL "sof") + message(FATAL_ERROR "add_local_sources_ifdef() target is not 'sof'") + endif() + zephyr_library_sources_ifdef(${condition} ${ARGN}) +endmacro() + add_subdirectory(../src/init/ init_unused_install/) add_subdirectory(../src/ipc/ ipc_unused_install/) From db7854c4d2134f2d835865f24759c4c6be3be897 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 17 Nov 2023 22:23:59 +0000 Subject: [PATCH 3/4] math/cmake: use new macro add_local_sources_ifdef() This makes the code shorter and will help with #8260 Zero functional change. Do not use it when Zephyr use is not conditional. Signed-off-by: Marc Herbert --- src/math/CMakeLists.txt | 38 +++++++++----------------------- src/math/auditory/CMakeLists.txt | 8 ++----- src/math/fft/CMakeLists.txt | 8 ++----- 3 files changed, 15 insertions(+), 39 deletions(-) diff --git a/src/math/CMakeLists.txt b/src/math/CMakeLists.txt index 899810544864..afbc4718fa59 100644 --- a/src/math/CMakeLists.txt +++ b/src/math/CMakeLists.txt @@ -11,49 +11,33 @@ if(CONFIG_CORDIC_FIXED) add_local_sources(sof trig.c) endif() -if(CONFIG_SQRT_FIXED) - add_local_sources(sof sqrt_int16.c) -endif() +add_local_sources_ifdef(CONFIG_SQRT_FIXED sof sqrt_int16.c) -if(CONFIG_MATH_EXP) - add_local_sources(sof exp_fcn.c exp_fcn_hifi.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_EXP sof exp_fcn.c exp_fcn_hifi.c) if(CONFIG_MATH_DECIBELS) add_local_sources(sof decibels.c) endif() -if(CONFIG_NATURAL_LOGARITHM_FIXED) - add_local_sources(sof log_e.c) -endif() +add_local_sources_ifdef(CONFIG_NATURAL_LOGARITHM_FIXED sof log_e.c) -if(CONFIG_COMMON_LOGARITHM_FIXED) - add_local_sources(sof log_10.c) -endif() +add_local_sources_ifdef(CONFIG_COMMON_LOGARITHM_FIXED sof log_10.c) -if(CONFIG_POWER_FIXED) - add_local_sources(sof power.c) -endif() +add_local_sources_ifdef(CONFIG_POWER_FIXED sof power.c) -if(CONFIG_BINARY_LOGARITHM_FIXED) - add_local_sources(sof base2log.c) -endif() +add_local_sources_ifdef(CONFIG_BINARY_LOGARITHM_FIXED sof base2log.c) -if(CONFIG_MATH_FIR) - add_local_sources(sof fir_generic.c fir_hifi2ep.c fir_hifi3.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_FIR sof fir_generic.c fir_hifi2ep.c fir_hifi3.c) if(CONFIG_MATH_FFT) add_subdirectory(fft) endif() -if(CONFIG_MATH_IIR_DF2T) - add_local_sources(sof iir_df2t_generic.c iir_df2t_hifi3.c iir_df2t.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_IIR_DF2T sof + iir_df2t_generic.c iir_df2t_hifi3.c iir_df2t.c) -if(CONFIG_MATH_IIR_DF1) - add_local_sources(sof iir_df1_generic.c iir_df1_hifi3.c iir_df1.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_IIR_DF1 sof + iir_df1_generic.c iir_df1_hifi3.c iir_df1.c) if(CONFIG_MATH_WINDOW) add_local_sources(sof window.c) diff --git a/src/math/auditory/CMakeLists.txt b/src/math/auditory/CMakeLists.txt index c94aed430040..2983e1eb4483 100644 --- a/src/math/auditory/CMakeLists.txt +++ b/src/math/auditory/CMakeLists.txt @@ -2,10 +2,6 @@ add_local_sources(sof auditory.c) -if(CONFIG_MATH_16BIT_MEL_FILTERBANK) - add_local_sources(sof mel_filterbank_16.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_16BIT_MEL_FILTERBANK sof mel_filterbank_16.c) -if(CONFIG_MATH_32BIT_MEL_FILTERBANK) - add_local_sources(sof mel_filterbank_32.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_32BIT_MEL_FILTERBANK sof mel_filterbank_32.c) diff --git a/src/math/fft/CMakeLists.txt b/src/math/fft/CMakeLists.txt index e196f54fa0e9..8d422b93c5b1 100644 --- a/src/math/fft/CMakeLists.txt +++ b/src/math/fft/CMakeLists.txt @@ -2,10 +2,6 @@ add_local_sources(sof fft_common.c) -if(CONFIG_MATH_16BIT_FFT) - add_local_sources(sof fft_16.c fft_16_hifi3.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_16BIT_FFT sof fft_16.c fft_16_hifi3.c) -if(CONFIG_MATH_32BIT_FFT) - add_local_sources(sof fft_32.c fft_32_hifi3.c) -endif() +add_local_sources_ifdef(CONFIG_MATH_32BIT_FFT sof fft_32.c fft_32_hifi3.c) From 2260c2d6379aff038c64c26bef8036177cd9b09a Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 17 Nov 2023 23:09:13 +0000 Subject: [PATCH 4/4] zephyr/cmake: move math/*.c files to now common math/CMakeLists.txt CMake decentralization per #8260 Signed-off-by: Marc Herbert --- src/math/CMakeLists.txt | 18 +++++++++++++++--- zephyr/CMakeLists.txt | 31 +------------------------------ 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/src/math/CMakeLists.txt b/src/math/CMakeLists.txt index afbc4718fa59..4b6e806fbee1 100644 --- a/src/math/CMakeLists.txt +++ b/src/math/CMakeLists.txt @@ -5,9 +5,11 @@ if(BUILD_LIBRARY) return() endif() +is_zephyr(it_is_zephyr) + add_local_sources(sof numbers.c) -if(CONFIG_CORDIC_FIXED) +if(CONFIG_CORDIC_FIXED OR it_is_zephyr) add_local_sources(sof trig.c) endif() @@ -15,10 +17,12 @@ add_local_sources_ifdef(CONFIG_SQRT_FIXED sof sqrt_int16.c) add_local_sources_ifdef(CONFIG_MATH_EXP sof exp_fcn.c exp_fcn_hifi.c) -if(CONFIG_MATH_DECIBELS) +if(CONFIG_MATH_DECIBELS OR it_is_zephyr) add_local_sources(sof decibels.c) endif() +# Never used with Zephyr. +if(NOT it_is_zephyr) add_local_sources_ifdef(CONFIG_NATURAL_LOGARITHM_FIXED sof log_e.c) add_local_sources_ifdef(CONFIG_COMMON_LOGARITHM_FIXED sof log_10.c) @@ -26,10 +30,16 @@ add_local_sources_ifdef(CONFIG_COMMON_LOGARITHM_FIXED sof log_10.c) add_local_sources_ifdef(CONFIG_POWER_FIXED sof power.c) add_local_sources_ifdef(CONFIG_BINARY_LOGARITHM_FIXED sof base2log.c) +endif() +if(it_is_zephyr) +add_local_sources_ifdef(CONFIG_COMP_FIR sof fir_generic.c fir_hifi2ep.c fir_hifi3.c) +else() add_local_sources_ifdef(CONFIG_MATH_FIR sof fir_generic.c fir_hifi2ep.c fir_hifi3.c) +endif() -if(CONFIG_MATH_FFT) +# Never used with Zephyr. +if(CONFIG_MATH_FFT AND NOT it_is_zephyr) add_subdirectory(fft) endif() @@ -39,6 +49,7 @@ add_local_sources_ifdef(CONFIG_MATH_IIR_DF2T sof add_local_sources_ifdef(CONFIG_MATH_IIR_DF1 sof iir_df1_generic.c iir_df1_hifi3.c iir_df1.c) +if(NOT it_is_zephyr) if(CONFIG_MATH_WINDOW) add_local_sources(sof window.c) endif() @@ -54,3 +65,4 @@ endif() if(CONFIG_MATH_DCT) add_local_sources(sof dct.c) endif() +endif() # not Zephyr diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 008d01650da9..d23b7166be70 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -56,7 +56,6 @@ set(SOF_SAMPLES_PATH "${SOF_SRC_PATH}/samples") set(SOF_LIB_PATH "${SOF_SRC_PATH}/lib") set(SOF_DRIVERS_PATH "${SOF_SRC_PATH}/drivers") set(SOF_DEBUG_PATH "${SOF_SRC_PATH}/debug") -set(SOF_MATH_PATH "${SOF_SRC_PATH}/math") set(SOF_TRACE_PATH "${SOF_SRC_PATH}/trace") set(RIMAGE_TOP ${sof_top_dir}/tools/rimage) @@ -144,6 +143,7 @@ endmacro() add_subdirectory(../src/init/ init_unused_install/) add_subdirectory(../src/ipc/ ipc_unused_install/) +add_subdirectory(../src/math/ math_unused_install/) @@ -364,11 +364,6 @@ zephyr_include_directories(${SOF_PLATFORM_PATH}/${PLATFORM}/include) # Commented files will be added/removed as integration dictates. zephyr_library_sources( - # SOF math utilities - ${SOF_MATH_PATH}/decibels.c - ${SOF_MATH_PATH}/numbers.c - ${SOF_MATH_PATH}/trig.c - # SOF library - parts to transition to Zephyr over time ${SOF_LIB_PATH}/clk.c ${SOF_LIB_PATH}/notifier.c @@ -456,9 +451,6 @@ zephyr_library_sources_ifdef(CONFIG_COMP_FIR ${SOF_AUDIO_PATH}/eq_fir/eq_fir_hifi2ep.c ${SOF_AUDIO_PATH}/eq_fir/eq_fir_generic.c ${SOF_AUDIO_PATH}/eq_fir/eq_fir.c - ${SOF_MATH_PATH}/fir_generic.c - ${SOF_MATH_PATH}/fir_hifi2ep.c - ${SOF_MATH_PATH}/fir_hifi3.c ) if(CONFIG_IPC_MAJOR_3) @@ -483,18 +475,6 @@ elseif(CONFIG_IPC_MAJOR_4) ) endif() -zephyr_library_sources_ifdef(CONFIG_MATH_IIR_DF1 - ${SOF_MATH_PATH}/iir_df1_generic.c - ${SOF_MATH_PATH}/iir_df1_hifi3.c - ${SOF_MATH_PATH}/iir_df1.c -) - -zephyr_library_sources_ifdef(CONFIG_MATH_IIR_DF2T - ${SOF_MATH_PATH}/iir_df2t_generic.c - ${SOF_MATH_PATH}/iir_df2t_hifi3.c - ${SOF_MATH_PATH}/iir_df2t.c -) - zephyr_library_sources_ifdef(CONFIG_COMP_ASRC ${SOF_AUDIO_PATH}/asrc/asrc.c ${SOF_AUDIO_PATH}/asrc/asrc_farrow_hifi3.c @@ -756,15 +736,6 @@ zephyr_library_sources_ifdef(CONFIG_COMP_TDFB ${SOF_AUDIO_PATH}/tdfb/tdfb_hifi3.c ) -zephyr_library_sources_ifdef(CONFIG_SQRT_FIXED - ${SOF_MATH_PATH}/sqrt_int16.c -) - -zephyr_library_sources_ifdef(CONFIG_MATH_EXP - ${SOF_MATH_PATH}/exp_fcn.c - ${SOF_MATH_PATH}/exp_fcn_hifi.c -) - 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