mirror of
https://github.com/Nexoniarz/Fry3DX.git
synced 2026-11-03 12:34:27 +00:00
Fry3DX 0.5: builds for Windows, Linux and Android, a phone layout, Apache 2.0
- Apache License 2.0 - Windows: cross-built with clang-cl (cmake --preset windows), a window program with its icon; Linux: a portable preset (SDL and the C++ library inside); Android: android/build_apk.py makes the APK - tools/package.py packs the downloads; a GitHub workflow builds all three and makes a release for a v* tag - A phone layout (fry_touch, on by default on Android): the UI drawn bigger, panels when asked for, a bar of big buttons, one finger to turn the view, two to move and pinch, a long press for a right-click; files through the phone's file picker - Settings and autosaves now in a Nexoniarz folder (copied over once) - README rewritten, the website shows the downloads and the phone Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NMSrd5oe1GpUD7E6d825KP
This commit is contained in:
parent
f3e8eca87b
commit
f6f5e5f288
40 changed files with 1180 additions and 158 deletions
89
.github/workflows/build.yml
vendored
Normal file
89
.github/workflows/build.yml
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# Builds Fry3DX for Linux (a portable .tar.gz and an AppImage), Windows (.zip) and Android (.apk).
|
||||
# A tag v* (git tag v0.4.0 && git push --tags) also makes a GitHub release with them;
|
||||
# otherwise they're the run's artifacts (Actions tab).
|
||||
# Android signing: secrets FRY_KEYSTORE_B64 (the keystore, base64) and FRY_KEYSTORE_PASS. Keep
|
||||
# the same key: Android only updates an app signed with the key it was installed with.
|
||||
name: Build
|
||||
on:
|
||||
push:
|
||||
tags: ["v*"]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
# The oldest supported Ubuntu: what's built here runs on any distro as new (glibc 2.35+).
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tools
|
||||
run: |
|
||||
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-13 g++-13 ninja-build libfuse2 \
|
||||
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxss-dev libxtst-dev libxfixes-dev \
|
||||
libwayland-dev libwayland-bin wayland-protocols libxkbcommon-dev libegl-dev libdecor-0-dev \
|
||||
libasound2-dev libpulse-dev libpipewire-0.3-dev libdbus-1-dev libudev-dev libdrm-dev libgbm-dev
|
||||
pip install cmake==3.31.6
|
||||
wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool
|
||||
chmod +x appimagetool
|
||||
- name: Build
|
||||
env: { CC: gcc-13, CXX: g++-13 }
|
||||
run: |
|
||||
cmake --preset portable -DGLSLC=$ANDROID_NDK_HOME/shader-tools/linux-x86_64/glslc
|
||||
cmake --build build/portable
|
||||
- name: Package
|
||||
run: APPIMAGETOOL=$PWD/appimagetool python3 tools/package.py linux appimage
|
||||
- uses: actions/upload-artifact@v4
|
||||
with: { name: linux, path: "dist/*" }
|
||||
|
||||
windows:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: |
|
||||
GLSLC=$(ls -d "$ANDROID_NDK_HOME"/shader-tools/windows-x86_64/glslc.exe)
|
||||
cmake -S . -B build/windows -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl \
|
||||
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded "-DGLSLC=$GLSLC"
|
||||
cmake --build build/windows
|
||||
- name: Package
|
||||
run: python tools/package.py windows
|
||||
- uses: actions/upload-artifact@v4
|
||||
with: { name: windows, path: "dist/*" }
|
||||
|
||||
android:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-java@v4
|
||||
with: { distribution: temurin, java-version: "17" }
|
||||
- name: SDK
|
||||
run: |
|
||||
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;27.2.12479018" "build-tools;35.0.0" "platforms;android-35" > /dev/null
|
||||
sudo apt-get install -y ninja-build
|
||||
- name: Build
|
||||
env:
|
||||
ANDROID_NDK_ROOT: ${{ env.ANDROID_HOME }}/ndk/27.2.12479018
|
||||
KEY_B64: ${{ secrets.FRY_KEYSTORE_B64 }}
|
||||
FRY_KEYSTORE_PASS: ${{ secrets.FRY_KEYSTORE_PASS }}
|
||||
run: |
|
||||
export ANDROID_NDK_ROOT="$ANDROID_HOME/ndk/27.2.12479018"
|
||||
if [ -n "$KEY_B64" ]; then echo "$KEY_B64" | base64 -d > "$RUNNER_TEMP/fry.keystore"; export FRY_KEYSTORE="$RUNNER_TEMP/fry.keystore"; fi
|
||||
python3 android/build_apk.py
|
||||
- uses: actions/upload-artifact@v4
|
||||
with: { name: android, path: "dist/*" }
|
||||
|
||||
release:
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
needs: [linux, windows, android]
|
||||
runs-on: ubuntu-latest
|
||||
permissions: { contents: write }
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with: { path: dist, merge-multiple: true }
|
||||
- uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: dist/*
|
||||
generate_release_notes: true
|
||||
Loading…
Reference in a new issue