This commit is contained in:
Faraz Fallahi
2020-06-06 16:50:44 -04:00
parent 62f9fd016d
commit a42a4f6238
13 changed files with 105 additions and 70 deletions

View File

@@ -5,10 +5,11 @@ RUN \
export DEBIAN_FRONTEND=noninteractive && \
apt update && \
apt -y upgrade && \
apt -y install bash build-essential clang cmake cppcheck curl gdb git gperf \
iputils-ping libboost-all-dev libgl1-mesa-dev libjemalloc2 libjemalloc-dev libmlpack-dev \
linux-tools-generic nano valgrind wget spawn-fcgi libfcgi-dev \
qt5-default && \
apt -y install \
bash build-essential clang cmake cppcheck curl gdb git gperf iputils-ping \
libboost-all-dev libfcgi-dev libgl1-mesa-dev libjemalloc-dev libjemalloc2 \
libmlpack-dev linux-tools-generic nano spawn-fcgi valgrind wget \
qt5-default && \
apt -y autoremove && \
apt -y autoclean && \
apt -y clean && \

18
Dockerfile.mxe Normal file
View File

@@ -0,0 +1,18 @@
FROM ubuntu:latest
ENTRYPOINT ["/bin/bash"]
RUN \
export DEBIAN_FRONTEND=noninteractive && \
apt -y update && \
apt -y upgrade && \
apt -y install
autoconf automake autopoint bash bison build-essential bzip2 flex \
g++ g++-multilib gettext git gperf intltool iputils-ping libc6-dev-i386 \
libffi-dev libgdk-pixbuf2.0-dev libltdl-dev libssl-dev libtool-bin \
libxml-parser-perl lzip make nano openssl p7zip-full patch perl \
pkg-config python ruby scons sed unzip wget xz-utils && \
apt -y autoremove && \
apt -y autoclean && \
apt -y clean && \
rm -rf /var/lib/apt/lists/* && \
exit 0

View File

@@ -5,10 +5,12 @@ RUN \
export DEBIAN_FRONTEND=noninteractive && \
apt -y update && \
apt -y upgrade && \
apt -y install build-essential cmake gdb git iputils-ping nano perl python valgrind wget lzip \
mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev \
zlib1g-dev libssl-dev libnss3-dev libmysqlclient-dev libsqlite3-dev libxslt-dev libxml2-dev libjpeg-dev libpng-dev libopus-dev \
libxcursor-dev libxcb1-dev libxcb-xkb-dev libx11-xcb-dev libxrender-dev libxi-dev libxcb-xinerama0-dev && \
apt -y install \
build-essential cmake freeglut3-dev gdb git iputils-ping libgl1-mesa-dev \
libglu1-mesa-dev libjpeg-dev libmysqlclient-dev libnss3-dev libopus-dev \
libpng-dev libsqlite3-dev libssl-dev libx11-xcb-dev libxcb-xinerama0-dev \
libxcb-xkb-dev libxcb1-dev libxcursor-dev libxi-dev libxml2-dev libxrender-dev \
libxslt-dev lzip mesa-common-dev nano perl python valgrind wget zlib1g-dev && \
apt -y autoremove && \
apt -y autoclean && \
apt -y clean && \

13
Dockerfile.win32d Normal file
View File

@@ -0,0 +1,13 @@
FROM fffaraz/qt:mxe
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='i686-w64-mingw32.shared' qtbase && \
ln -s /opt/mxe/usr/bin/i686-w64-mingw32.shared-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"

13
Dockerfile.win32s Normal file
View File

@@ -0,0 +1,13 @@
FROM fffaraz/qt:mxe
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='i686-w64-mingw32.static' qtbase && \
ln -s /opt/mxe/usr/bin/i686-w64-mingw32.static-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"

13
Dockerfile.win64d Normal file
View File

@@ -0,0 +1,13 @@
FROM fffaraz/qt:mxe
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='x86_64-w64-mingw32.shared' qtbase && \
ln -s /opt/mxe/usr/bin/x86_64-w64-mingw32.shared-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"

13
Dockerfile.win64s Normal file
View File

@@ -0,0 +1,13 @@
FROM fffaraz/qt:mxe
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='x86_64-w64-mingw32.static' qtbase && \
ln -s /opt/mxe/usr/bin/x86_64-w64-mingw32.static-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"

23
build.sh Normal file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
set -euxo pipefail
# Ubuntu dynamically linked
docker build --force-rm -f Dockerfile -t fffaraz/qt:latest .
# Ubuntu statically linked
docker build --force-rm -f Dockerfile.static -t fffaraz/qt:static .
# MXE (M cross environment)
docker build --force-rm -f Dockerfile.mxe -t fffaraz/qt:mxe .
# Windows 32bit statically linked
docker build --force-rm -f Dockerfile.win32s -t fffaraz/qt:latest .
# Windows 64bit statically linked
docker build --force-rm -f Dockerfile.win64s -t fffaraz/qt:static .
# Windows 32bit dynamically linked
docker build --force-rm -f Dockerfile.win32d -t fffaraz/qt:latest .
# Windows 64bit dynamically linked
docker build --force-rm -f Dockerfile.win64d -t fffaraz/qt:static .

View File

@@ -2,4 +2,5 @@ https://github.com/darkmattercoder/qt-build
echo 'override MXE_PLUGIN_DIRS += plugins/gcc7' >> settings.mk
qt5
qtbase qtcharts qtdeclarative qtquickcontrols qtquickcontrols2

View File

@@ -1,31 +0,0 @@
FROM ubuntu:latest
ENTRYPOINT ["/bin/bash"]
RUN \
export DEBIAN_FRONTEND=noninteractive && \
apt -y update && \
apt -y upgrade && \
apt -y install build-essential iputils-ping nano \
autoconf automake autopoint bash bison bzip2 flex gettext \
git g++ gperf intltool libffi-dev libgdk-pixbuf2.0-dev \
libtool-bin libltdl-dev libssl-dev libxml-parser-perl lzip make \
openssl p7zip-full lzip patch perl pkg-config python ruby scons \
sed unzip wget xz-utils \
g++-multilib libc6-dev-i386 && \
apt -y autoremove && \
apt -y autoclean && \
apt -y clean && \
rm -rf /var/lib/apt/lists/* && \
exit 0
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='i686-w64-mingw32.static' qtbase && \
ln -s /opt/mxe/usr/bin/i686-w64-mingw32.static-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"

View File

@@ -1,31 +0,0 @@
FROM ubuntu:latest
ENTRYPOINT ["/bin/bash"]
RUN \
export DEBIAN_FRONTEND=noninteractive && \
apt -y update && \
apt -y upgrade && \
apt -y install build-essential iputils-ping nano \
autoconf automake autopoint bash bison bzip2 flex gettext \
git g++ gperf intltool libffi-dev libgdk-pixbuf2.0-dev \
libtool-bin libltdl-dev libssl-dev libxml-parser-perl lzip make \
openssl p7zip-full lzip patch perl pkg-config python ruby scons \
sed unzip wget xz-utils \
g++-multilib libc6-dev-i386 && \
apt -y autoremove && \
apt -y autoclean && \
apt -y clean && \
rm -rf /var/lib/apt/lists/* && \
exit 0
RUN \
cd /opt && \
git clone https://github.com/mxe/mxe.git && \
cd /opt/mxe && \
NPROC=$(($(nproc)+4)) && \
make --jobs=$NPROC JOBS=$NPROC MXE_TARGETS='x86_64-w64-mingw32.static' qtbase && \
ln -s /opt/mxe/usr/bin/x86_64-w64-mingw32.static-qmake-qt5 /usr/bin/qmake && \
qmake --version && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/bin"