build system: Docker image creation

Just like Android, Windows binaries are best created in a container.
I still need to push the latest version to docker hub and use it on
Travis, but this way at least the Dockerfile is here.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2019-01-25 10:45:54 +13:00
parent 9f433aa759
commit f218768638
2 changed files with 90 additions and 0 deletions

View file

@ -0,0 +1,75 @@
From ubuntu:18.04
RUN mkdir -p /win
ADD settings.mk /win
RUN apt-get update && apt-get upgrade -y && \
apt-get install -y \
autoconf \
automake \
autopoint \
bash \
binutils \
bison \
bzip2 \
flex \
g++ \
g++-multilib \
gettext \
git \
gperf \
intltool \
libc6-dev-i386 \
libgdk-pixbuf2.0-dev \
libltdl-dev \
libssl-dev \
libtool-bin \
libxml-parser-perl \
make \
openssl \
p7zip-full \
patch \
perl \
pkg-config \
python \
ruby \
sed \
unzip \
wget \
xz-utils \
lzip \
scons ; \
cd /win ; git clone git://github.com/mxe/mxe ; \
cd mxe ; \
git checkout 9f6b9c6f58510bedfa0bf9f87de9a214abe6b653 ; \
mv ../settings.mk . ; \
make -j 6 2>&1 | tee build.log ; \
mkdir -p neolit ; cd neolit ; git clone -b wip/win http://code.qt.io/cgit/qt/qtconnectivity.git ; \
cd 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 ; \
rm -rf /win/mxe/pkg ; \
apt-get purge -y --auto-remove \
autopoint \
bison \
flex \
g++ \
g++-multilib \
gettext \
gperf \
intltool \
libc6-dev-i386 \
libgdk-pixbuf2.0-dev \
libltdl-dev \
libssl-dev \
libtool-bin \
libxml-parser-perl \
openssl \
p7zip-full \
perl \
python \
ruby \
unzip \
xz-utils \
lzip \
scons

View file

@ -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 := 6
# 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 qtwebkit libxml2 libxslt libusb1 libgit2 nsis curl libzip libftdi1
.DEFAULT local-pkg-list:
local-pkg-list: $(LOCAL_PKG_LIST)