mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-04 16:11:28 +00:00
e71e715cd3
We previously tried to build the MXE Docker container on GitHub using an Action, but that really didn't work well and was a lot more trouble than it was worth. So this goes back to an offline build mechanism where I simply create an updated Docker image when needed and push that to Docker Hub. But this nearly hides the most interesting change here - we are finally switching to using 64bit binaries on Windows. It's 2020 and fewer than 1% of our users use 32bit Windows machines. We'll need to expand this to be able to have both a 32bit and a 64bit version of Subsurface for Windows. But for now, this solves the problem for 99% of our users. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# Instructions for building the container environment and using it to build/package subsurface.
|
|
|
|
This document assumes you have alreay installed docker and have checked out subsurface according to the instructions in the INSTALL document.
|
|
|
|
If you just want to build with the current mxe build container then starting from the folder above subsurface run
|
|
|
|
```bash
|
|
docker run -v $PWD/win32:/win/win32 -v $PWD/subsurface:/win/subsurface --name=mybuilder -w /win -d subsurface/mxe-build-container:x.y /bin/sleep 60m
|
|
```
|
|
|
|
replacing the x.y in the mxe-build-container tag with the current version e.g. 2.0
|
|
|
|
Next you need to prep the container by installing some prerequisites
|
|
|
|
```bash
|
|
docker exec -t mybuilder bash subsurface/.github/workflows/scripts/windows-container-prep.sh 2>&1 | tee pre-build.log
|
|
```
|
|
|
|
Finaly the actual build is done with
|
|
```bash
|
|
docker exec -t mybuilder bash subsurface/.github/workflows/scripts/windows-in-container-build.sh 2>&1 | tee build.log
|
|
```
|
|
|
|
To get the built binary out of the container
|
|
```
|
|
docker exec -t mybuilder bash cp /subsurface-installer.exe /win/win32
|
|
```
|
|
Which will copy the installer into the win32 folder which will be a sibling of the subsurface folder.
|
|
|
|
## Modifying the container
|
|
If you want to make changes to the build environment used in the conatiner
|
|
The script scripts/docker/mxe-build-container.sh will build the Docker image itself.
|
|
The sha of the version of MXE we are using is built into this, so you can update that to whatever version is required, and modify dockerfiles and settings-stage1.mk and settings-stage2.mk to pull in any other prerequisites as required.
|
|
|
|
If you are working on updating the container then you should incrment the minor version of the variable VERSION in the script as otherwise it will clash with the version used in production
|
|
|