|
1 | 1 | ARG IMAGE
|
2 |
| -FROM $IMAGE |
| 2 | +FROM $IMAGE AS base |
3 | 3 |
|
4 |
| -ARG RELEASE=master |
5 |
| -ARG BUILD |
6 |
| -ARG HOST |
| 4 | +USER opam |
7 | 5 |
|
8 |
| -WORKDIR /tmp |
| 6 | +ENV OPAM_MXE_DEPS=ao-windows,ffmpeg-windows,portaudio-windows,samplerate-windows,ssl-windows,srt-windows,winsvc-windows |
9 | 7 |
|
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 |
11 | 14 |
|
12 |
| -ENV CC "" |
| 15 | +USER root |
13 | 16 |
|
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 |
15 | 22 |
|
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 |
18 | 25 |
|
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 |
22 | 27 |
|
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 |
24 | 31 |
|
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'` |
26 | 33 |
|
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 / / |
0 commit comments