From 037ef821daeb028882c8e73edb198dc2eb02758f Mon Sep 17 00:00:00 2001 From: JoergAtGithub <64457745+JoergAtGithub@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:00:50 +0200 Subject: [PATCH] [rubberband] Update to 3.2.1 and use recommended sleef dependecy where supported (#31732) * Select fastest available FFT library depending on the platform * Update to rubberband 3.2.1 * Also added arm64 in the portfile.cmake condition to match arm in the vcpkg.json * Use FFTW backend on x86_windows due to Microsoft Visual Studio bug --- ports/rubberband/portfile.cmake | 13 +++++++++++-- ports/rubberband/vcpkg.json | 11 +++++++++-- versions/baseline.json | 2 +- versions/r-/rubberband.json | 5 +++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/ports/rubberband/portfile.cmake b/ports/rubberband/portfile.cmake index 53b0b38fff..524ccda086 100644 --- a/ports/rubberband/portfile.cmake +++ b/ports/rubberband/portfile.cmake @@ -2,7 +2,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO breakfastquay/rubberband REF "v${VERSION}" - SHA512 953d705e4a69ed40732644b8039dae02ddf596216e484ce8625fdde796e0de35fe6ac6c4f180eabc457c98b63c3fba212afa74b731eac570bea1902b667f506f + SHA512 811a8dbf05fbee3e4631b49fee9fd0e23ea750ac24a9a16f20e6a7ea07e683783a9edf980c43e732b64c229db29ade3575938c4e6f9db8c4255b220eb30d9dcc HEAD_REF default ) @@ -13,10 +13,19 @@ else() set(CLI_FEATURE disabled) endif() +# Select fastest available FFT library according https://github.com/breakfastquay/rubberband/blob/default/COMPILING.md#fft-libraries-supported +if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) + set(FFT_LIB "fftw") +elseif(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(FFT_LIB "fftw") +else() + set(FFT_LIB "sleef") +endif() + vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS - -Dfft=fftw # 'auto', 'builtin', 'kissfft', 'fftw', sleef', 'vdsp', 'ipp' 'FFT library to use. The default (auto) will use vDSP if available, the builtin implementation otherwise.') + -Dfft=${FFT_LIB} # 'auto', 'builtin', 'kissfft', 'fftw', sleef', 'vdsp', 'ipp' 'FFT library to use. The default (auto) will use vDSP if available, the builtin implementation otherwise.') -Dresampler=libsamplerate # 'auto', 'builtin', 'libsamplerate', 'speex', 'libspeexdsp', 'ipp' 'Resampler library to use. The default (auto) simply uses the builtin implementation.' -Dipp_path= # 'Path to Intel IPP libraries, if selected for any of the other options.' -Dextra_include_dirs= # 'Additional local header directories to search for dependencies.' diff --git a/ports/rubberband/vcpkg.json b/ports/rubberband/vcpkg.json index 7b81655296..f5a571f48f 100644 --- a/ports/rubberband/vcpkg.json +++ b/ports/rubberband/vcpkg.json @@ -1,13 +1,20 @@ { "name": "rubberband", - "version": "3.2.0", + "version": "3.2.1", "description": "A high quality software library for audio time-stretching and pitch-shifting.", "homepage": "https://www.breakfastquay.com/rubberband/", "license": "GPL-2.0-or-later", "supports": "!uwp & !(windows & static)", "dependencies": [ - "fftw3", + { + "name": "fftw3", + "platform": "(arm & windows) | (x86 & windows) | (arm64 & osx)" + }, "libsamplerate", + { + "name": "sleef", + "platform": "!(arm & windows) & !(x86 & windows) & !(arm64 & osx)" + }, { "name": "vcpkg-tool-meson", "host": true diff --git a/versions/baseline.json b/versions/baseline.json index fffbd7cdca..d9f4adc1c9 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7213,7 +7213,7 @@ "port-version": 0 }, "rubberband": { - "baseline": "3.2.0", + "baseline": "3.2.1", "port-version": 0 }, "rxcpp": { diff --git a/versions/r-/rubberband.json b/versions/r-/rubberband.json index f682f9dd35..b4460f4ca5 100644 --- a/versions/r-/rubberband.json +++ b/versions/r-/rubberband.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "66dc21d5c29b7406cf1408081b8d99d6df217d4b", + "version": "3.2.1", + "port-version": 0 + }, { "git-tree": "2cdedb774d373326dd7b2f2d138280653f97c89b", "version": "3.2.0",