From b8a806582ce112de99e83a0df6f82c5f047146b6 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Thu, 23 Oct 2025 15:54:58 +0200 Subject: [PATCH 1/9] CMake: Change name in generated .pc file Purely cosmetic but brings this closer to the variant meson generates. --- cmake/spatialaudio.pc.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/spatialaudio.pc.cmake b/cmake/spatialaudio.pc.cmake index 754d7c3..af481ec 100644 --- a/cmake/spatialaudio.pc.cmake +++ b/cmake/spatialaudio.pc.cmake @@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ includedir=${prefix}/include -Name: libspatialaudio +Name: spatialaudio Description: Spatial audio rendering library Version: @PROJECT_VERSION@ Libs: -L${libdir} -lspatialaudio @MYSOFA_LIB@ -lm -lz From 653f25030e96f8ff42d76b97934c014473b14f59 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Thu, 23 Oct 2025 16:01:33 +0200 Subject: [PATCH 2/9] meson: Do not include subdir in .pc file This matches what is done in CMake, bringing the .pc files closer together and given we have some quite generic header names that might clash with others, seems like a good idea in this case. --- meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/meson.build b/meson.build index b894bc3..bce371b 100644 --- a/meson.build +++ b/meson.build @@ -42,7 +42,6 @@ pkg_mod = import('pkgconfig') pkg_mod.generate( spatialaudio_lib, description : 'Spatial audio rendering library', - subdirs : 'spatialaudio', ) subdir('tests') From 86c4f5caed6e966224d2b12ff13ce4f11a97aae6 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Tue, 28 Oct 2025 21:40:06 +0100 Subject: [PATCH 3/9] Do not install t_design_5200.h header --- CMakeLists.txt | 1 - include/meson.build | 1 - 2 files changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4025b3e..60ff586 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,6 @@ list(APPEND spatialaudio_headers include/SpeakersBinauralizer.h include/Tools.h include/ObjectPanner.h - include/t_design_5200.h source/kiss_fft/kiss_fft.h source/kiss_fft/kiss_fftr.h include/dsp/IIRFilter.h diff --git a/include/meson.build b/include/meson.build index 8f024a9..361a22e 100644 --- a/include/meson.build +++ b/include/meson.build @@ -55,7 +55,6 @@ spatialaudio_headers = [files( 'ScreenCommon.h', 'SpeakersBinauralizer.h', 'Tools.h', - 't_design_5200.h', '../source/kiss_fft/kiss_fft.h', '../source/kiss_fft/kiss_fftr.h', 'dsp/IIRFilter.h', From 01ce36cf694a5aa4ca8715f14da4d14c07972be1 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Tue, 28 Oct 2025 21:45:36 +0100 Subject: [PATCH 4/9] Do not install MIT HRTF headers Co-Authored-By: Sebastian Ramacher --- CMakeLists.txt | 6 ------ include/meson.build | 6 ------ 2 files changed, 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60ff586..7ec5d06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,12 +108,6 @@ list(APPEND spatialaudio_headers include/hrtf/sofa_hrtf.h include/LoudspeakerLayouts.h include/LoudspeakerLayoutHulls.h - include/mit_hrtf_filter.h - include/mit_hrtf_lib.h - include/normal/mit_hrtf_normal_44100.h - include/normal/mit_hrtf_normal_48000.h - include/normal/mit_hrtf_normal_88200.h - include/normal/mit_hrtf_normal_96000.h include/PointSourcePannerGainCalc.h include/adm/PolarExtent.h include/RegionHandlers.h diff --git a/include/meson.build b/include/meson.build index 361a22e..017b7d1 100644 --- a/include/meson.build +++ b/include/meson.build @@ -42,12 +42,6 @@ spatialaudio_headers = [files( 'LoudspeakerLayouts.h', 'LoudspeakerLayoutHulls.h', 'ObjectPanner.h', - 'mit_hrtf_filter.h', - 'mit_hrtf_lib.h', - 'normal/mit_hrtf_normal_44100.h', - 'normal/mit_hrtf_normal_48000.h', - 'normal/mit_hrtf_normal_88200.h', - 'normal/mit_hrtf_normal_96000.h', 'PointSourcePannerGainCalc.h', 'adm/PolarExtent.h', 'RegionHandlers.h', From aaba20a9624202745f107315a741d4906eef3ca4 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Tue, 28 Oct 2025 22:06:12 +0100 Subject: [PATCH 5/9] Move mit_hrtf to its own subfolder Moves the library sources and headers all together in a subfolder in source, like it is already done with kiss_fft. This makes it clearer that especially the headers are not part of our public API. --- CMakeLists.txt | 2 +- include/meson.build | 1 - source/hrtf/mit_hrtf.cpp | 2 +- source/meson.build | 2 +- {include => source/mit_hrtf}/mit_hrtf_filter.h | 0 source/{ => mit_hrtf}/mit_hrtf_lib.c | 2 +- {include => source/mit_hrtf}/mit_hrtf_lib.h | 0 {include => source/mit_hrtf}/normal/mit_hrtf_normal_44100.h | 0 {include => source/mit_hrtf}/normal/mit_hrtf_normal_48000.h | 0 {include => source/mit_hrtf}/normal/mit_hrtf_normal_88200.h | 0 {include => source/mit_hrtf}/normal/mit_hrtf_normal_96000.h | 0 11 files changed, 4 insertions(+), 5 deletions(-) rename {include => source/mit_hrtf}/mit_hrtf_filter.h (100%) rename source/{ => mit_hrtf}/mit_hrtf_lib.c (97%) rename {include => source/mit_hrtf}/mit_hrtf_lib.h (100%) rename {include => source/mit_hrtf}/normal/mit_hrtf_normal_44100.h (100%) rename {include => source/mit_hrtf}/normal/mit_hrtf_normal_48000.h (100%) rename {include => source/mit_hrtf}/normal/mit_hrtf_normal_88200.h (100%) rename {include => source/mit_hrtf}/normal/mit_hrtf_normal_96000.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ec5d06..bd296d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,7 +36,7 @@ target_sources(spatialaudio source/AmbisonicEncoder.cpp source/AmbisonicMicrophone.cpp source/AmbisonicCommons.cpp - source/mit_hrtf_lib.c + source/mit_hrtf/mit_hrtf_lib.c source/AmbisonicProcessor.cpp source/AmbisonicRotator.cpp source/AmbisonicDecoder.cpp diff --git a/include/meson.build b/include/meson.build index 017b7d1..0e87f45 100644 --- a/include/meson.build +++ b/include/meson.build @@ -64,6 +64,5 @@ spatialaudio_incdirs_private = [ 'adm', 'dsp', 'hrtf', - 'normal', ), ] diff --git a/source/hrtf/mit_hrtf.cpp b/source/hrtf/mit_hrtf.cpp index 5d578d8..0df30f5 100644 --- a/source/hrtf/mit_hrtf.cpp +++ b/source/hrtf/mit_hrtf.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include "../mit_hrtf/mit_hrtf_lib.h" #include diff --git a/source/meson.build b/source/meson.build index 599ca31..ba7d480 100644 --- a/source/meson.build +++ b/source/meson.build @@ -3,7 +3,7 @@ spatialaudio_sources = files( 'AmbisonicEncoder.cpp', 'AmbisonicMicrophone.cpp', 'AmbisonicCommons.cpp', - 'mit_hrtf_lib.c', + 'mit_hrtf/mit_hrtf_lib.c', 'AmbisonicProcessor.cpp', 'AmbisonicRotator.cpp', 'AmbisonicDecoder.cpp', diff --git a/include/mit_hrtf_filter.h b/source/mit_hrtf/mit_hrtf_filter.h similarity index 100% rename from include/mit_hrtf_filter.h rename to source/mit_hrtf/mit_hrtf_filter.h diff --git a/source/mit_hrtf_lib.c b/source/mit_hrtf/mit_hrtf_lib.c similarity index 97% rename from source/mit_hrtf_lib.c rename to source/mit_hrtf/mit_hrtf_lib.c index 4e46061..b93bf45 100644 --- a/source/mit_hrtf_lib.c +++ b/source/mit_hrtf/mit_hrtf_lib.c @@ -16,7 +16,7 @@ #ifdef HAVE_MIT_HRTF -#include "../include/mit_hrtf_lib.h" +#include "mit_hrtf_lib.h" #include "normal/mit_hrtf_normal_44100.h" #include "normal/mit_hrtf_normal_48000.h" #include "normal/mit_hrtf_normal_88200.h" diff --git a/include/mit_hrtf_lib.h b/source/mit_hrtf/mit_hrtf_lib.h similarity index 100% rename from include/mit_hrtf_lib.h rename to source/mit_hrtf/mit_hrtf_lib.h diff --git a/include/normal/mit_hrtf_normal_44100.h b/source/mit_hrtf/normal/mit_hrtf_normal_44100.h similarity index 100% rename from include/normal/mit_hrtf_normal_44100.h rename to source/mit_hrtf/normal/mit_hrtf_normal_44100.h diff --git a/include/normal/mit_hrtf_normal_48000.h b/source/mit_hrtf/normal/mit_hrtf_normal_48000.h similarity index 100% rename from include/normal/mit_hrtf_normal_48000.h rename to source/mit_hrtf/normal/mit_hrtf_normal_48000.h diff --git a/include/normal/mit_hrtf_normal_88200.h b/source/mit_hrtf/normal/mit_hrtf_normal_88200.h similarity index 100% rename from include/normal/mit_hrtf_normal_88200.h rename to source/mit_hrtf/normal/mit_hrtf_normal_88200.h diff --git a/include/normal/mit_hrtf_normal_96000.h b/source/mit_hrtf/normal/mit_hrtf_normal_96000.h similarity index 100% rename from include/normal/mit_hrtf_normal_96000.h rename to source/mit_hrtf/normal/mit_hrtf_normal_96000.h From b14c4b8ee89874efa5d1eaa327569448642beed6 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Tue, 28 Oct 2025 22:54:08 +0100 Subject: [PATCH 6/9] CMake: Require CMake 3.23 or higher This should be available on any recent distro and even if not, is only a build-time constraint so someone could build CMake from source if on some ancient system or use the CMake provided repositories. This is needed to use newer CMake features like target_sources file sets. See: https://cmake.org/cmake/help/latest/command/target_sources.html#file-sets --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd296d6..cf7c960 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.23) # ABI version # Do not forget to increase the major version when breaking ABI! From 816c0f2ae0b2e464ebc7733ab5919a6750cc63e0 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Wed, 29 Oct 2025 00:33:10 +0100 Subject: [PATCH 7/9] Move kiss_fft headers to include folder These headers are right now part of the public API/ABI, so this should be made clear by moving them to the include directory until that changes. They were already installed so this is not a public-facing change. --- CMakeLists.txt | 6 +++--- {source => include}/kiss_fft/kiss_fft.h | 0 {source => include}/kiss_fft/kiss_fftr.h | 0 include/meson.build | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) rename {source => include}/kiss_fft/kiss_fft.h (100%) rename {source => include}/kiss_fft/kiss_fftr.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index cf7c960..e3d138b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,8 +116,8 @@ list(APPEND spatialaudio_headers include/SpeakersBinauralizer.h include/Tools.h include/ObjectPanner.h - source/kiss_fft/kiss_fft.h - source/kiss_fft/kiss_fftr.h + kiss_fft/kiss_fft.h + kiss_fft/kiss_fftr.h include/dsp/IIRFilter.h include/dsp/LinkwitzRileyIIR.h ) @@ -129,8 +129,8 @@ target_include_directories(spatialaudio include/adm include/dsp include/hrtf + include/kiss_fft source - source/kiss_fft ${CMAKE_CURRENT_BINARY_DIR} ) diff --git a/source/kiss_fft/kiss_fft.h b/include/kiss_fft/kiss_fft.h similarity index 100% rename from source/kiss_fft/kiss_fft.h rename to include/kiss_fft/kiss_fft.h diff --git a/source/kiss_fft/kiss_fftr.h b/include/kiss_fft/kiss_fftr.h similarity index 100% rename from source/kiss_fft/kiss_fftr.h rename to include/kiss_fft/kiss_fftr.h diff --git a/include/meson.build b/include/meson.build index 0e87f45..fdf0771 100644 --- a/include/meson.build +++ b/include/meson.build @@ -49,8 +49,8 @@ spatialaudio_headers = [files( 'ScreenCommon.h', 'SpeakersBinauralizer.h', 'Tools.h', - '../source/kiss_fft/kiss_fft.h', - '../source/kiss_fft/kiss_fftr.h', + 'kiss_fft/kiss_fft.h', + 'kiss_fft/kiss_fftr.h', 'dsp/IIRFilter.h', 'dsp/LinkwitzRileyIIR.h', ), config_h] @@ -60,7 +60,7 @@ spatialaudio_incdirs = include_directories('.') spatialaudio_incdirs_private = [ spatialaudio_incdirs, include_directories( - '../source/kiss_fft', + 'kiss_fft', 'adm', 'dsp', 'hrtf', From 089019c5586b70870f331c2ce9f744db481d3d12 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Wed, 29 Oct 2025 01:03:46 +0100 Subject: [PATCH 8/9] Preserve header directory structure on install CMake: Use a file set on the target, not only properly makes CMake aware of the headers, it also sets the include directory properly and preserves the subfolder when installing the file set. Meson: Install headers with preserve_path to preserve subfolders. The includes in the header files were changed also to properly reference the other headers inside the correct subdirectories. --- CMakeLists.txt | 114 ++++++++++++------------ include/AmbisonicBinauralizer.h | 6 +- include/AmbisonicOptimFilters.h | 2 +- include/AmbisonicShelfFilters.h | 2 +- include/Decorrelator.h | 2 +- include/LoudspeakerLayouts.h | 2 +- include/Renderer.h | 6 +- include/Screen.h | 2 +- include/Tests.h | 4 +- include/adm/AllocentricExtent.h | 2 +- include/adm/AllocentricPannerGainCalc.h | 2 +- include/adm/Conversions.h | 4 +- include/adm/DirectSpeakerGainCalc.h | 10 +-- include/adm/GainCalculator.h | 10 +-- include/adm/PolarExtent.h | 8 +- meson.build | 5 +- 16 files changed, 94 insertions(+), 87 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3d138b..a608ee6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,61 +70,65 @@ target_sources(spatialaudio source/dsp/IIRFilter.cpp source/dsp/LinkwitzRileyIIR.cpp source/LoudspeakerLayouts.cpp -) -list(APPEND spatialaudio_headers - include/adm/Conversions.h - include/adm/MappingRules.h - include/adm/CartesianLoudspeakerLayouts.h - include/adm/DirectSpeakerGainCalc.h - include/RendererMetadata.h - include/Renderer.h - include/adm/AllocentricPannerGainCalc.h - include/adm/AllocentricExtent.h - include/AmbisonicAllRAD.h - include/AmbisonicBase.h - include/AmbisonicBinauralizer.h - include/AmbisonicCommons.h - include/AmbisonicDecoder.h - include/AmbisonicDecoderPresets.h - include/AmbisonicEncoderDist.h - include/AmbisonicEncoder.h - include/AmbisonicMicrophone.h - include/AmbisonicProcessor.h - include/AmbisonicPsychoacousticFilters.h - include/AmbisonicRotator.h - include/Ambisonics.h - include/AmbisonicShelfFilters.h - include/AmbisonicOptimFilters.h - include/AmbisonicSource.h - include/AmbisonicSpeaker.h - include/AmbisonicZoomer.h - include/BFormat.h - include/Coordinates.h - include/Decorrelator.h - include/adm/GainCalculator.h - include/GainInterp.h - include/hrtf/hrtf.h - include/hrtf/mit_hrtf.h - include/hrtf/sofa_hrtf.h - include/LoudspeakerLayouts.h - include/LoudspeakerLayoutHulls.h - include/PointSourcePannerGainCalc.h - include/adm/PolarExtent.h - include/RegionHandlers.h - include/Screen.h - include/ScreenCommon.h - include/SpeakersBinauralizer.h - include/Tools.h - include/ObjectPanner.h - kiss_fft/kiss_fft.h - kiss_fft/kiss_fftr.h - include/dsp/IIRFilter.h - include/dsp/LinkwitzRileyIIR.h -) -target_include_directories(spatialaudio + PUBLIC - include + FILE_SET HEADERS + TYPE HEADERS + BASE_DIRS + include + source + FILES + include/adm/Conversions.h + include/adm/MappingRules.h + include/adm/CartesianLoudspeakerLayouts.h + include/adm/DirectSpeakerGainCalc.h + include/RendererMetadata.h + include/Renderer.h + include/adm/AllocentricPannerGainCalc.h + include/adm/AllocentricExtent.h + include/AmbisonicAllRAD.h + include/AmbisonicBase.h + include/AmbisonicBinauralizer.h + include/AmbisonicCommons.h + include/AmbisonicDecoder.h + include/AmbisonicDecoderPresets.h + include/AmbisonicEncoderDist.h + include/AmbisonicEncoder.h + include/AmbisonicMicrophone.h + include/AmbisonicProcessor.h + include/AmbisonicPsychoacousticFilters.h + include/AmbisonicRotator.h + include/Ambisonics.h + include/AmbisonicShelfFilters.h + include/AmbisonicOptimFilters.h + include/AmbisonicSource.h + include/AmbisonicSpeaker.h + include/AmbisonicZoomer.h + include/BFormat.h + include/Coordinates.h + include/Decorrelator.h + include/adm/GainCalculator.h + include/GainInterp.h + include/hrtf/hrtf.h + include/hrtf/mit_hrtf.h + include/hrtf/sofa_hrtf.h + include/LoudspeakerLayouts.h + include/LoudspeakerLayoutHulls.h + include/PointSourcePannerGainCalc.h + include/adm/PolarExtent.h + include/RegionHandlers.h + include/Screen.h + include/ScreenCommon.h + include/SpeakersBinauralizer.h + include/Tools.h + include/ObjectPanner.h + include/kiss_fft/kiss_fft.h + include/kiss_fft/kiss_fftr.h + include/dsp/IIRFilter.h + include/dsp/LinkwitzRileyIIR.h +) +target_include_directories(spatialaudio PRIVATE include/adm include/dsp @@ -157,9 +161,9 @@ configure_file( install(TARGETS spatialaudio LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FILE_SET HEADERS + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/spatialaudio ) -install(FILES ${spatialaudio_headers} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/spatialaudio) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${PROJECT_BINARY_DIR}/config.h diff --git a/include/AmbisonicBinauralizer.h b/include/AmbisonicBinauralizer.h index 4453456..abab8a7 100644 --- a/include/AmbisonicBinauralizer.h +++ b/include/AmbisonicBinauralizer.h @@ -23,10 +23,10 @@ #include "AmbisonicShelfFilters.h" #include "AmbisonicDecoder.h" #include "AmbisonicEncoder.h" -#include "kiss_fftr.h" +#include "kiss_fft/kiss_fftr.h" -#include "mit_hrtf.h" -#include "sofa_hrtf.h" +#include "hrtf/mit_hrtf.h" +#include "hrtf/sofa_hrtf.h" namespace spaudio { diff --git a/include/AmbisonicOptimFilters.h b/include/AmbisonicOptimFilters.h index 4d08b68..325845d 100644 --- a/include/AmbisonicOptimFilters.h +++ b/include/AmbisonicOptimFilters.h @@ -18,7 +18,7 @@ #include "AmbisonicBase.h" #include "BFormat.h" -#include "LinkwitzRileyIIR.h" +#include "dsp/LinkwitzRileyIIR.h" namespace spaudio { diff --git a/include/AmbisonicShelfFilters.h b/include/AmbisonicShelfFilters.h index 52ff6c3..e9f2c47 100644 --- a/include/AmbisonicShelfFilters.h +++ b/include/AmbisonicShelfFilters.h @@ -18,7 +18,7 @@ #include "AmbisonicBase.h" #include "BFormat.h" -#include "kiss_fftr.h" +#include "kiss_fft/kiss_fftr.h" #include "AmbisonicPsychoacousticFilters.h" namespace spaudio { diff --git a/include/Decorrelator.h b/include/Decorrelator.h index 5568ff7..3791571 100644 --- a/include/Decorrelator.h +++ b/include/Decorrelator.h @@ -14,7 +14,7 @@ #include "LoudspeakerLayouts.h" #include "Tools.h" -#include "kiss_fftr.h" +#include "kiss_fft/kiss_fftr.h" namespace spaudio { diff --git a/include/LoudspeakerLayouts.h b/include/LoudspeakerLayouts.h index 4853520..4e2a492 100644 --- a/include/LoudspeakerLayouts.h +++ b/include/LoudspeakerLayouts.h @@ -22,7 +22,7 @@ #include "RendererMetadata.h" #include "Coordinates.h" #include "ScreenCommon.h" -#include "Conversions.h" +#include "adm/Conversions.h" namespace spaudio { diff --git a/include/Renderer.h b/include/Renderer.h index 66e1f44..ba6396e 100644 --- a/include/Renderer.h +++ b/include/Renderer.h @@ -20,11 +20,11 @@ #include "RendererMetadata.h" #include "LoudspeakerLayouts.h" #include "Tools.h" -#include "Conversions.h" +#include "adm/Conversions.h" #include "GainInterp.h" -#include "DirectSpeakerGainCalc.h" +#include "adm/DirectSpeakerGainCalc.h" #include "Decorrelator.h" -#include "GainCalculator.h" +#include "adm/GainCalculator.h" namespace spaudio { diff --git a/include/Screen.h b/include/Screen.h index 543c8e1..928287e 100644 --- a/include/Screen.h +++ b/include/Screen.h @@ -13,7 +13,7 @@ #pragma once -#include "Conversions.h" +#include "adm/Conversions.h" #include "ScreenCommon.h" #include "LoudspeakerLayouts.h" #include "Coordinates.h" diff --git a/include/Tests.h b/include/Tests.h index 04b1e22..7ef3c7c 100644 --- a/include/Tests.h +++ b/include/Tests.h @@ -16,10 +16,10 @@ #include #include #include "LoudspeakerLayouts.h" -#include "LinkwitzRileyIIR.h" +#include "dsp/LinkwitzRileyIIR.h" #include "ObjectPanner.h" #include "Renderer.h" -#include "AllocentricExtent.h" +#include "adm/AllocentricExtent.h" using namespace spaudio; diff --git a/include/adm/AllocentricExtent.h b/include/adm/AllocentricExtent.h index 205fc03..821a098 100644 --- a/include/adm/AllocentricExtent.h +++ b/include/adm/AllocentricExtent.h @@ -13,7 +13,7 @@ #pragma once -#include "LoudspeakerLayouts.h" +#include "../LoudspeakerLayouts.h" #include "AllocentricPannerGainCalc.h" namespace spaudio { diff --git a/include/adm/AllocentricPannerGainCalc.h b/include/adm/AllocentricPannerGainCalc.h index 2e12637..8307ed9 100644 --- a/include/adm/AllocentricPannerGainCalc.h +++ b/include/adm/AllocentricPannerGainCalc.h @@ -13,7 +13,7 @@ #pragma once -#include "LoudspeakerLayouts.h" +#include "../LoudspeakerLayouts.h" namespace spaudio { namespace adm { diff --git a/include/adm/Conversions.h b/include/adm/Conversions.h index 1525e70..0581794 100644 --- a/include/adm/Conversions.h +++ b/include/adm/Conversions.h @@ -13,8 +13,8 @@ #pragma once -#include "Tools.h" -#include "RendererMetadata.h" +#include "../Tools.h" +#include "../RendererMetadata.h" namespace spaudio { namespace adm { diff --git a/include/adm/DirectSpeakerGainCalc.h b/include/adm/DirectSpeakerGainCalc.h index c4dbf94..651a8de 100644 --- a/include/adm/DirectSpeakerGainCalc.h +++ b/include/adm/DirectSpeakerGainCalc.h @@ -14,12 +14,12 @@ #pragma once -#include "RendererMetadata.h" -#include "LoudspeakerLayouts.h" -#include "Tools.h" +#include "../RendererMetadata.h" +#include "../LoudspeakerLayouts.h" +#include "../Tools.h" #include "MappingRules.h" -#include "PointSourcePannerGainCalc.h" -#include "Screen.h" +#include "../PointSourcePannerGainCalc.h" +#include "../Screen.h" namespace spaudio { namespace adm { diff --git a/include/adm/GainCalculator.h b/include/adm/GainCalculator.h index 1d4635f..e18822f 100644 --- a/include/adm/GainCalculator.h +++ b/include/adm/GainCalculator.h @@ -12,13 +12,13 @@ #pragma once -#include "Coordinates.h" -#include "Tools.h" -#include "RendererMetadata.h" +#include "../Coordinates.h" +#include "../Tools.h" +#include "../RendererMetadata.h" #include "PolarExtent.h" #include "AllocentricExtent.h" -#include "AmbisonicEncoder.h" -#include "Screen.h" +#include "../AmbisonicEncoder.h" +#include "../Screen.h" namespace spaudio { namespace adm { diff --git a/include/adm/PolarExtent.h b/include/adm/PolarExtent.h index aa89327..d29cab2 100644 --- a/include/adm/PolarExtent.h +++ b/include/adm/PolarExtent.h @@ -12,10 +12,10 @@ #pragma once -#include "Coordinates.h" -#include "Tools.h" -#include "PointSourcePannerGainCalc.h" -#include "AmbisonicSource.h" +#include "../Coordinates.h" +#include "../Tools.h" +#include "../PointSourcePannerGainCalc.h" +#include "../AmbisonicSource.h" namespace spaudio { namespace adm { diff --git a/meson.build b/meson.build index bce371b..466b4c2 100644 --- a/meson.build +++ b/meson.build @@ -36,7 +36,10 @@ libspatialaudio_dep = declare_dependency( meson.override_dependency('libspatialaudio', libspatialaudio_dep) # Make this library properly installable -install_headers(spatialaudio_headers, subdir : 'spatialaudio') +install_headers(spatialaudio_headers, + subdir : 'spatialaudio', + preserve_path : true, +) pkg_mod = import('pkgconfig') pkg_mod.generate( From 753a2ce7b1750418c56859d85e7b094dafc84100 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Wed, 29 Oct 2025 02:15:31 +0100 Subject: [PATCH 9/9] Do not add header subdirs to include paths When building the library, do not add the subdirs to the include paths, this brings things closer to how the headers are actually used by library users as well. --- CMakeLists.txt | 5 ----- include/meson.build | 10 ---------- meson.build | 2 +- source/adm/AllocentricExtent.cpp | 4 ++-- source/adm/AllocentricPannerGainCalc.cpp | 4 ++-- source/adm/DirectSpeakerGainCalc.cpp | 2 +- source/adm/GainCalculator.cpp | 4 ++-- source/adm/PolarExtent.cpp | 2 +- source/dsp/IIRFilter.cpp | 2 +- source/dsp/LinkwitzRileyIIR.cpp | 2 +- source/hrtf/mit_hrtf.cpp | 2 +- source/hrtf/sofa_hrtf.cpp | 2 +- source/kiss_fft/_kiss_fft_guts.h | 2 +- source/kiss_fft/kiss_fftr.c | 2 +- source/meson.build | 2 +- 15 files changed, 16 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a608ee6..e9e9d27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,11 +130,6 @@ target_sources(spatialaudio target_include_directories(spatialaudio PRIVATE - include/adm - include/dsp - include/hrtf - include/kiss_fft - source ${CMAKE_CURRENT_BINARY_DIR} ) diff --git a/include/meson.build b/include/meson.build index fdf0771..a95cfdd 100644 --- a/include/meson.build +++ b/include/meson.build @@ -56,13 +56,3 @@ spatialaudio_headers = [files( ), config_h] spatialaudio_incdirs = include_directories('.') - -spatialaudio_incdirs_private = [ - spatialaudio_incdirs, - include_directories( - 'kiss_fft', - 'adm', - 'dsp', - 'hrtf', - ), -] diff --git a/meson.build b/meson.build index 466b4c2..1ef36e2 100644 --- a/meson.build +++ b/meson.build @@ -29,7 +29,7 @@ subdir('source') # Make the library usable as a Meson subproject. libspatialaudio_dep = declare_dependency( - include_directories : spatialaudio_incdirs_private, + include_directories : spatialaudio_incdirs, dependencies : dependencies, link_with : spatialaudio_lib, ) diff --git a/source/adm/AllocentricExtent.cpp b/source/adm/AllocentricExtent.cpp index 0f6be70..eadcc30 100644 --- a/source/adm/AllocentricExtent.cpp +++ b/source/adm/AllocentricExtent.cpp @@ -12,8 +12,8 @@ /*############################################################################*/ -#include "AllocentricExtent.h" -#include "CartesianLoudspeakerLayouts.h" +#include "adm/AllocentricExtent.h" +#include "adm/CartesianLoudspeakerLayouts.h" #include namespace spaudio { diff --git a/source/adm/AllocentricPannerGainCalc.cpp b/source/adm/AllocentricPannerGainCalc.cpp index f447281..7b35628 100644 --- a/source/adm/AllocentricPannerGainCalc.cpp +++ b/source/adm/AllocentricPannerGainCalc.cpp @@ -12,9 +12,9 @@ /*############################################################################*/ -#include "AllocentricPannerGainCalc.h" +#include "adm/AllocentricPannerGainCalc.h" -#include "CartesianLoudspeakerLayouts.h" +#include "adm/CartesianLoudspeakerLayouts.h" namespace spaudio { namespace adm { diff --git a/source/adm/DirectSpeakerGainCalc.cpp b/source/adm/DirectSpeakerGainCalc.cpp index 857dcd8..efde4d3 100644 --- a/source/adm/DirectSpeakerGainCalc.cpp +++ b/source/adm/DirectSpeakerGainCalc.cpp @@ -12,7 +12,7 @@ /*# #*/ /*############################################################################*/ -#include "DirectSpeakerGainCalc.h" +#include "adm/DirectSpeakerGainCalc.h" #include #include diff --git a/source/adm/GainCalculator.cpp b/source/adm/GainCalculator.cpp index 637ace9..80fbb50 100644 --- a/source/adm/GainCalculator.cpp +++ b/source/adm/GainCalculator.cpp @@ -10,9 +10,9 @@ /*# #*/ /*############################################################################*/ -#include "GainCalculator.h" +#include "adm/GainCalculator.h" -#include "CartesianLoudspeakerLayouts.h" +#include "adm/CartesianLoudspeakerLayouts.h" #include namespace spaudio { diff --git a/source/adm/PolarExtent.cpp b/source/adm/PolarExtent.cpp index 83e0f1e..5108a6b 100644 --- a/source/adm/PolarExtent.cpp +++ b/source/adm/PolarExtent.cpp @@ -10,7 +10,7 @@ /*# #*/ /*############################################################################*/ -#include "PolarExtent.h" +#include "adm/PolarExtent.h" namespace spaudio { namespace adm { diff --git a/source/dsp/IIRFilter.cpp b/source/dsp/IIRFilter.cpp index a1e7566..9156fec 100644 --- a/source/dsp/IIRFilter.cpp +++ b/source/dsp/IIRFilter.cpp @@ -11,7 +11,7 @@ /*# #*/ /*############################################################################*/ -#include "IIRFilter.h" +#include "dsp/IIRFilter.h" #include "Tools.h" // for M_PI namespace spaudio { diff --git a/source/dsp/LinkwitzRileyIIR.cpp b/source/dsp/LinkwitzRileyIIR.cpp index 06c2de3..953bfaa 100644 --- a/source/dsp/LinkwitzRileyIIR.cpp +++ b/source/dsp/LinkwitzRileyIIR.cpp @@ -11,7 +11,7 @@ /*# #*/ /*############################################################################*/ -#include "LinkwitzRileyIIR.h" +#include "dsp/LinkwitzRileyIIR.h" #include namespace spaudio { diff --git a/source/hrtf/mit_hrtf.cpp b/source/hrtf/mit_hrtf.cpp index 0df30f5..b06b85f 100644 --- a/source/hrtf/mit_hrtf.cpp +++ b/source/hrtf/mit_hrtf.cpp @@ -4,7 +4,7 @@ #include -#include +#include "hrtf/mit_hrtf.h" #include "../mit_hrtf/mit_hrtf_lib.h" #include diff --git a/source/hrtf/sofa_hrtf.cpp b/source/hrtf/sofa_hrtf.cpp index 6b19328..bbd9ac8 100644 --- a/source/hrtf/sofa_hrtf.cpp +++ b/source/hrtf/sofa_hrtf.cpp @@ -1,7 +1,7 @@ #include -#include +#include "hrtf/sofa_hrtf.h" #ifdef HAVE_MYSOFA diff --git a/source/kiss_fft/_kiss_fft_guts.h b/source/kiss_fft/_kiss_fft_guts.h index 6158feb..9ff4a0c 100644 --- a/source/kiss_fft/_kiss_fft_guts.h +++ b/source/kiss_fft/_kiss_fft_guts.h @@ -16,7 +16,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND defines kiss_fft_scalar as either short or a float type and defines typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */ -#include "kiss_fft.h" +#include "kiss_fft/kiss_fft.h" #include #define MAXFACTORS 32 diff --git a/source/kiss_fft/kiss_fftr.c b/source/kiss_fft/kiss_fftr.c index 302f1cd..4fbcc07 100644 --- a/source/kiss_fft/kiss_fftr.c +++ b/source/kiss_fft/kiss_fftr.c @@ -12,7 +12,7 @@ Redistribution and use in source and binary forms, with or without modification, THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "kiss_fftr.h" +#include "kiss_fft/kiss_fftr.h" #include "_kiss_fft_guts.h" struct kiss_fftr_state{ diff --git a/source/meson.build b/source/meson.build index ba7d480..0726279 100644 --- a/source/meson.build +++ b/source/meson.build @@ -44,6 +44,6 @@ spatialaudio_lib = library( spatialaudio_sources, install : true, dependencies : dependencies, - include_directories : spatialaudio_incdirs_private, + include_directories : spatialaudio_incdirs, version : spatialaudio_lib_version, )