diff options
Diffstat (limited to 'scripts/docker')
-rw-r--r-- | scripts/docker/mxe-build-container/Dockerfile-stage1 (renamed from scripts/docker/mxe-build-container/Dockerfile) | 16 | ||||
-rw-r--r-- | scripts/docker/mxe-build-container/Dockerfile-stage2 | 21 | ||||
-rw-r--r-- | scripts/docker/mxe-build-container/settings-stage1.mk | 15 | ||||
-rw-r--r-- | scripts/docker/mxe-build-container/settings-stage2.mk (renamed from scripts/docker/mxe-build-container/settings.mk) | 2 |
4 files changed, 44 insertions, 10 deletions
diff --git a/scripts/docker/mxe-build-container/Dockerfile b/scripts/docker/mxe-build-container/Dockerfile-stage1 index b9def62bc..501bfe6ce 100644 --- a/scripts/docker/mxe-build-container/Dockerfile +++ b/scripts/docker/mxe-build-container/Dockerfile-stage1 @@ -2,11 +2,12 @@ # docker build -t boret/myimage:0.1 --build-arg=mxe_sha=123ABC456 . # +# Start from Ubuntu From ubuntu:18.04 ARG mxe_sha=master ENV _ver=${mxe_sha} -RUN mkdir -p /win -ADD settings.mk /win + +# update and set up the packages we need for this cross build RUN apt-get update && apt-get upgrade -y RUN apt-get install -y \ autoconf \ @@ -43,6 +44,10 @@ RUN apt-get install -y \ xz-utils \ lzip \ scons + +# copy over the partial MXE settings (simply missing QtWebKit so we don't exceed the 6h limit) +RUN mkdir -p /win +ADD settings-stage1.mk /win/settings.mk RUN cd /win ; git clone git://github.com/mxe/mxe ; \ cd mxe ; \ git checkout ${_ver} ; @@ -51,10 +56,3 @@ RUN cd /win/mxe ; \ make -j 6 2>&1 | tee build.log ; RUN cd /win/mxe ; \ make MXE_TARGETS=i686-w64-mingw32.static glib -j 6 2>&1 | tee -a build.log ; -RUN cd /win/mxe ; \ - mkdir -p neolit ; cd neolit ; git clone -b wip/win git://github.com/qt/qtconnectivity -RUN cd /win/mxe/neolit/qtconnectivity ; \ - PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /win/mxe/usr/i686-w64-mingw32.shared/qt5/bin/qmake qtconnectivity.pro ; \ - PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make -j 6 ; \ - PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make install ; -RUN rm -rf /win/mxe/pkg diff --git a/scripts/docker/mxe-build-container/Dockerfile-stage2 b/scripts/docker/mxe-build-container/Dockerfile-stage2 new file mode 100644 index 000000000..a9ae812a5 --- /dev/null +++ b/scripts/docker/mxe-build-container/Dockerfile-stage2 @@ -0,0 +1,21 @@ +ARG VERSION + +# Start from the container that we created in stage 1 +From subsurface/mxe-build-container:$VERSION + +# this time the settings include QtWebKit - since everything else was built +# during the first stage, QtWebKit will be the only thing that gets built +ADD settings-stage2.mk /win/mxe/settings.mk +RUN cd /win/mxe ; \ + make -j 2 2>&1 | tee build.log ; +RUN cd /win/mxe ; \ + make MXE_TARGETS=i686-w64-mingw32.static glib -j 6 2>&1 | tee -a build.log ; + +# manually build the Win BLE version of QtConnectivity (we can drop this with Qt 5.14) +RUN cd /win/mxe ; \ + mkdir -p neolit ; cd neolit ; git clone -b wip/win git://github.com/qt/qtconnectivity +RUN cd /win/mxe/neolit/qtconnectivity ; \ + PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /win/mxe/usr/i686-w64-mingw32.shared/qt5/bin/qmake qtconnectivity.pro ; \ + PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make -j 6 ; \ + PATH=/win/mxe/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make install ; +RUN rm -rf /win/mxe/pkg diff --git a/scripts/docker/mxe-build-container/settings-stage1.mk b/scripts/docker/mxe-build-container/settings-stage1.mk new file mode 100644 index 000000000..5563f259a --- /dev/null +++ b/scripts/docker/mxe-build-container/settings-stage1.mk @@ -0,0 +1,15 @@ +# This is a template of configuration file for MXE. See +# index.html for more extensive documentations. + +# This variable controls the number of compilation processes +# within one package ("intra-package parallelism"). +JOBS := 2 + +# This variable controls the targets that will build. +MXE_TARGETS := i686-w64-mingw32.shared + +# The three lines below makes `make` build these "local packages" instead of all packages. +LOCAL_PKG_LIST := qtbase qtconnectivity qtdeclarative qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtscript qtsvg qttools qttranslations qtwebview libxml2 libxslt libusb1 libgit2 nsis curl libzip libftdi1 +.DEFAULT local-pkg-list: +local-pkg-list: $(LOCAL_PKG_LIST) + diff --git a/scripts/docker/mxe-build-container/settings.mk b/scripts/docker/mxe-build-container/settings-stage2.mk index aadfc4c6f..452961338 100644 --- a/scripts/docker/mxe-build-container/settings.mk +++ b/scripts/docker/mxe-build-container/settings-stage2.mk @@ -3,7 +3,7 @@ # This variable controls the number of compilation processes # within one package ("intra-package parallelism"). -JOBS := 6 +JOBS := 2 # This variable controls the targets that will build. MXE_TARGETS := i686-w64-mingw32.shared |