Repository: conan-io/conan-center-index

Issue:
[package] soxr/0.1.3: Compilation errors on M1 Mac
### Description

I get some compilation errors when building soxr on newer Mac with M1 processor. It seems to be due to some different compiler flags for that architecture. For x86_64 the compilation works fine.

```
[ 81%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/util32s.c.o
clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util32s.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:43:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: #warning is a language extension [-Wpedantic]
#    warning "building with simd disabled !\n";
     ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: "building with simd disabled !\n"; [-W#warnings]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util32s.c:8:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:58:5: error: implicit declaration of function 'UNINTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:61:5: error: implicit declaration of function 'INTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    INTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:61:5: note: did you mean 'UNINTERLEAVE2'?
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:58:5: note: 'UNINTERLEAVE2' declared here
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:81:5: error: implicit declaration of function 'UNINTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:84:5: error: implicit declaration of function 'INTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    INTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
2 warnings and 4 errors generated.
```

Could maybe be due to missing SIMD support, but Im not an expert on the new M1 Macs:

```
-- Trying SIMD32 C flags: -mfpu=neon-vfpv4 -mcpu=cortex-a7
-- Performing Test DETECT_SIMD32_C_FLAGS
-- Performing Test DETECT_SIMD32_C_FLAGS - Failed
-- Trying SIMD32 C flags: -mfpu=neon       -mfloat-abi=hard
-- Performing Test DETECT_SIMD32_C_FLAGS
-- Performing Test DETECT_SIMD32_C_FLAGS - Success
-- Found SIMD32: -mfpu=neon       -mfloat-abi=hard  
-- Could NOT find SIMD64 (missing: SIMD64_C_FLAGS SIMD64_C_FLAGS) 
-- Could NOT find AVUTIL (missing: AVUTIL_LIBRARIES AVUTIL_INCLUDE_DIRS) 
```


### Package and Environment Details

* Package Name/Version: **soxr/0.1.3**
* Operating System+version: **macOS 12.6 (21G115)**
* Compiler+version: **AppleClang 14.0.0.14000029**
* Conan version: **Conan version 1.54.0**
* Python version: **Python 3.9.6**


### Conan profile

[settings]
os=Macos
arch=armv8
compiler=apple-clang
compiler.version=14
compiler.libcxx=libc++
compiler.cppstd=17
build_type=Release
[options]
[conf]
[build_requires]
[env]

### Steps to reproduce

conan install -r conancenter soxr/0.1.3@ -pr:b=default -pr:h=default --build soxr

### Logs

<details><summary>Click to expand log</summary>

```
Configuration (profile_host):
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=17
compiler.libcxx=libc++
compiler.version=14
os=Macos
[options]
[build_requires]
[env]

Configuration (profile_build):
[settings]
arch=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=17
compiler.libcxx=libc++
compiler.version=14
os=Macos
[options]
[build_requires]
[env]

soxr/0.1.3: Forced build from source
Installing package: soxr/0.1.3
Requirements
    soxr/0.1.3 from 'artifactory' - Cache
Packages
    soxr/0.1.3:40769d02711eed0c2ac2deff5e52f80874affb35 - Build

Installing (downloading, building) binaries...
soxr/0.1.3: Copying sources to build folder
soxr/0.1.3: Building your package in /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35
soxr/0.1.3: Generator cmake created conanbuildinfo.cmake
soxr/0.1.3: Aggregating env generators
soxr/0.1.3: Calling build()
-- The C compiler identification is AppleClang 14.0.0.14000029
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: called by CMake conan helper
-- Conan: called inside local cache
-- Conan: Adjusting output directories
-- Conan: Using cmake global configuration
-- Conan: Adjusting default RPATHs Conan policies
-- Conan: Adjusting language standard
-- Conan: Adjusting fPIC flag (ON)
-- Looking for pow in m
-- Looking for pow in m - found
-- Trying SIMD32 C flags: -mfpu=neon-vfpv4 -mcpu=cortex-a7
-- Performing Test DETECT_SIMD32_C_FLAGS
-- Performing Test DETECT_SIMD32_C_FLAGS - Failed
-- Trying SIMD32 C flags: -mfpu=neon       -mfloat-abi=hard
-- Performing Test DETECT_SIMD32_C_FLAGS
-- Performing Test DETECT_SIMD32_C_FLAGS - Success
-- Found SIMD32: -mfpu=neon       -mfloat-abi=hard  
-- Could NOT find SIMD64 (missing: SIMD64_C_FLAGS SIMD64_C_FLAGS) 
-- Could NOT find AVUTIL (missing: AVUTIL_LIBRARIES AVUTIL_INCLUDE_DIRS) 
-- Looking for lrint
-- Looking for lrint - found
-- Looking for include file fenv.h
-- Looking for include file fenv.h - found
-- Looking for include file stdbool.h
-- Looking for include file stdbool.h - found
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_DATAROOTDIR
    CMAKE_INSTALL_INCLUDEDIR
    CMAKE_INSTALL_LIBDIR
    CMAKE_INSTALL_LIBEXECDIR
    CMAKE_INSTALL_OLDINCLUDEDIR
    CMAKE_INSTALL_SBINDIR


-- Build files have been written to: /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/build_subfolder
[  6%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/soxr.c.o
[ 18%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/dbesi0.c.o
[ 18%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/data-io.c.o
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:246:10: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  static bool cpu_has_simd32(void)
         ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:262:10: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  static bool should_use_simd32(void)
         ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:634:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool separated = !!(p->io_spec.itype & SOXR_SPLIT);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:656:82: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static size_t soxr_output_1ch(soxr_t p, unsigned i, soxr_buf_t dest, size_t len, bool separated)
                                                                                 ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:676:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool separated = !!(p->io_spec.otype & SOXR_SPLIT);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:704:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool was_flushing;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/soxr.c:759:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool flush_requested = false;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
[ 25%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/filter.c.o
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:28:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:31:8: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool UPDATE_FFT_CACHE(int len)
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:28:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:59:33: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static void DONE_WITH_FFT_CACHE(bool is_writer)
                                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:28:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:68:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool is_writer = UPDATE_FFT_CACHE(len);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:28:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:75:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool is_writer = UPDATE_FFT_CACHE(len);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:45:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:31:8: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool UPDATE_FFT_CACHE(int len)
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:45:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:59:33: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static void DONE_WITH_FFT_CACHE(bool is_writer)
                                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:45:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:68:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool is_writer = UPDATE_FFT_CACHE(len);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/filter.c:45:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/fft4g_cache.h:75:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool is_writer = UPDATE_FFT_CACHE(len);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
7 warnings generated.
[ 31%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/fft4g64.c.o
8 warnings generated.
[ 37%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/cr.c.o
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:18:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:104:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       is_input;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:18:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:116:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       use_hi_prec_clock;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:192:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool f_domain_m = abs(3-M) == 1 && Fs <= 1;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:283:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool const maintain_3dB_pt = !!(q_spec->flags & SOXR_MAINTAIN_3DB_PT);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:290:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool upsample=false, rational=false, iOpt=!(r_spec->flags&SOXR_NOSMALLINTOPT);
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:291:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool lq_bits= (q_spec->flags & SOXR_PROMOTE_TO_LQ)? bits <= 16 : bits == 16;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:292:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool lq_Fp0 = (q_spec->flags & SOXR_PROMOTE_TO_LQ)? Fp0<=lq_bw0 : Fp0==lq_bw0;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:498:8: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool stage_process(stage_t * stage, bool flushing)
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:498:44: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool stage_process(stage_t * stage, bool flushing)
                                           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:501:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool done = false;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.c:520:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool done = false;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
11 warnings generated.
[ 43%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/cr32.c.o
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr32.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:104:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       is_input;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr32.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:116:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       use_hi_prec_clock;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
[ 50%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/fft4g32.c.o
[ 56%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/cr64.c.o
2 warnings generated.
[ 62%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/vr32.c.o
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr64.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:104:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       is_input;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr64.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:116:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       use_hi_prec_clock;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/vr32.c:202:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool is_d; /* true: downsampling at x2 rate; false: upsampling at 1x rate. */
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/vr32.c:338:8: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool set_step_step(stream_t * p, double io_ratio, int slew_len)
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/vr32.c:377:8: warning: '_Bool' is a C99 extension [-Wc99-extensions]
static bool do_input_stage(rate_t * p, int stage_num, int sign, int min_stage_num)
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/vr32.c:394:5: warning: '_Bool' is a C99 extension [-Wc99-extensions]
    bool should_be_fast = p->stage_inc;
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
[ 68%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/cr32s.c.o
clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr32s.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:104:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       is_input;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr32s.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr-core.c:15:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/cr.h:116:3: warning: '_Bool' is a C99 extension [-Wc99-extensions]
  bool       use_hi_prec_clock;
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include/stdbool.h:15:14: note: expanded from macro 'bool'
#define bool _Bool
             ^
2 warnings generated.
[ 75%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/pffft32s.c.o
clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft32s.c:5:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft-wrap.c:27:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: #warning is a language extension [-Wpedantic]
#    warning "building with simd disabled !\n";
     ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: "building with simd disabled !\n"; [-W#warnings]
4 warnings generated.
[ 81%] Building C object source_subfolder/src/CMakeFiles/soxr.dir/util32s.c.o
clang: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-mfloat-abi=hard' [-Wunused-command-line-argument]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util32s.c:8:
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:43:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: #warning is a language extension [-Wpedantic]
#    warning "building with simd disabled !\n";
     ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/pffft.c:185:6: warning: "building with simd disabled !\n"; [-W#warnings]
In file included from /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util32s.c:8:
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:58:5: error: implicit declaration of function 'UNINTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:61:5: error: implicit declaration of function 'INTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    INTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:61:5: note: did you mean 'UNINTERLEAVE2'?
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:58:5: note: 'UNINTERLEAVE2' declared here
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:81:5: error: implicit declaration of function 'UNINTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    UNINTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/source_subfolder/src/util-simd.c:84:5: error: implicit declaration of function 'INTERLEAVE2' [-Werror,-Wimplicit-function-declaration]
    INTERLEAVE2(a1r, a1i, a1r, a1i);
    ^
2 warnings and 4 errors generated.
make[2]: *** [source_subfolder/src/CMakeFiles/soxr.dir/util32s.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
2 warnings generated.
2 warnings generated.
make[1]: *** [source_subfolder/src/CMakeFiles/soxr.dir/all] Error 2
make: *** [all] Error 2
soxr/0.1.3: 
soxr/0.1.3: ERROR: Package '40769d02711eed0c2ac2deff5e52f80874affb35' build failed
soxr/0.1.3: WARN: Build folder /Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35
ERROR: soxr/0.1.3: Error in build() method, line 76
        cmake.build()
        ConanException: Error 2 while executing cmake --build '/Users/vagrant/tmp/soxr/.conan/data/soxr/0.1.3/_/_/build/40769d02711eed0c2ac2deff5e52f80874affb35/build_subfolder' '--' '-j3'
```

</details>



Discussion:

Resolving patch:
diff --git a/recipes/soxr/all/conanfile.py b/recipes/soxr/all/conanfile.py
--- a/recipes/soxr/all/conanfile.py
+++ b/recipes/soxr/all/conanfile.py
@@ -1,10 +1,12 @@
-import functools
 import os
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, load, save, rmdir
 from conan.tools.microsoft import msvc_runtime_flag, is_msvc
+from conan.tools.scm import Version
 
 
-required_conan_version = ">=1.45.0"
+required_conan_version = ">=1.53.0"
 
 
 class SoxrConan(ConanFile):
@@ -27,20 +29,9 @@ class SoxrConan(ConanFile):
         "with_openmp": False,
         "with_lsr_bindings": True
     }
-    generators = "cmake"
-
-    @property
-    def _source_subfolder(self):
-        return "source_subfolder"
-
-    @property
-    def _build_subfolder(self):
-        return "build_subfolder"
 
     def export_sources(self):
-        self.copy("CMakeLists.txt")
-        for patch in self.conan_data.get("patches", {}).get(self.version, []):
-            self.copy(patch["patch_file"])
+        export_conandata_patches(self)
 
     def config_options(self):
         if self.settings.os == "Windows":
@@ -48,48 +39,58 @@ def config_options(self):
 
     def configure(self):
         if self.options.shared:
-            del self.options.fPIC
-        del self.settings.compiler.cppstd
-        del self.settings.compiler.libcxx
+            self.options.rm_safe("fPIC")
+        self.settings.rm_safe("compiler.libcxx")
+        self.settings.rm_safe("compiler.cppstd")
+
+    def layout(self):
+        cmake_layout(self, src_folder="src")
 
     def source(self):
-        tools.get(**self.conan_data["sources"][self.version],
-            destination=self._source_subfolder, strip_root=True)
+        get(self, **self.conan_data["sources"][self.version],
+            destination=self.source_folder, strip_root=True)
 
-    @functools.lru_cache(1)
-    def _configure_cmake(self):
-        cmake = CMake(self)
+    def generate(self):
+        tc = CMakeToolchain(self)
+        # Honor BUILD_SHARED_LIBS from conan_toolchain (see https://github.com/conan-io/conan/issues/11840) 
+        tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
+        if Version(self.version) < "3.21":
+            # silence warning
+            tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0115"] = "OLD"
         if is_msvc(self):
-            cmake.definitions["BUILD_SHARED_RUNTIME"] = msvc_runtime_flag(self) == "MD"
-        cmake.definitions["BUILD_TESTS"] = False
-        cmake.definitions["WITH_OPENMP"] = self.options.with_openmp
-        cmake.definitions["WITH_LSR_BINDINGS"] = self.options.with_lsr_bindings
-        cmake.configure(build_folder=self._build_subfolder)
-        return cmake
+            tc.variables["BUILD_SHARED_RUNTIME"] = msvc_runtime_flag(self) == "MD"
+        # Disable SIMD based resample engines for Apple Silicon architecture
+        if self.settings.os == "Macos" and self.settings.arch == "armv8":
+            tc.variables["WITH_CR32S"] = False
+            tc.variables["WITH_CR64S"] = False
+        tc.variables["BUILD_TESTS"] = False
+        tc.variables["WITH_OPENMP"] = self.options.with_openmp
+        tc.variables["WITH_LSR_BINDINGS"] = self.options.with_lsr_bindings
+        tc.generate()
 
     def build(self):
-        for patch in self.conan_data.get("patches", {}).get(self.version, []):
-            tools.patch(**patch)
-        cmake = self._configure_cmake()
+        apply_conandata_patches(self)
+        cmake = CMake(self)
+        cmake.configure()
         cmake.build()
 
     def _extract_pffft_license(self):
-        pffft_c = tools.load(os.path.join(self._source_subfolder, "src", "pffft.c"))
+        pffft_c = load(self, os.path.join(self.source_folder, "src", "pffft.c"))
         license_contents = pffft_c[pffft_c.find("/* Copyright")+3:pffft_c.find("modern CPUs.")+13]
-        tools.save(os.path.join(self.package_folder, "licenses", "LICENSE"), license_contents)
+        save(self, os.path.join(self.package_folder, "licenses", "LICENSE"), license_contents)
 
     def package(self):
-        self.copy("LICENCE", dst="licenses", src=self._source_subfolder)
+        copy(self, "LICENCE", dst="licenses", src=self.source_folder)
         self._extract_pffft_license()
-        cmake = self._configure_cmake()
+        cmake = CMake(self)
         cmake.install()
-        tools.rmdir(os.path.join(self.package_folder, "doc"))
-        tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
-        tools.rmdir(os.path.join(self.package_folder, "share"))
+        rmdir(self, os.path.join(self.package_folder, "doc"))
+        rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+        rmdir(self, os.path.join(self.package_folder, "share"))
 
     def package_info(self):
         # core component
-        self.cpp_info.components["core"].names["pkg_config"] = "soxr"
+        self.cpp_info.components["core"].set_property("pkg_config_name", "soxr")
         self.cpp_info.components["core"].libs = ["soxr"]
         if self.settings.os in ("FreeBSD", "Linux"):
             self.cpp_info.components["core"].system_libs = ["m"]
@@ -108,7 +109,7 @@ def package_info(self):
             self.cpp_info.components["core"].sharedlinkflags = openmp_flags
         # lsr component
         if self.options.with_lsr_bindings:
-            self.cpp_info.components["lsr"].names["pkg_config"] = "soxr-lsr"
+            self.cpp_info.components["lsr"].set_property("pkg_config_name", "soxr-lsr")
             self.cpp_info.components["lsr"].libs = ["soxr-lsr"]
             if self.settings.os == "Windows" and self.options.shared:
                 self.cpp_info.components["lsr"].defines.append("SOXR_DLL")


Test patch:
diff --git a/recipes/soxr/all/test_package/CMakeLists.txt b/recipes/soxr/all/test_package/CMakeLists.txt
--- a/recipes/soxr/all/test_package/CMakeLists.txt
+++ b/recipes/soxr/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
 cmake_minimum_required(VERSION 3.1)
 project(test_package C)
 
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
 find_package(soxr CONFIG REQUIRED)
 
 add_executable(test_package_core test_package_core.c)
diff --git a/recipes/soxr/all/test_package/conanfile.py b/recipes/soxr/all/test_package/conanfile.py
--- a/recipes/soxr/all/test_package/conanfile.py
+++ b/recipes/soxr/all/test_package/conanfile.py
@@ -1,9 +1,35 @@
 import os
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import CMake, cmake_layout
+import yaml
+
 
 class TestPackageConan(ConanFile):
     settings = "os", "compiler", "build_type", "arch"
-    generators = "cmake", "cmake_find_package_multi"
+    generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+    test_type = "explicit"
+
+    _tests_todo = []
+
+    @property
+    def _todos_filename(self):
+        return os.path.join(self.recipe_folder, self.folders.generators, "soxr_test_to_do.yml")
+
+    def requirements(self):
+        self.requires(self.tested_reference_str)
+
+    def generate(self):
+        # note: this is required as self.dependencies is not available in test()
+        self._tests_todo.append("test_package_core")
+        if self.dependencies[self.tested_reference_str].options.with_lsr_bindings:
+            self._tests_todo.append("test_package_lsr")
+
+        with open(self._todos_filename, "w", encoding="utf-8") as file:
+            yaml.dump(self._tests_todo, file)
+
+    def layout(self):
+        cmake_layout(self)
 
     def build(self):
         cmake = CMake(self)
@@ -11,11 +37,8 @@ def build(self):
         cmake.build()
 
     def test(self):
-        if not tools.cross_building(self):
-            # core component
-            bin_path = os.path.join("bin", "test_package_core")
-            self.run(bin_path, run_environment=True)
-            # lsr component
-            if self.options["soxr"].with_lsr_bindings:
-                bin_path = os.path.join("bin", "test_package_lsr")
-                self.run(bin_path, run_environment=True)
+        with open(self._todos_filename, "r", encoding="utf-8") as file:
+            self._tests_todo = yaml.safe_load(file)
+        if can_run(self):
+            for test_name in self._tests_todo:
+                self.run(os.path.join(self.cpp.build.bindirs[0], test_name), env="conanrun")
diff --git a/recipes/soxr/all/test_v1_package/CMakeLists.txt b/recipes/soxr/all/test_v1_package/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/recipes/soxr/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 3.1)
+project(test_package C)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+find_package(soxr CONFIG REQUIRED)
+
+add_executable(test_package_core test_package_core.c)
+target_link_libraries(test_package_core soxr::core)
+
+if(TARGET soxr::lsr)
+    add_executable(test_package_lsr test_package_lsr.c)
+    target_link_libraries(test_package_lsr soxr::lsr)
+endif()
diff --git a/recipes/soxr/all/test_v1_package/conanfile.py b/recipes/soxr/all/test_v1_package/conanfile.py
new file mode 100644
--- /dev/null
+++ b/recipes/soxr/all/test_v1_package/conanfile.py
@@ -0,0 +1,21 @@
+import os
+from conans import ConanFile, CMake, tools
+
+class TestPackageConan(ConanFile):
+    settings = "os", "compiler", "build_type", "arch"
+    generators = "cmake", "cmake_find_package_multi"
+
+    def build(self):
+        cmake = CMake(self)
+        cmake.configure()
+        cmake.build()
+
+    def test(self):
+        if not tools.cross_building(self):
+            # core component
+            bin_path = os.path.join("bin", "test_package_core")
+            self.run(bin_path, run_environment=True)
+            # lsr component
+            if self.options["soxr"].with_lsr_bindings:
+                bin_path = os.path.join("bin", "test_package_lsr")
+                self.run(bin_path, run_environment=True)
diff --git a/recipes/soxr/all/test_v1_package/test_package_core.c b/recipes/soxr/all/test_v1_package/test_package_core.c
new file mode 100644
--- /dev/null
+++ b/recipes/soxr/all/test_v1_package/test_package_core.c
@@ -0,0 +1,7 @@
+#include <soxr.h>
+#include <stdio.h>
+
+int main() {
+    printf("soxr version: %s\n", soxr_version());
+    return 0;
+}
diff --git a/recipes/soxr/all/test_v1_package/test_package_lsr.c b/recipes/soxr/all/test_v1_package/test_package_lsr.c
new file mode 100644
--- /dev/null
+++ b/recipes/soxr/all/test_v1_package/test_package_lsr.c
@@ -0,0 +1,7 @@
+#include <soxr-lsr.h>
+#include <stdio.h>
+
+int main() {
+    printf("soxr-lsr version: %s\n", src_get_version());
+    return 0;
+}