Skip to content

Commit

Permalink
Merge pull request #91 from antoniovazquezblanco/mix
Browse files Browse the repository at this point in the history
Initial CI touches
  • Loading branch information
BatchDrake authored Jun 3, 2024
2 parents 73ebccd + 341dfcd commit 512641d
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 157 deletions.
131 changes: 7 additions & 124 deletions .github/workflows/cmake.yml → .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI
name: Build

on: [push, pull_request, workflow_dispatch]

Expand All @@ -7,43 +7,7 @@ env:
BUILD_TYPE: Release

jobs:
dep_target:
runs-on: ubuntu-latest
outputs:
target_ref: ${{ steps.dep_target.outputs.target_ref }}
steps:
- name: Determine dependencies target branch
id: dep_target
run: |
target_ref="develop"
echo "Checking PR base reference..."
if [ ! -z "${{ github.base_ref }}" ]
then
echo "Base reference: ${{ github.base_ref }}"
if [ ! -z "$(echo ${{ github.base_ref }} | grep -E "^refs/.*/master$")" ]
then
echo "Reference to master found!"
target_ref="master"
fi
fi
echo "Checking reference..."
if [ ! -z "${{ github.ref }}" ]
then
echo "Reference: ${{ github.ref }}"
if [ ! -z "$(echo ${{ github.ref }} | grep -E "^refs/.*/master$")" ]
then
echo "Reference to master found!"
target_ref="master"
fi
fi
echo "Targetting '${target_ref}' branch..."
echo "target_ref=${target_ref}" >> $GITHUB_OUTPUT
build-linux:
needs: dep_target
runs-on: ubuntu-20.04
steps:
- name: Install dependencies
Expand All @@ -53,7 +17,7 @@ jobs:
uses: actions/checkout@v3
with:
repository: BatchDrake/sigutils
ref: ${{needs.dep_target.outputs.target_ref}}
ref: master
path: sigutils
submodules: recursive
fetch-depth: 0
Expand Down Expand Up @@ -109,44 +73,16 @@ jobs:
path: ${{github.workspace}}/suscan/suscan-tools_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb

build-macos:
needs: dep_target
runs-on: macos-latest
steps:
- name: Install dependencies
run: |
# Add custom homebrew repos
brew tap pothosware/homebrew-pothos
brew update
# Install deps
# soapyaudio removed from due to deprecated hamlib API
# soapyosmo removed because of random compilation errors
# soapyairspyhf removed because of random compilation errors
brew install --force --overwrite [email protected]
brew install libsndfile volk fftw soapysdr libxml2 portaudio json-c
python3 -Im pip install setuptools
# sudo rm /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3*
brew install soapyrtlsdr soapyhackrf soapybladerf soapyairspy soapyredpitaya soapyiris limesuite soapyplutosdr
brew install --head soapyuhd
# TODO: needed?
#sudo mkdir -p /usr/local/lib/SoapySDR/modules0.8
#sudo chmod -R a+rw /usr/local/lib/SoapySDR/modules0.8
# SDRPlay API
wget https://www.sdrplay.com/software/SDRplay_RSP_API-MacOSX-3.07.3.pkg
sudo installer -pkg SDRplay_RSP_API-MacOSX-3.07.3.pkg -target /
# SoapySDRPlay3 from source
git clone https://github.com/pothosware/SoapySDRPlay3
cd SoapySDRPlay3
cmake -DCMAKE_BUILD_TYPE=Release -B build .
cmake --build build
cd build
sudo make install
cd ../..
run: brew install libsndfile volk fftw soapysdr json-c portaudio

- name: Checkout (sigutils)
uses: actions/checkout@v3
with:
repository: BatchDrake/sigutils
ref: ${{needs.dep_target.outputs.target_ref}}
ref: master
path: sigutils
submodules: recursive
fetch-depth: 0
Expand Down Expand Up @@ -178,7 +114,6 @@ jobs:
run: cmake --build ${{github.workspace}}/suscan/build --config ${{env.BUILD_TYPE}}

build-windows:
needs: dep_target
runs-on: windows-latest
defaults:
run:
Expand All @@ -187,14 +122,13 @@ jobs:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: git mingw-w64-x86_64-cc mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-libsndfile mingw-w64-x86_64-fftw mingw-w64-x86_64-volk mingw-w64-x86_64-libxml2 mingw-w64-x86_64-libusb
install: git mingw-w64-x86_64-cc mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-libsndfile mingw-w64-x86_64-fftw mingw-w64-x86_64-volk mingw-w64-x86_64-libxml2 mingw-w64-x86_64-libusb mingw-w64-x86_64-soapysdr mingw-w64-x86_64-rtl-sdr mingw-w64-x86_64-soapyrtlsdr

- name: Checkout (sigutils)
uses: actions/checkout@v3
with:
repository: BatchDrake/sigutils
ref: ${{needs.dep_target.outputs.target_ref}}
ref: master
path: sigutils
submodules: recursive
fetch-depth: 0
Expand All @@ -207,58 +141,7 @@ jobs:

- name: Install sigutils
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\sigutils\\build --config ${{env.BUILD_TYPE}} --target install

# SoapySDR
- name: Checkout (soapysdr)
uses: actions/checkout@v3
with:
repository: pothosware/SoapySDR
ref: refs/heads/master
path: SoapySDR

- name: Configure
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\SoapySDR\\build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\SoapySDR\\

- name: Build
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapySDR\\build --config ${{env.BUILD_TYPE}}

- name: Install sigutils
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapySDR\\build --config ${{env.BUILD_TYPE}} --target install

# BatchDrake's fixed rtl-sdr
- name: Checkout (rtl-sdr-blog)
uses: actions/checkout@v3
with:
repository: BatchDrake/rtl-sdr-blog
ref: refs/heads/feature/xfer-completion
path: rtl-sdr-blog

- name: Configure
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\rtl-sdr-blog\\

- name: Build
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build --config ${{env.BUILD_TYPE}}

- name: Install
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build --config ${{env.BUILD_TYPE}} --target install

# SoapyRTLSDR
- name: Checkout (soapyrtlsdr)
uses: actions/checkout@v3
with:
repository: pothosware/SoapyRTLSDR
ref: refs/heads/master
path: SoapyRTLSDR

- name: Configure
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\SoapyRTLSDR/build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\SoapyRTLSDR\\

- name: Build
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapyRTLSDR\\build --config ${{env.BUILD_TYPE}}

- name: Install
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapyRTLSDR\\build --config ${{env.BUILD_TYPE}} --target install


# suscan
- name: Checkout
uses: actions/checkout@v3
Expand Down
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,23 @@ Suscan is a realtime DSP processing library. It provides a set of useful abstrac
## Getting the code
Just clone it from the GitHub repository. Make sure you pass --recurse-submodules to git clone so all required submodules are also cloned.

```bash
% git clone --recurse-submodules https://github.com/BatchDrake/suscan.git
```

## Building and installing Suscan
In order to build Suscan, you will need the development files for the following packages:

```
sigutils fftw3 sndfile SoapySDR libxml-2.0
```
* sigutils
* fftw3
* sndfile
* SoapySDR
* libxml-2.0

If you are in a Debian-like operating system, you will also need `cmake` and `build-essential`.

After installing all dependencies, enter Suscan's source directory and compile by typing:

```
```bash
% cd suscan
% mkdir build
% cd build
Expand Down
28 changes: 0 additions & 28 deletions TODO.md

This file was deleted.

1 change: 1 addition & 0 deletions analyzer/source/impl/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "file.h"
#include <analyzer/source.h>
#include <sigutils/util/compat-time.h>
#include <sigutils/util/compat-stdlib.h>
#include <libgen.h>

#ifdef _SU_SINGLE_PRECISION
Expand Down

0 comments on commit 512641d

Please sign in to comment.