remove gimgui from main #69
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Module | |
on: push | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Debug | |
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" | |
jobs: | |
build_linux_latest: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Repo checkout | |
uses: actions/checkout@v4 | |
- name: Get SDR++ master source | |
run: 'wget https://github.com/AlexandreRouma/SDRPlusPlus/archive/refs/heads/master.tar.gz && pwd && ls -lah' | |
- name: Get SDR++ nightly lib | |
uses: dsaltares/fetch-gh-release-asset@master | |
with: | |
repo: 'AlexandreRouma/SDRPlusPlus' | |
version: 'tags/nightly' | |
file: 'sdrpp_debian_sid_amd64.deb' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Unpack SDR++ source and core lib | |
run: 'mkdir sdrpp_lib && tar -zxvf master.tar.gz -C sdrpp_lib && dpkg-deb -xv sdrpp_debian_sid_amd64.deb ./sdrpp_lib && cp ./.github/workflows/sdrpp_module_hack.cmake ./ && pwd && ls -lah && ls -lah sdrpp_lib' | |
- name: Install dependencies | |
run: 'sudo apt-get update && sudo apt-get install libtalloc-dev libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev' | |
- name: Download ETSI codec | |
run: 'cd src/decoder/etsi_codec-patches && ./download_and_patch.sh' | |
- name: Cmake | |
run: 'mkdir build && cd build && ls -lah .. && cmake .. -DSDRPP_CORE_ROOT="$GITHUB_WORKSPACE/sdrpp_lib/SDRPlusPlus-master/core" -DSDRPP_LIB_ROOT="$GITHUB_WORKSPACE/sdrpp_lib/usr/lib" -DSDRPP_MODULE_CMAKE="$GITHUB_WORKSPACE/sdrpp_module_hack.cmake"' | |
- name: Make | |
run: 'cd build && make -j4 && ldd tetra_demodulator.so' | |
- name: Upload library | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tetra_demodulator | |
path: ./build/tetra_demodulator.so | |
build_windows: | |
runs-on: windows-latest | |
steps: | |
- name: Repo checkout | |
uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: cmake -E make_directory build | |
- name: Download PothosSDR | |
run: Invoke-WebRequest -Uri "https://downloads.myriadrf.org/builds/PothosSDR/PothosSDR-2020.01.26-vc14-x64.exe" -OutFile ${{runner.workspace}}/pothos.exe | |
- name: Install PothosSDR | |
run: mkdir "C:/Program Files/PothosSDR" ; 7z x ${{runner.workspace}}/pothos.exe -o"C:/Program Files/PothosSDR/" | |
- name: Download libusb | |
run: Invoke-WebRequest -Uri "https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z" -OutFile ${{runner.workspace}}/libusb.7z | |
- name: Patch Pothos with earlier libusb version | |
working-directory: ${{runner.workspace}} | |
run: 7z x libusb.7z -olibusb_old ; rm "C:/Program Files/PothosSDR/bin/libusb-1.0.dll" ; cp "libusb_old/MS64/dll/libusb-1.0.dll" "C:/Program Files/PothosSDR/bin/" ; rm "C:/Program Files/PothosSDR/lib/libusb-1.0.lib" ; cp "libusb_old/MS64/dll/libusb-1.0.lib" "C:/Program Files/PothosSDR/lib/" | |
- name: Get SDR++ master source | |
run: Invoke-WebRequest -Uri "https://github.com/AlexandreRouma/SDRPlusPlus/archive/refs/heads/master.zip" -OutFile master.zip | |
- name: Get SDR++ nightly lib | |
uses: dsaltares/fetch-gh-release-asset@master | |
with: | |
repo: 'AlexandreRouma/SDRPlusPlus' | |
version: 'tags/nightly' | |
file: 'sdrpp_windows_x64.zip' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Unpack SDR++ source and core lib | |
run: mkdir sdrpp_lib ; 7z x master.zip -osdrpp_lib ; 7z x sdrpp_windows_x64.zip -osdrpp_lib ; cp .github/workflows/sdrpp_module_hack.cmake ./ | |
- name: Prepare MinGW | |
run: C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c "pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-tools" | |
- name: Generate .def file | |
working-directory: sdrpp_lib/sdrpp_windows_x64 | |
run: C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c "gendef sdrpp_core.dll" | |
- name: Generate .lib file | |
working-directory: sdrpp_lib/sdrpp_windows_x64 | |
run: | | |
$path = "C:/Program Files/Microsoft Visual Studio" | |
$contents = Get-ChildItem -Path $path -Force -Recurse -Directory | Select-Object -First 1 | |
$path = $path + "/" + $contents.Name + "/Enterprise/VC/Tools/MSVC" | |
$path | |
$contents = Get-ChildItem -Path $path -Force -Recurse -Directory | Select-Object -First 1 | |
$path = $path + "/" + $contents.Name + "/bin/HostX64/x64/Lib.exe" | |
$path | |
& $path /DEF:sdrpp_core.def | |
- name: Export GitHub Actions cache environment variables | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
- name: Download ETSI codec | |
shell: bash | |
run: 'cd src/decoder/etsi_codec-patches && ./download_and_patch.sh' | |
- name: ETSI codec patches | |
run: | | |
cd src/decoder/codec | |
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn "../etsi_codec-patches/makefile-cleanups.patch" | |
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn "../etsi_codec-patches/fix_64bit.patch" | |
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn "../etsi_codec-patches/round_private.patch" | |
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn "../etsi_codec-patches/filename-case.patch" | |
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn "../etsi_codec-patches/log_stderr.patch" | |
- name: Install vcpkg dependencies | |
run: vcpkg install fftw3:x64-windows glfw3:x64-windows portaudio:x64-windows zstd:x64-windows libusb:x64-windows | |
- name: Prepare CMake | |
working-directory: build | |
run: cmake "$Env:GITHUB_WORKSPACE" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DSDRPP_CORE_ROOT="$Env:GITHUB_WORKSPACE/sdrpp_lib/SDRPlusPlus-master/core" -DSDRPP_LIB_ROOT="$Env:GITHUB_WORKSPACE/sdrpp_lib/sdrpp_windows_x64" -DSDRPP_MODULE_CMAKE="$Env:GITHUB_WORKSPACE/sdrpp_module_hack.cmake" -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
- name: Build | |
working-directory: build | |
run: cmake --build . --config RelWithDebInfo --verbose | |
- name: Upload library | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tetra_demodulator_win | |
path: build/RelWithDebInfo/tetra_demodulator.dll | |
- name: Upload pdb | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tetra_demodulator_win_pdb | |
path: build/RelWithDebInfo/tetra_demodulator.pdb |