Printable fx in InstrumentView #189
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: Check build viability | |
on: [pull_request] | |
jobs: | |
clang-format: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Fetch all branches | |
run: git fetch | |
- name: Check formatting | |
run: | | |
git fetch origin master:master | |
CHANGED_FILES=$(git diff --name-only master --diff-filter=ACM | grep -iE '\.(cpp|h|c|hpp)$') | |
if [ -z "$CHANGED_FILES" ]; then | |
echo "No C/C++ files changed." | |
exit 0 | |
fi | |
NEEDS_FORMATTING=0 | |
# Run clang-format on the changed lines of each staged file | |
for FILE in $CHANGED_FILES; do | |
# Get the changed lines in the file | |
CHANGED_LINES=$(git diff -U0 master -- $FILE | grep -E '^@@' | awk '{print $3}' | cut -d',' -f1) | |
# Format each changed line in the file | |
for LINE in $CHANGED_LINES; do | |
LINE_START=$(echo $LINE | cut -d'+' -f2) | |
if [ -z "$LINE_START" ]; then | |
continue | |
fi | |
clang-format -i --lines=$LINE_START:$LINE_START $FILE | |
done | |
if ! git diff --quiet $FILE; then | |
NEEDS_FORMATTING=1 | |
fi | |
done | |
if [ $NEEDS_FORMATTING -eq 1 ]; then | |
git diff | |
echo "Some files need formatting. Please review the diff." | |
echo "Tip: install pre-commit from repo root:" | |
echo "cp pre-commit .git/hooks/" | |
exit 1 | |
else | |
echo "All files are properly formatted." | |
fi | |
win32: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install build deps | |
run: choco install -y directx-sdk zip --no-progress --yes | |
shell: powershell | |
- name: Download and Extract VCE9 release | |
run: | | |
$url = "https://github.com/djdiskmachine/VCE9/releases/download/v1.0.0/Microsoft.Visual.Studio.9.0.zip" | |
$destination = "C:\Program Files (x86)\" | |
New-Item -ItemType Directory -Force -Path $destination | Out-Null | |
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\VCE9.zip" | |
Expand-Archive -Path "$env:TEMP\VCE9.zip" -DestinationPath $destination -Force | |
shell: pwsh | |
- name: Install Visual Studio 2008 Express | |
run: | | |
Invoke-WebRequest -Uri "http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso" -OutFile "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso" | |
$mountResult = Mount-DiskImage -ImagePath "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso" -PassThru | |
$driveLetter = ($mountResult | Get-Volume).DriveLetter | |
Write-Host "ISO mounted to drive letter $driveLetter" | |
$driveLetter = (Get-DiskImage -ImagePath "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso" | Get-Volume).DriveLetter | |
Start-Process -FilePath "${driveLetter}:\VCExpress\setup.exe" -ArgumentList '/q', '/norestart' -Wait | |
shell: pwsh | |
- name: Build Solution | |
working-directory: projects | |
run: | | |
& "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat" | |
& "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "lgpt.sln" "Release|Win32" | |
shell: pwsh | |
- name: Package build | |
shell: bash | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
deb: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install required libraries | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt update | |
sudo apt install -y make pkgconf gcc-multilib g++-multilib libsdl1.2-dev:i386 libasound2-plugins:i386 libjack-dev:i386 python3-pillow | |
- name: Build DEB | |
working-directory: projects | |
run: make PLATFORM=DEB | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
x86: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install required libraries | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt update | |
sudo apt install -y make pkgconf gcc-multilib g++-multilib libsdl2-dev:i386 libasound2-plugins:i386 libjack-dev:i386 python3-pillow | |
- name: Build X86 | |
working-directory: projects | |
run: make PLATFORM=X86 | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
psp: | |
runs-on: ubuntu-latest | |
env: | |
PSPDEV: ${{ github.workspace }}/pspdev | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install required libraries | |
run: | | |
sudo apt update | |
sudo apt install -y build-essential cmake pkgconf libusb-0.1-4 libgpgme11 libarchive-tools fakeroot python3-pillow | |
- name: Set up PSP dev kit | |
run: | | |
echo "$PSPDEV/bin" >> $GITHUB_PATH | |
git clone https://github.com/djdiskmachine/pspdev | |
- name: Build PSP | |
working-directory: projects | |
run: make PLATFORM=PSP | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
bittboy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install Bittboy toolchain | |
run: | | |
sudo apt update && sudo apt install -y python3-pillow | |
wget -O /tmp/arm-buildroot-linux-musleabi_sdk-buildroot.tar.xz https://github.com/djdiskmachine/MiyooMini-toolchain/releases/download/toolchain/miyoo-toolchain-v2.0.0-arm-buildroot-linux-musleabi_sdk-buildroot.tar.gz | |
mkdir /opt/arm-buildroot-linux-musleabi_sdk-buildroot | |
tar -xvf /tmp/arm-buildroot-linux-musleabi_sdk-buildroot.tar.xz -C /opt/arm-buildroot-linux-musleabi_sdk-buildroot --strip-components=1 | |
- name: Build Bittboy | |
working-directory: projects | |
run: make PLATFORM=BITTBOY | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
garlic: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Clone and build LGPT | |
run: | | |
ln -s /home/runner/work/LittleGPTracker/LittleGPTracker workspace | |
docker run -d --name rg35xx-container -v "$(pwd)/workspace:/root/workspace" aveferrum/rg35xx-toolchain sleep infinity | |
docker exec rg35xx-container bash -c " | |
apt update && apt install -y python3 python3-pillow | |
cd projects | |
make PLATFORM=GARLIC | |
" | |
sudo chmod -R 777 ./workspace/projects | |
sudo chown -R root:root ./workspace/projects | |
- name: Package build | |
working-directory: ./workspace/projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
garlicplus: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Garlic Plus toolchain | |
run: | | |
sudo apt update && sudo apt install -y python3-pillow | |
wget -O /tmp/rg35xxplus-toolchain.tar.xz https://github.com/simotek/union-rg35xxplus-toolchain/releases/download/20240830/rg35xxplus-toolchain.tar.xz | |
mkdir /opt/rg35xxplus-toolchain | |
tar -xvf /tmp/rg35xxplus-toolchain.tar.xz -C /opt/rg35xxplus-toolchain --strip-components=1 | |
- name: Build Garlic Plus | |
working-directory: projects | |
run: make PLATFORM=GARLICPLUS | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
rg35xxplus: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install rg35xx Stock Toolchain | |
run: | | |
sudo apt update && sudo apt install -y python3-pillow | |
wget -O /tmp/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz https://github.com/simotek/rg35xx-plus-aarch64-SDL2-SDK/releases/download/0.1.0/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz | |
mkdir /opt/rg35xx-plus-aarch64-SDL2-SDK-0.1.0 | |
tar -xvf /tmp/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz -C /opt/rg35xx-plus-aarch64-SDL2-SDK-0.1.0 --strip-components=1 | |
- name: Build rg35xx Stock | |
working-directory: projects | |
run: make PLATFORM=RG35XXPLUS | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
miyoo: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install Miyoo Mini toolchain | |
run: | | |
sudo apt update && sudo apt install -y python3-pillow | |
wget -O /tmp/miyoomini-toolchain.tar.xz https://github.com/djdiskmachine/miyoomini-toolchain-buildroot/releases/download/1.0.0/miyoomini-toolchain.tar.xz | |
mkdir /opt/miyoomini-toolchain | |
tar -xvf /tmp/miyoomini-toolchain.tar.xz -C /opt/miyoomini-toolchain --strip-components=1 | |
- name: Build Miyoo Mini | |
working-directory: projects | |
run: | | |
make PLATFORM=MIYOO | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
x64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install required libraries | |
run: | | |
sudo apt update | |
sudo apt install -y make pkgconf libsdl2-dev libasound2-plugins libjack-dev python3-pillow | |
- name: Build X64 | |
working-directory: projects | |
run: | | |
make PLATFORM=X64 | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error | |
macos: | |
runs-on: macos-13 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4.1.7 | |
- name: Install required libraries | |
run: | | |
wget https://www.libsdl.org/release/SDL2-2.0.14.dmg | |
hdiutil attach SDL2-2.0.14.dmg | |
sudo cp -R /Volumes/SDL2/SDL2.framework /Library/Frameworks/ | |
- name: Build Xcode project | |
run: | | |
xcodebuild ONLY_ACTIVE_ARCH=NO -project projects/lgpt64.xcodeproj -scheme LittleGPTracker -configuration Release build | |
cp -R bin/LittleGPTracker.app projects/ | |
- name: Package build | |
working-directory: projects | |
run: | | |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip | |
unzip lgpt-resources.zip | |
mv lgpt-resources-1.1/*/ ./resources/packaging | |
rm -rf lgpt-resources* | |
./resources/packaging/lgpt_package.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LGPT-${{ github.job }}-${{ github.sha }}.zip | |
path: projects/*.zip | |
if-no-files-found: error |