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:
Nexoniarz 2026-10-19 22:05:01 +02:00
commit f6f5e5f288
40 changed files with 1180 additions and 158 deletions

14
cmake/toolchains/clang-cl-xwin Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
# clang-cl with the MSVC CRT + Windows SDK from xwin, for every project in the build (sub-builds
# replaces CMake's flags, so they can't live there). LIB is read by lld-link when clang-cl links.
# Headers are made case-insensitive through a VFS overlay (made once, next to the SDK).
X="${XWIN_DIR:-$HOME/.xwin}"
O="$X/case-overlay.json"
[ -f "$O" ] || python3 "$(dirname "$0")/make-case-overlay.py" "$X" "$O"
# clang's own headers (stddef.h's offsetof, intrinsics) must come before the CRT's.
R="${KEEL_CLANG_INCLUDE:-$(clang-cl -print-resource-dir)/include}"
export LIB="$X/crt/lib/x86_64;$X/sdk/lib/um/x86_64;$X/sdk/lib/ucrt/x86_64"
export LIB="$LIB;$X/case-libs"
exec clang-cl --target=x86_64-pc-windows-msvc -fms-compatibility-version=19.40 -fuse-ld=lld-link -D_CRT_USE_BUILTIN_OFFSETOF -Xclang -ivfsoverlay -Xclang "$O" \
/imsvc"$R" /imsvc"$X/crt/include" /imsvc"$X/sdk/include/ucrt" /imsvc"$X/sdk/include/um" /imsvc"$X/sdk/include/shared" /imsvc"$X/sdk/include/winrt" \
"$@"