initial Docker support (#1308)

This commit is contained in:
Ramen2X
2025-01-02 19:16:23 -05:00
committed by GitHub
parent 10d318a5de
commit 3e5967f3f3
3 changed files with 62 additions and 0 deletions

24
docker/Dockerfile Normal file
View File

@@ -0,0 +1,24 @@
FROM debian:latest
# Gather dependencies
RUN dpkg --add-architecture i386
RUN apt-get update -y
RUN apt-get install git wine wine64 wine32 wget unzip -y
# Silence debug warnings in wine (creates noise during compile)
RUN export WINEDEBUG=-all
# Set up the wineprefix
RUN wine wineboot
# Set up MSVC 4.20 and CMake for Windows
RUN git clone https://github.com/itsmattkc/MSVC420 ~/.wine/drive_c/msvc
RUN wget https://github.com/Kitware/CMake/releases/download/v3.26.6/cmake-3.26.6-windows-i386.zip
RUN unzip cmake-3.26.6-windows-i386.zip -d ~/.wine/drive_c
RUN mv ~/.wine/drive_c/cmake-3.26.6-windows-i386 ~/.wine/drive_c/cmake
RUN rm cmake-3.26.6-windows-i386.zip
# Set up entrypoint script to perform the build
COPY entrypoint.sh entrypoint.sh
RUN chmod +x entrypoint.sh
ENTRYPOINT [ "./entrypoint.sh" ]

19
docker/entrypoint.sh Normal file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Populate the Windows path inside of the wineprefix
# TODO: This is in here because writing to the registry seems
# to fail when performed in the Dockerfile itself; investigate
wine reg ADD 'HKCU\Environment' /v PATH /d 'C:\msvc\bin;C:\msvc\bin\winnt;C:\cmake\bin;C:\windows\system32' /f
wine reg ADD 'HKCU\Environment' /v INCLUDE /d 'C:\msvc\include;C:\msvc\mfc\include' /f
wine reg ADD 'HKCU\Environment' /v LIB /d 'C:\msvc\lib;C:\msvc\mfc\lib' /f
wine reg ADD 'HKCU\Environment' /v TMP /d 'Z:\build' /f
wine reg ADD 'HKCU\Environment' /v TEMP /d 'Z:\build' /f
# Configure build with CMake
wine cmake -B build isle -G "NMake Makefiles" $CMAKE_FLAGS
# Start compiling LEGO Island
wine cmake --build build
# Unlock directories
chmod -R 777 isle build