A docker image to facilitate building homebrew apps across multi-platforms. Based on Spheal, but has support for both arm64 and amd64 architectures.
Sealeo's primary goal is to just bundle together all of the needed deps to build Chesto projects (such as hb-appstore) across multiple different platforms. These dependencies are rolled up katamari-style in a docker image and are then available via CI or locally to any projects that may need them. This stems from a desire to just get one environment where hb-appstore can be built cross-platform without having to worry about what is or isn't installed.
Building is deterministic since the deps are locked into the image, and also potentially faster as every single job in a CI context no longer has to re-fetch its own dependencies.
Can be executed from the root of your chesto git project. Export the PLATFORM env variable to point to the target that you want to build for.
export PLATFORM=switch # or wiiu, 3ds, wii, pc
docker run -v $(pwd):/code -it ghcr.io/fortheusers/sealeo "make $PLATFORM"
On Windows, you may need to replace $(pwd)
with ${PWD}
, or %CD%
.
To enter a shell in the container without running make, you can run bash:
docker run -v $(pwd):/code -it ghcr.io/fortheusers/sealeo /bin/bash
This can be useful for non-Chesto projects or to debug code interactively.
The image is based on debian
, inside is the following:
- sdl2 and curl for PC, wiiu, switch, wii, 3ds
- dkP toolchains: devkitA64, devkitARM, devkitPPC
- platform libs: wut, libnx, libogc, libctru
If you don't need all of the above in one image, you're better off trying out one of dkP's own containers and using that as a base. Sealeo does not use this approach in favor of working across multiple architectures, having all toolchains in one image, and being able to control which versions make it into the image.
The homebrew targets are only possible thanks to dkP's toolchains, you can support them on Patreon for their efforts.