Repository navigation
Build and CI
Prerequisites: git, Rust toolchain, CMake, C/C++ compilers. On Linux also libboost-dev, libstdc++-14-dev, libsndio-dev, X11 headers (libxext-dev, libx11-dev, …).
git clone https://github.com/KlugKlugTG/HyperHLE-Fork
cd HyperHLE-Fork
git submodule update --init
# Linux on the standard CI-like VM needs -latomic (OpenAL Soft static build):
RUSTFLAGS="-C link-arg=-latomic" cargo build --releaseRun: cargo run --release -- path/to/app.app
Dynamically linked build (uses system SDL2/OpenAL instead of bundled): add --no-default-features. macOS note: Apple's OpenAL.framework is unsupported; use OpenAL Soft and set the linker path yourself.
Ship folders touchHLE_dylibs/, touchHLE_fonts/ and the license files with any distribution.
Prereqs: Rust target aarch64-linux-android, cargo-ndk ≥ 3.4.0, Android SDK + NDK.
export ANDROID_NDK_HOME=… export ANDROID_SDK_HOME=…
gradle build # or: open android/ in Android Studio and build
gradle installDebugIf the Gradle lib-build step fails, debug it directly: cargo ndk -t arm64-v8a build.
| Workflow | Trigger | What it does |
|---|---|---|
| HyperHLE_release.yml | push/PR to trunk, tags, manual |
Builds Windows/macOS/Linux/Android, caches Boost & Rust artifacts; tag builds → GitHub Releases; manual runs can force-publish |
| run_ipa.yml | manual | Downloads a provided .ipa/.app.zip URL, builds, and runs the app for N seconds on 3 OSes (xvfb on Linux) to smoke-test |
RUSTFLAGS="-C link-arg=-latomic" cargo test -- --skip test_app
dev-scripts/lint.sh # comment-length check + clippy --deny warnings + cargo doc
dev-scripts/format.sh # needs clang-format for C/C++ submodulesThe test_app integration tests need a custom LLVM/SDK toolchain not present everywhere; on some branches clippy has pre-existing warnings with Rust 1.95+ — run plain cargo clippy to confirm no hard errors.
More details: dev-docs/building.md in the repo.