pothosware / SoapyAudio

Soapy SDR plugin for Audio devices
https://github.com/pothosware/SoapyAudio/wiki
MIT License
19 stars 3 forks source link

Support for rtaudio 6 #21

Open dvzrv opened 11 months ago

dvzrv commented 11 months ago

Hi! I'm currently trying to rebuild this project against rtaudio 6 on Arch Linux. Unfortunately, this currently fails:

-- The CXX compiler identification is GNU 13.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAS_STD_CXX11
-- Performing Test HAS_STD_CXX11 - Success
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
-- Checking for module 'rtaudio'
--   Found rtaudio, version 6.0.1
-- Found RtAudio: /usr/lib/librtaudio.so (found version "6.0.1")
-- Module audioSupport configured with version: 0.1.1
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /build/soapyaudio/src/build
Change Dir: '/build/soapyaudio/src/build'

Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile
/usr/bin/cmake -S/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 -B/build/soapyaudio/src/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /build/soapyaudio/src/build/CMakeFiles /build/soapyaudio/src/build//CMakeFiles/progress.marks
/usr/bin/make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/build/soapyaudio/src/build'
/usr/bin/make  -f CMakeFiles/audioSupport.dir/build.make CMakeFiles/audioSupport.dir/depend
make[2]: Entering directory '/build/soapyaudio/src/build'
cd /build/soapyaudio/src/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 /build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 /build/soapyaudio/src/build /build/soapyaudio/src/build /build/soapyaudio/src/build/CMakeFiles/audioSupport.dir/DependInfo.cmake "--co
lor="
make[2]: Leaving directory '/build/soapyaudio/src/build'
/usr/bin/make  -f CMakeFiles/audioSupport.dir/build.make CMakeFiles/audioSupport.dir/build
make[2]: Entering directory '/build/soapyaudio/src/build'
[ 40%] Building CXX object CMakeFiles/audioSupport.dir/Registration.cpp.o
[ 40%] Building CXX object CMakeFiles/audioSupport.dir/Version.cpp.o
[ 80%] Building CXX object CMakeFiles/audioSupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/audioSupport.dir/Settings.cpp.o
/usr/bin/c++ -D_REENTRANT -DaudioSupport_EXPORTS -I/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 -I/usr/include/rtaudio -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSE
RTIONS -g -ffile-prefix-map=/build/soapyaudio/src=/usr/src/debug/soapyaudio -flto=auto -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -Wno-unused-parameter -Wall -Wextra -Wnon-virtual-dtor -MD -MT CMakeFiles/audioSupport.dir/Registration.cpp.o -MF CMakeFiles/audioSupport.dir/Registration.cpp.o.d -o
 CMakeFiles/audioSupport.dir/Registration.cpp.o -c /build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Registration.cpp
/usr/bin/c++ -D_REENTRANT -DaudioSupport_EXPORTS -I/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 -I/usr/include/rtaudio -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSE
RTIONS -g -ffile-prefix-map=/build/soapyaudio/src=/usr/src/debug/soapyaudio -flto=auto -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -Wno-unused-parameter -Wall -Wextra -Wnon-virtual-dtor -MD -MT CMakeFiles/audioSupport.dir/Version.cpp.o -MF CMakeFiles/audioSupport.dir/Version.cpp.o.d -o CMakeFile
s/audioSupport.dir/Version.cpp.o -c /build/soapyaudio/src/build/Version.cpp
/usr/bin/c++ -D_REENTRANT -DaudioSupport_EXPORTS -I/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 -I/usr/include/rtaudio -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSE
RTIONS -g -ffile-prefix-map=/build/soapyaudio/src=/usr/src/debug/soapyaudio -flto=auto -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -Wno-unused-parameter -Wall -Wextra -Wnon-virtual-dtor -MD -MT CMakeFiles/audioSupport.dir/Settings.cpp.o -MF CMakeFiles/audioSupport.dir/Settings.cpp.o.d -o CMakeFi
les/audioSupport.dir/Settings.cpp.o -c /build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Settings.cpp
/usr/bin/c++ -D_REENTRANT -DaudioSupport_EXPORTS -I/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1 -I/usr/include/rtaudio -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSE
RTIONS -g -ffile-prefix-map=/build/soapyaudio/src=/usr/src/debug/soapyaudio -flto=auto -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -Wno-unused-parameter -Wall -Wextra -Wnon-virtual-dtor -MD -MT CMakeFiles/audioSupport.dir/Streaming.cpp.o -MF CMakeFiles/audioSupport.dir/Streaming.cpp.o.d -o CMake
Files/audioSupport.dir/Streaming.cpp.o -c /build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Streaming.cpp
/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Streaming.cpp: In member function ‘virtual int SoapyAudio::activateStream(SoapySDR::Stream*, int, long long int, size_t)’:
/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Streaming.cpp:242:14: error: ‘RtAudioError’ does not name a type; did you mean ‘RtAudioErrorType’?
  242 |     } catch (RtAudioError& e) {
      |              ^~~~~~~~~~~~
      |              RtAudioErrorType
/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Streaming.cpp:243:59: error: ‘e’ was not declared in this scope
  243 |         throw std::runtime_error("RtAudio init error '" + e.getMessage());
      |                                                           ^
/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Settings.cpp: In member function ‘virtual void SoapyAudio::writeSetting(const std::string&, const std::string&)’:
/build/soapyaudio/src/SoapyAudio-soapy-audio-0.1.1/Settings.cpp:497:40: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=]
  497 |         } catch (std::invalid_argument e) { }
      |                                        ^
make[2]: *** [CMakeFiles/audioSupport.dir/build.make:104: CMakeFiles/audioSupport.dir/Streaming.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/build/soapyaudio/src/build'
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/audioSupport.dir/all] Error 2
make[1]: Leaving directory '/build/soapyaudio/src/build'
make: *** [Makefile:136: all] Error 2

It would be great if this project could be made compatible with/ updated to the latest rtaudio, as it is currently blocking our rebuild TODO.

barracuda156 commented 7 months ago

We have the same issue on macOS:

  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_science_SoapyAudio/SoapyAudio/work/SoapyAudio-0.1.1/Streaming.cpp:242:14: error: unknown type name 'RtAudioError'; did you mean 'RtAudioErrorType'?
      } catch (RtAudioError& e) {
               ^~~~~~~~~~~~
               RtAudioErrorType
  /opt/local/include/rtaudio/RtAudio.h:228:6: note: 'RtAudioErrorType' declared here
  enum RtAudioErrorType {
       ^
  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_science_SoapyAudio/SoapyAudio/work/SoapyAudio-0.1.1/Streaming.cpp:243:60: error: member reference base type 'RtAudioErrorType' is not a structure or union
          throw std::runtime_error("RtAudio init error '" + e.getMessage());
                                                            ~^~~~~~~~~~~