From 07744e5baeefe90efbfffadb1e38625f0c63d56b Mon Sep 17 00:00:00 2001 From: AlexandreRouma Date: Tue, 16 Jul 2024 20:43:53 +0200 Subject: [PATCH] add rfnm_source module to linux and MacOS CI --- .github/workflows/build_all.yml | 3 +++ docker_builds/debian_bookworm/do_build.sh | 11 ++++++++++- docker_builds/debian_bullseye/do_build.sh | 11 ++++++++++- docker_builds/debian_buster/do_build.sh | 11 ++++++++++- docker_builds/debian_sid/do_build.sh | 11 ++++++++++- docker_builds/ubuntu_bionic/do_build.sh | 11 ++++++++++- docker_builds/ubuntu_focal/do_build.sh | 11 ++++++++++- docker_builds/ubuntu_jammy/do_build.sh | 11 ++++++++++- docker_builds/ubuntu_mantic/do_build.sh | 11 ++++++++++- docker_builds/ubuntu_noble/do_build.sh | 13 +++++++++++-- make_macos_bundle.sh | 1 + source_modules/rfnm_source/CMakeLists.txt | 17 ++++++++++++++--- 12 files changed, 109 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index aec89f16..f1843872 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -124,6 +124,9 @@ jobs: - name: Install libperseus run: git clone https://github.com/Microtelecom/libperseus-sdr && cd libperseus-sdr && autoreconf -i && ./configure --prefix=/usr/local && make && make install && cd .. + - name: Install librfnm + run: git clone https://github.com/AlexandreRouma/librfnm && cd librfnm && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make && make install && cd .. + - name: Install more recent librtlsdr run: git clone https://github.com/osmocom/rtl-sdr && cd rtl-sdr && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 LIBRARY_PATH=$(pkg-config --libs-only-L libusb-1.0 | sed 's/\-L//') && sudo make install && cd ../../ diff --git a/docker_builds/debian_bookworm/do_build.sh b/docker_builds/debian_bookworm/do_build.sh index 4b714082..d7272e75 100644 --- a/docker_builds/debian_bookworm/do_build.sh +++ b/docker_builds/debian_bookworm/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/debian_bullseye/do_build.sh b/docker_builds/debian_bullseye/do_build.sh index 4b714082..d7272e75 100644 --- a/docker_builds/debian_bullseye/do_build.sh +++ b/docker_builds/debian_bullseye/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/debian_buster/do_build.sh b/docker_builds/debian_buster/do_build.sh index 15dd3275..a799b37f 100644 --- a/docker_builds/debian_buster/do_build.sh +++ b/docker_builds/debian_buster/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/debian_sid/do_build.sh b/docker_builds/debian_sid/do_build.sh index 67cd5960..73086e2b 100644 --- a/docker_builds/debian_sid/do_build.sh +++ b/docker_builds/debian_sid/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/ubuntu_bionic/do_build.sh b/docker_builds/ubuntu_bionic/do_build.sh index 97731104..00241be0 100644 --- a/docker_builds/ubuntu_bionic/do_build.sh +++ b/docker_builds/ubuntu_bionic/do_build.sh @@ -12,7 +12,7 @@ apt update # Install dependencies and tools apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev libudev-dev autoconf libtool xxd + libcodec2-dev libudev-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -51,6 +51,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + # Fix missing .pc file for codec2 echo 'prefix=/usr/' >> /usr/share/pkgconfig/codec2.pc echo 'libdir=/usr/include/x86_64-linux-gnu/' >> /usr/share/pkgconfig/codec2.pc diff --git a/docker_builds/ubuntu_focal/do_build.sh b/docker_builds/ubuntu_focal/do_build.sh index 4b714082..d7272e75 100644 --- a/docker_builds/ubuntu_focal/do_build.sh +++ b/docker_builds/ubuntu_focal/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/ubuntu_jammy/do_build.sh b/docker_builds/ubuntu_jammy/do_build.sh index 4b714082..d7272e75 100644 --- a/docker_builds/ubuntu_jammy/do_build.sh +++ b/docker_builds/ubuntu_jammy/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/ubuntu_mantic/do_build.sh b/docker_builds/ubuntu_mantic/do_build.sh index 67cd5960..73086e2b 100644 --- a/docker_builds/ubuntu_mantic/do_build.sh +++ b/docker_builds/ubuntu_mantic/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,6 +25,15 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build diff --git a/docker_builds/ubuntu_noble/do_build.sh b/docker_builds/ubuntu_noble/do_build.sh index 67cd5960..43d5d207 100644 --- a/docker_builds/ubuntu_noble/do_build.sh +++ b/docker_builds/ubuntu_noble/do_build.sh @@ -6,7 +6,7 @@ cd /root apt update apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \ - libcodec2-dev autoconf libtool xxd + libcodec2-dev autoconf libtool xxd libspdlog-dev # Install SDRPlay libraries wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.1.run @@ -25,10 +25,19 @@ make install ldconfig cd .. +# Install librfnm +git clone https://github.com/AlexandreRouma/librfnm +cd librfnm +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +make -j2 +make install + cd SDRPlusPlus mkdir build cd build -cmake .. -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON +cmake .. -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_RFNM_SOURCE=ON make VERBOSE=1 -j2 cd .. diff --git a/make_macos_bundle.sh b/make_macos_bundle.sh index 63fb6186..c035a83d 100644 --- a/make_macos_bundle.sh +++ b/make_macos_bundle.sh @@ -40,6 +40,7 @@ bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/limesdr_source/limesdr_source.dylib bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/perseus_source/perseus_source.dylib bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/plutosdr_source/plutosdr_source.dylib +bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/rfnm_source/rfnm_source.dylib bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/rfspace_source/rfspace_source.dylib bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/rtl_sdr_source/rtl_sdr_source.dylib bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/rtl_tcp_source/rtl_tcp_source.dylib diff --git a/source_modules/rfnm_source/CMakeLists.txt b/source_modules/rfnm_source/CMakeLists.txt index 264c906d..8121b194 100644 --- a/source_modules/rfnm_source/CMakeLists.txt +++ b/source_modules/rfnm_source/CMakeLists.txt @@ -5,6 +5,17 @@ file(GLOB SRC "src/*.cpp") include(${SDRPP_MODULE_CMAKE}) -target_include_directories(rfnm_source PRIVATE "C:/Program Files/RFNM/include") -target_link_directories(rfnm_source PRIVATE "C:/Program Files/RFNM/lib") -target_link_libraries(rfnm_source PRIVATE rfnm) \ No newline at end of file +if (MSVC) + # Lib path + target_link_directories(rfnm_source PRIVATE "C:/Program Files/RFNM/lib/") + target_include_directories(rfnm_source PUBLIC "C:/Program Files/RFNM/include/") + target_link_libraries(rfnm_source PRIVATE rfnm) +else (MSVC) + find_package(PkgConfig) + + pkg_check_modules(LIBRFNM REQUIRED librfnm) + + target_include_directories(rfnm_source PRIVATE ${LIBRFNM_INCLUDE_DIRS}) + target_link_directories(rfnm_source PRIVATE ${LIBRFNM_LIBRARY_DIRS}) + target_link_libraries(rfnm_source PRIVATE ${LIBRFNM_LIBRARIES}) +endif () \ No newline at end of file