Files
vanilla/docker
Joshua Brest (杰成)andMattKC 78b923719c Add iOS support with build scripts, toolchain, and assets (#302)
* feat: add iOS support

* ios: clean up icon

* ci: add ios build

* fix(gui): revert asset lookups to use "%s/assets/%s/%s" for macOS

* refactor(gui): remove extra `iconv` linkage for iOS

* chore(gitignore): remove unused `xcuserdata` and `DerivedData` entries

* fix(gui): use provided `LibXML2` in non-vendored builds

* fix(ci): add Xcode setup step for iOS build

* fix(pipe): prevent relay threads from using freed stack memory

* fix(input): replace bitfields with explicit wire packing for touch and gyro data

* fix merge issues

* fix cmake merge bug

* cmake: attempt iOS SDL fix

* older ios

* feat: add iOS support

* ios: clean up icon

* ci: add ios build

* refactor(gui): remove extra `iconv` linkage for iOS

* chore(gitignore): remove unused `xcuserdata` and `DerivedData` entries

* fix(ci): add Xcode setup step for iOS build

* cmake: attempt iOS SDL fix

* older ios

* cleanup

* build signed macOS app alongside iOS app

* cmake: detect ios version and include liquid glass icon if available

* ci: upload continuous release

* cmake: move more ios code to toolchain

* remove ios simulator target

* improvements

* remove CMakePresets.json

* Update ios-toolchain.cmake

* move ios folder to gui folder

* converge Info.plist templates

* update comments and readme

* cmake: remove redundant code

* remove redundant ios folder

* cmake: add comments to cache strings

* cmake/ci: maybe fix new apple builds

* cmake: fix new ios build

* cmake: fix macOS build?

---------

Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
2026-09-09 02:25:50 -07:00
..
2026-08-26 18:01:53 -07:00
2026-05-06 21:16:17 -07:00

Docker for building

Since Vanilla's infrastructure can be somewhat complicated (and to aid in auto-building), there are Docker images for all supported platforms.

Usage is as follows for all platforms:

  • First, build the Docker image. We give it the tag vanilla-build:latest but you can choose anything. Vanilla's Dockerfiles are designed to be run from the context of the source code root, so cd there and type the following command:

    docker build -f docker/<platform>/Dockerfile -t vanilla-build:latest .
    
  • Secondly, use the new Docker image to build. Two volumes must be mounted, /vanilla for the source directory, and /install for the final compiled file structure. The following paths (~/vanilla-src and ~/vanilla-build) are provided as an example, but you should select paths that make the most sense on your system.

    docker run -v ~/vanilla-src:/vanilla -v ~/vanilla-build:/install vanilla-build:latest
    

Docker should succeed, and the end result should be a ready-to-use application.