v0.5.0: Windows/ARM64 and Linux/ARM64 cross targets, .deb/.msi packaging
- Cross toolchains: llvm-mingw-aarch64 (Windows ARM64; SDL3 staged from MSYS2's clangarm64 repo since SDL ships no MinGW ARM64 dev package) and clang-aarch64-linux-gnu (Linux ARM64; arm64 libc++/SDL3 via dpkg multiarch). - Distro images: Dockerfile.linux-arm64, Dockerfile.win-arm64, Dockerfile.debian and Dockerfile.debian-arm64 (Debian 13 with upstream CMake, whose 3.31 gate cannot enable import std). - Packaging via CPack: .deb for Ubuntu 26.04 and Debian 13 on amd64 and arm64 (dependencies derived by dpkg-shlibdeps), portable .zip/.tar.gz, and a Windows .msi built with wixl (msitools) straight from the Linux cross image. wixl 0.106 lacks arm64, so Windows/ARM64 ships the portable zip only. - CMake: parameterize the SDL3 MinGW triple, add install() + CPack config. - CI: build/package jobs for both arm64 targets and both Debian packages; existing Linux/Windows jobs now also emit the .deb / .zip + .msi. - scripts/: build-linux-arm64, build-windows-arm64, build-debian, build-debian-arm64.
This commit is contained in:
@@ -18,7 +18,7 @@ Ghidra.
|
||||
|
||||
## Status
|
||||
|
||||
OpenRA3 is at **v0.4.0**. The engine compiles and runs headless, and a **minimal
|
||||
OpenRA3 is at **v0.5.0**. The engine compiles and runs headless, and a **minimal
|
||||
skirmish** is playable: it reads a real multiplayer map out of your install,
|
||||
recovers the player start waypoints, and simulates two sides building a base,
|
||||
extracting ore and fighting until one side is wiped out. The balance is the
|
||||
@@ -122,13 +122,29 @@ their compilers and standard libraries never interfere.
|
||||
The host needs no toolchain: each target builds inside its own image.
|
||||
|
||||
```bash
|
||||
# Linux -> build/linux/bin/openra3
|
||||
# Linux (amd64) -> build/linux/bin/openra3 + .deb
|
||||
scripts/build-linux.sh
|
||||
|
||||
# Windows -> build/windows/bin/openra3.exe (+ SDL3.dll)
|
||||
# Linux/arm64 -> build/linux-arm64/bin/openra3 + .deb (cross)
|
||||
scripts/build-linux-arm64.sh
|
||||
|
||||
# Debian (amd64) -> build/debian/bin/openra3 + .deb
|
||||
scripts/build-debian.sh
|
||||
|
||||
# Debian (arm64) -> build/debian-arm64/bin/openra3 + .deb (cross)
|
||||
scripts/build-debian-arm64.sh
|
||||
|
||||
# Windows (x86_64) -> build/windows/bin/openra3.exe + SDL3.dll, .zip, .msi
|
||||
scripts/build-windows.sh
|
||||
|
||||
# Windows (arm64) -> build/windows-arm64/bin/openra3.exe + SDL3.dll, .zip (cross)
|
||||
scripts/build-windows-arm64.sh
|
||||
```
|
||||
|
||||
Every target is cross-built from x86_64 Linux in its own image: llvm-mingw for
|
||||
the Windows targets, clang + libc++ with dpkg multiarch for the arm64 targets,
|
||||
and Debian/Ubuntu-specific images for the `.deb` packages.
|
||||
|
||||
Or drive Docker directly:
|
||||
|
||||
```bash
|
||||
@@ -160,6 +176,25 @@ openra3.exe render --game-dir "C:\Red Alert 3" --vulkan
|
||||
Vulkan is provided by **vendored volk + headers** (`third_party/`), resolved at
|
||||
runtime, so neither image needs a Vulkan SDK.
|
||||
|
||||
## Packages
|
||||
|
||||
CPack produces the release artifacts; the Docker images and CI run it for every
|
||||
target.
|
||||
|
||||
| Target | Portable | Installer |
|
||||
| --- | --- | --- |
|
||||
| Linux amd64 (Ubuntu 26.04) | `.tar.gz` | `openra3_<v>_amd64ubuntu26.04.deb` |
|
||||
| Linux arm64 (Ubuntu 26.04) | `.tar.gz` | `openra3_<v>_arm64ubuntu26.04.deb` |
|
||||
| Linux amd64 (Debian 13) | `.tar.gz` | `openra3_<v>_amd64debian13.deb` |
|
||||
| Linux arm64 (Debian 13) | `.tar.gz` | `openra3_<v>_arm64debian13.deb` |
|
||||
| Windows x86_64 | `openra3-<v>-windows-x86_64.zip` | `openra3-<v>-windows-x86_64.msi` |
|
||||
| Windows arm64 | `openra3-<v>-windows-arm64.zip` | (WiX-only; see below) |
|
||||
|
||||
The `.deb` dependencies are derived from the binary with `dpkg-shlibdeps`. The
|
||||
`.msi` is built with **wixl** (msitools) straight from the Linux cross image;
|
||||
wixl 0.106 has no arm64 support, so Windows/ARM64 ships the portable `.zip`
|
||||
(the MSI toolchain for ARM64 would be WiX v4 via the .NET SDK).
|
||||
|
||||
## Logging
|
||||
|
||||
Every run writes `openra3.log` next to the executable through the vendored
|
||||
|
||||
Reference in New Issue
Block a user