Progress...

This commit is contained in:
niansa 2024-03-10 17:56:10 +01:00
parent 9a8431a1de
commit 406151251b
5 changed files with 87 additions and 7 deletions

View file

@ -8,8 +8,8 @@ build linux x64:
- docker:dind
script:
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
- docker build -f Dockerfile-linux -t ${CI_REGISTRY_IMAGE}:linux-x86 .
- docker push ${CI_REGISTRY_IMAGE}:linux-x86
- docker build -f Dockerfile-linux -t ${CI_REGISTRY_IMAGE}:linux-x64 .
- docker push ${CI_REGISTRY_IMAGE}:linux-x64
build windows x64:
stage: build
@ -18,5 +18,5 @@ build windows x64:
- docker:dind
script:
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
- docker build -f Dockerfile-windows -t ${CI_REGISTRY_IMAGE}:windows-x86 .
- docker push ${CI_REGISTRY_IMAGE}:windows-x86
- docker build -f Dockerfile-windows -t ${CI_REGISTRY_IMAGE}:windows-x64 .
- docker push ${CI_REGISTRY_IMAGE}:windows-x64

View file

@ -1,11 +1,16 @@
FROM debian:trixie
COPY windows.sh /tmp/setup.sh
COPY windows.reg /tmp/setup.reg
RUN apt-get update --yes \
&& apt-get -y install wget \
&& apt-get -y install wget unzip xvfb \
&& dpkg --add-architecture i386 \
&& mkdir -pm755 /etc/apt/keyrings \
&& wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key \
&& wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources \
&& apt-get update \
&& apt-get -y install winehq-stable \
&& apt-get -y install winehq-devel \
&& apt-get clean \
&& wine winecfg
&& export WINEDEBUG=-all \
&& wine winecfg \
&& /tmp/setup.sh \
&& wineserver -k

1
test.bat Normal file
View file

@ -0,0 +1 @@
set 1=hello

BIN
windows.reg Normal file

Binary file not shown.

74
windows.sh Executable file
View file

@ -0,0 +1,74 @@
#! /bin/bash
echo
# Exit on error, rather than continuing with the rest of the script
set -e
# Utility functions
function min {
echo $(( $1 > $2 ? $2 : $1 ))
}
# Leave wineserver running in the background
setsid wineserver -p -f &
# Install tools
echo " --- Installing tools"
cd ~/.wine/drive_c/Program\ Files/
# Install CMake
echo " -- Installing CMake"
wget -q https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-windows-x86_64.zip
unzip -q *.zip
rm *.zip
mv cmake-*-windows-x86_64 cmake
# Install ccache
echo " -- Installing ccache"
wget -q https://github.com/ccache/ccache/releases/download/v4.9.1/ccache-4.9.1-windows-x86_64.zip
unzip -q *.zip
rm *.zip
mv ccache-*-windows-x86_64 ccache
# Install Ninja
echo " -- Installing Ninja"
wget -q https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip
mkdir ninja
pushd ninja/ > /dev/null
unzip -q ../ninja-win.zip
popd > /dev/null
rm *.zip
# Install LLVM toolchain
echo " -- Installing LLVM toolchain"
wget -q https://github.com/mstorsjo/llvm-mingw/releases/download/20240308/llvm-mingw-20240308-msvcrt-x86_64.zip
unzip -q *.zip
rm *.zip
mv llvm-mingw-*-x86_64 llvm
# Install registry file
echo " -- Updating PATH environment variable"
wine regedit 'Z:\tmp\setup.reg'
# Print versions
echo " -- Tools installed:"
echo -n " - " ; wine cmake.exe --version | head -1
echo -n " - " ; wine ccache.exe --version | head -1
echo -n " - Ninja " ; wine ninja.exe --version
echo -n " - " ; wine clang.exe --version | head -1
# Download and compile out-of-tree dependencies
echo " --- Installing out-of-tree dependencies"
cd ~/.wine/drive_c/
# Download and compile Boost
echo " -- Downloading Boost"
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.zip
unzip -q *.zip
rm *.zip
mv boost_* boost
cd boost
echo " -- Bootstrapping Boost (no output due to Wine workarounds)"
xvfb-run wineconsole ./bootstrap.bat clang &> /dev/null
echo " -- Compiling boost"
wine ./b2.exe -j$(min $(nproc) 4) core context # Limiting to 2 to avoid "Too many open files"