diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2019-01-25 10:45:54 +1300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-01-25 10:46:39 +1300 |
commit | f2187686380eb9df74189486d1d9d913fab0587d (patch) | |
tree | fed153ad494f2e7683b6ac5ffd2b05d4b50e0dcf /scripts | |
parent | 9f433aa7590f568a9b1dbbc7d80443201656d940 (diff) | |
download | subsurface-f2187686380eb9df74189486d1d9d913fab0587d.tar.gz |
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>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/docker/mxe-build-container/Dockerfile | 75 | ||||
-rw-r--r-- | scripts/docker/mxe-build-container/settings.mk | 15 |
2 files changed, 90 insertions, 0 deletions
diff --git a/scripts/docker/mxe-build-container/Dockerfile b/scripts/docker/mxe-build-container/Dockerfile new file mode 100644 index 000000000..ec55b1e22 --- /dev/null +++ b/scripts/docker/mxe-build-container/Dockerfile @@ -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 diff --git a/scripts/docker/mxe-build-container/settings.mk b/scripts/docker/mxe-build-container/settings.mk new file mode 100644 index 000000000..aadfc4c6f --- /dev/null +++ b/scripts/docker/mxe-build-container/settings.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 := 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) + |