Skip to content

Commit d48f4f1

Browse files
committed
Update windows build.
1 parent 52441af commit d48f4f1

File tree

3 files changed

+37
-100
lines changed

3 files changed

+37
-100
lines changed

docker/Dockerfile.win32

+24-19
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,35 @@
11
ARG IMAGE
2-
FROM $IMAGE
2+
FROM $IMAGE AS base
33

4-
ARG RELEASE=master
5-
ARG BUILD
6-
ARG HOST
4+
USER opam
75

8-
WORKDIR /tmp
6+
ENV OPAM_MXE_DEPS=ao-windows,ffmpeg-windows,portaudio-windows,samplerate-windows,ssl-windows,srt-windows,winsvc-windows
97

10-
USER opam
8+
RUN eval `opam config env` && opam repository remove windows --all && \
9+
cd /home/opam/ && rm -rf opam-cross-windows && \
10+
git clone https://github.com/ocaml-cross/opam-cross-windows.git && \
11+
cd /home/opam/opam-cross-windows/ && \
12+
opam repository add windows . && \
13+
opam list --short --recursive --external --vars os-distribution=mxe,os-family=mingw --required-by=$OPAM_MXE_DEPS > /home/opam/mxe-deps
1114

12-
ENV CC ""
15+
USER root
1316

14-
RUN eval `opam config env` && opam update && opam reinstall -y pandoc `echo $OPAM_DEPS | sed -e 's#,# #g'`
17+
# We had pick our own HEAD for mxe
18+
RUN cd /usr/src/mxe/ && \
19+
git remote add savonet https://github.com/savonet/mxe.git && \
20+
git fetch savonet && \
21+
git reset --hard 5b255aa669ac479aebfd00377eb5ef95c1c6622f
1522

16-
RUN git clone --recursive https://github.com/savonet/liquidsoap.git && \
17-
cd liquidsoap && git checkout $RELEASE && ./bootstrap
23+
RUN cd /usr/src/mxe/ && \
24+
cat /home/opam/mxe-deps | xargs make curl fdk-aac
1825

19-
RUN eval `opam config env` && cd /tmp/liquidsoap && \
20-
./configure --enable-custom-path --host=$HOST OCAMLFIND_TOOLCHAIN=windows && \
21-
env OCAMLFIND_TOOLCHAIN=windows make
26+
FROM base AS build
2227

23-
RUN mkdir /tmp/win32
28+
USER opam
29+
30+
ENV PKG_CONFIG_PATH /usr/src/mxe/usr/x86_64-w64-mingw32.static/lib/pkgconfig
2431

25-
COPY --chown=opam:root win32 /tmp/win32
32+
RUN export OPAMSOLVERTIMEOUT=320 && eval `opam config env` && opam update && opam reinstall -y --verbose pandoc `echo $OPAM_MXE_DEPS | sed -e 's#,# #g'`
2633

27-
RUN eval `opam config env` && mv /tmp/win32 /tmp/liquidsoap-$BUILD && \
28-
cd /tmp/liquidsoap-$BUILD && cp /tmp/liquidsoap/src/liquidsoap.exe . && cp /tmp/liquidsoap/libs/*.liq libs && \
29-
cp -rf `ocamlfind -toolchain windows ocamlc -where`/../../share/camomile . && \
30-
cd .. && zip -r liquidsoap-$BUILD.zip liquidsoap-$BUILD
34+
FROM $IMAGE
35+
COPY --from=build / /

docker/Dockerfile.win32-deps

-46
This file was deleted.

docker/build-win32.sh

+13-35
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,17 @@
11
#!/bin/sh
22

3-
BUILD=$1
4-
RELEASE=$2
5-
SYSTEM=$3
6-
OCAML_VERSION=$4
7-
8-
if [ -z "${RELEASE}" ]; then
9-
RELEASE="main"
10-
fi
11-
12-
if [ -z "${SYSTEM}" ]; then
13-
SYSTEM="x64"
14-
fi
15-
16-
if [ -z "${OCAML_VERSION}" ]; then
17-
OCAML_VERSION=4.12.0
18-
fi
19-
3+
SYSTEM="x64"
4+
OCAML_VERSION=4.14.1
205
BASE_IMAGE="ocamlcross/windows-${SYSTEM}-base:${OCAML_VERSION}"
21-
DEPS_IMAGE="savonet/liquidsoap-win32-deps-${SYSTEM}"
226
IMAGE="savonet/liquidsoap-win32-${SYSTEM}"
23-
24-
if [ "${SYSTEM}" = "x64" ]; then
25-
HOST="x86_64-w64-mingw32.static"
26-
else
27-
HOST="i686-w64-mingw32.static"
28-
fi
29-
30-
echo docker build -f Dockerfile.win32-deps -t ${DEPS_IMAGE} \
31-
--build-arg IMAGE=${BASE_IMAGE} .
32-
33-
exit 0
34-
35-
docker build -f Dockerfile.win32 -t ${IMAGE} --no-cache --build-arg RELEASE=${RELEASE} \
36-
--build-arg IMAGE=${DEPS_IMAGE} --build-arg HOST=${HOST} --build-arg BUILD=${BUILD} .
37-
id=$(docker create ${IMAGE})
38-
docker cp ${id}:/tmp/liquidsoap-${BUILD}.zip .
39-
docker rm -v ${id}
7+
HOST="x86_64-w64-mingw32.static"
8+
9+
depot build \
10+
-f Dockerfile.win32 \
11+
-t ${IMAGE} \
12+
--platform linux/amd64 \
13+
--build-arg RELEASE=${RELEASE} \
14+
--build-arg IMAGE=${BASE_IMAGE} \
15+
--build-arg HOST=${HOST} \
16+
--build-arg BUILD=${BUILD} \
17+
.

0 commit comments

Comments
 (0)