Skip to content

Gba updates

Gba updates #4

Workflow file for this run

name: Build (Docker/Windows)
on:
push:
branches:
- 'main'
tags:
- '*'
pull_request:
workflow_dispatch:
jobs:
bakeHTML:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: main
- name: Install gzip, xxd, minify
run: |
sudo apt-get update
sudo apt-get install gzip xxd minify -y
- name: Stamp version number
run: |
git fetch --prune --unshallow
TAG=$(git describe --tags)
sed -i '/VERSION_DESCRIBE/d' Application/AIS-catcher.h
echo -e "#define VERSION_DESCRIBE\t\"$TAG\"" >> Application/AIS-catcher.h
- name: Minify and compress index.html
run: |
cd HTML
rm HTML.cpp
rm HTML_local.cpp
rm index_local.html
minify index.html | gzip > index_html_gz
xxd -i index_html_gz > HTML.cpp
sed -e 's|https://cdn.jsdelivr.net/|cdn/|g' -e 's|https://unpkg.com/|cdn/|g' index.html > index_local.html
minify index_local.html | gzip > index_local_html_gz
xxd -i index_local_html_gz > HTML_local.cpp
cd ..
if [[ -z $(git diff) ]]; then
echo "Nothing to commit, working tree clean"
exit 0
else
echo "There are changes to be committed"
fi
git add HTML/HTML.cpp
git add HTML/index_local.html
git add HTML/HTML_local.cpp
git add Application/AIS-catcher.h
git config --local user.email "action@github.com"
git config --local user.name "Github Action"
git commit -m "Stamp version and bake index.html in HTML.cpp"
git push origin main
Docker:
runs-on: ubuntu-latest
needs: bakeHTML
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- name: Calculate Container Metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=edge,branch=main
type=ref,event=tag
- name: Setup QEMU
uses: docker/setup-qemu-action@v2
- name: Setup Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Images
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64, linux/386, linux/arm64, linux/arm/v6, linux/arm/v7
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
macos-intel:
runs-on: macos-12
needs: bakeHTML
steps:
- uses: actions/checkout@v4
- name: Update brew repositories
run: brew update
- name: Install dependencies
run: brew install libusb
- 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 ../../
- name: build AIS-catcher
run: mkdir build; cd build; cmake ..; make
- name: upload artifact
run: mkdir output; cp build/AIS-catcher output/
- name: Upload Artifacts MACOS-intel
uses: actions/upload-artifact@v3
with:
name: "AIS-catcher macos-intel"
path: |
output
Windows:
runs-on: windows-2022
needs: bakeHTML
strategy:
matrix:
platform: [x86, x64]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
msbuild-architecture: ${{matrix.platform}}
- name: Restore vcpkg packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
vcpkg integrate install
- name: Install vcpkg packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
vcpkg install libpq:${{matrix.platform}}-windows fftw3:${{matrix.platform}}-windows openssl:${{matrix.platform}}-windows libusb:${{matrix.platform}}-windows pthread:${{matrix.platform}}-windows zlib:${{matrix.platform}}-windows soxr:${{matrix.platform}}-windows zeromq:${{matrix.platform}}-windows
- name: Setting up directories
run: |
mkdir output; cd output; mkdir plugins; mkdir Licenses; cd ..; mkdir include; cd include; mkdir curl; mkdir openssl; cd ..; mkdir release; mkdir lib;
cp C:\vcpkg\installed\${{matrix.platform}}-windows\include\*.h include
cp C:\vcpkg\installed\${{matrix.platform}}-windows\include\openssl\*.h include\openssl
cp C:\vcpkg\installed\${{matrix.platform}}-windows\lib\*.lib lib
cp C:\vcpkg\installed\${{matrix.platform}}-windows\bin\*.dll release
- name: Create start.bat
run: |
cd output
echo "AIS-catcher -v 10 -X -u 127.0.0.1 10110 -N 8100 PLUGIN_DIR plugins`nPAUSE" |Out-File -FilePath start.bat -Encoding ascii
cd ..
- name: Building Libraries and AIS-catcher
run: |
echo "x64" > x64-a; echo "Win32" > x86-a; $msplatform = $(cat "${{matrix.platform}}-a")
$gen = "Visual Studio 17 2022"
$config = "Release"
$libusb_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include\libusb-1.0"
$libusb_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\libusb-1.0.lib"
$pthread_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\pthreadVC3.lib"
$pthread_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include"
$fftw3_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\fftw3.lib"
$fftw3_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include"
echo "RTLSDR"
git clone https://github.com/jvde-github/rtl-sdr.git
cd rtl-sdr; mkdir build; cd build
cmake .. -A $msplatform -G $gen -DLIBUSB_FOUND=1 -DLIBUSB_INCLUDE_DIRS="$libusb_inc"
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform rtlsdr.sln
cd ..; cd ..
cp rtl-sdr\build\src\Release\*.dll release
cp rtl-sdr\build\src\Release\*.lib lib
cp rtl-sdr\include\*.h include
cp rtl-sdr\COPYING output\Licenses\RTLSDR
echo "AIRSPY HF+"
git clone https://github.com/airspy/airspyhf.git
git reset --hard b93deddfd05f8350b0adf75d671072e7fa7bec35
cd airspyhf; mkdir build; cd build
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc"
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform airspyhf_all.sln
cd ..; cd ..
cp airspyhf\build\libairspyhf\src\Release\*.dll release
cp airspyhf\build\libairspyhf\src\Release\*.lib lib
cp airspyhf\libairspyhf\src\airspyhf.h include
cp airspyhf\LICENSE output\Licenses\AIRSPYHF
echo "AIRSPY"
git clone https://github.com/airspy/airspyone_host.git
git reset --hard b97309a6a24db161de990d6e4f0432fc94f72cd9
cd airspyone_host; mkdir build; cd build
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc"
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform airspy_all.sln
cd ..; cd ..
cp airspyone_host\build\airspy-tools\src\*.dll release
cp airspyone_host\build\libairspy\src\Release\*.lib lib
cp airspyone_host\libairspy\src\*.h include
cp airspyone_host\airspy-tools\LICENSE.md output\Licenses\AIRSPY
echo "HACK RF"
git clone https://github.com/greatscottgadgets/hackrf.git
git reset --hard 34cbbe7330d1e11e7967f84da39d04a61bfdf4f1
cd hackrf; cd host; mkdir build; cd build
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc" -DFFTW_LIBRARIES="$fftw3_lib" -DFFTW_INCLUDES="$fftw3_inc"
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform HackRF.sln
cd ..; cd ..; cd ..
cp hackrf\host\build\libhackrf\src\Release\*.dll release
cp hackrf\host\build\libhackrf\src\Release\*.lib lib
cp hackrf\host\libhackrf\src\*.h include
cp hackrf\COPYING output\Licenses\HACKRF
echo "AIS-catcher"
mkdir build; cd build
cmake .. -A $msplatform -G $gen -DPOTHOSSDR_INCLUDE_DIR=${{github.workspace}}\include -DPOTHOSSDR_LIBRARY_DIR=${{github.workspace}}\lib -DPOTHOSSDR_BINARY_DIR=${{github.workspace}}\release
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform AIS-catcher.sln
cd ..
cp LICENSE output\Licenses\AIS-catcher
- name: Prepare output
run: cp build\*.dll output; cp build\Release\*.exe output; cp plugins\* output\plugins; cp README.md output;
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: "AIS-catcher ${{matrix.platform}}"
path: |
output
- name: Compress, upload, and delete ZIP file
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
Compress-Archive -Path output/* -DestinationPath "output/AIS-catcher ${{matrix.platform}}.zip"
bash -c "gh release upload 'Edge' './output/AIS-catcher ${{matrix.platform}}.zip' --repo jvde-github/AIS-catcher --clobber"
del "output\AIS-catcher ${{matrix.platform}}.zip"
- name: Download SDRPlay API
run: |
cd "C:/Program Files/"
Invoke-WebRequest -Uri " https://www.sdrplay.com/software/SDRplay_RSP_API-Windows-3.09.exe" -OutFile sdrplay.exe
choco install innoextract
innoextract sdrplay.exe
ren app SDRplay
- name: Building with SDRPlay support
run: |
cp "C:\Program Files\SDRplay\API\docs\SDRplay_RSP_API_Release_Notes_V3.09.pdf" output\Licenses\SDRPLAY.pdf
echo "x64" > x64-a; echo "Win32" > x86-a; $msplatform = $(cat "${{matrix.platform}}-a")
$gen = "Visual Studio 17 2022"
$config = "Release"
echo "AIS-catcher"
Remove-Item build -Recurse
mkdir build; cd build
cmake .. -A $msplatform -G $gen -DPOTHOSSDR_INCLUDE_DIR=${{github.workspace}}\include -DPOTHOSSDR_LIBRARY_DIR=${{github.workspace}}\lib -DPOTHOSSDR_BINARY_DIR=${{github.workspace}}\release
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform AIS-catcher.sln
cd ..
cp LICENSE output\Licenses\AIS-catcher
- name: Prepare output SDRPLAY
run: cp build\*.dll output; cp build\Release\*.exe output; cp plugins\* output\plugins; cp README.md output;
- name: Upload Artifacts SDRPLAY
uses: actions/upload-artifact@v3
with:
name: "AIS-catcher SDRPLAY ${{matrix.platform}}"
path: |
output
- name: Compress, upload, and delete ZIP file
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
Compress-Archive -Path output/* -DestinationPath "output/AIS-catcher SDRPLAY ${{matrix.platform}}.zip"
bash -c "gh release upload 'Edge' './output/AIS-catcher SDRPLAY ${{matrix.platform}}.zip' --repo jvde-github/AIS-catcher --clobber"
del "output\AIS-catcher SDRPLAY ${{matrix.platform}}.zip"