diff --git a/Dockerfile b/Dockerfile index d4f46cb..09a3970 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 && \ diff --git a/arm32v7/Dockerfile b/Dockerfile.arm32v7 similarity index 100% rename from arm32v7/Dockerfile rename to Dockerfile.arm32v7 diff --git a/arm64v8/Dockerfile b/Dockerfile.arm64v8 similarity index 100% rename from arm64v8/Dockerfile rename to Dockerfile.arm64v8 diff --git a/Dockerfile.mxe b/Dockerfile.mxe new file mode 100644 index 0000000..d839025 --- /dev/null +++ b/Dockerfile.mxe @@ -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 diff --git a/static/Dockerfile b/Dockerfile.static similarity index 66% rename from static/Dockerfile rename to Dockerfile.static index 4d34490..71c1313 100644 --- a/static/Dockerfile +++ b/Dockerfile.static @@ -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 && \ diff --git a/Dockerfile.win32d b/Dockerfile.win32d new file mode 100644 index 0000000..1186bee --- /dev/null +++ b/Dockerfile.win32d @@ -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" diff --git a/Dockerfile.win32s b/Dockerfile.win32s new file mode 100644 index 0000000..9ee71e0 --- /dev/null +++ b/Dockerfile.win32s @@ -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" diff --git a/Dockerfile.win64d b/Dockerfile.win64d new file mode 100644 index 0000000..c1137ab --- /dev/null +++ b/Dockerfile.win64d @@ -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" diff --git a/Dockerfile.win64s b/Dockerfile.win64s new file mode 100644 index 0000000..0711e1c --- /dev/null +++ b/Dockerfile.win64s @@ -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" diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..c5210e1 --- /dev/null +++ b/build.sh @@ -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 . diff --git a/notes.txt b/notes.txt index 83d2aba..333f78c 100644 --- a/notes.txt +++ b/notes.txt @@ -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 diff --git a/win32/Dockerfile b/win32/Dockerfile deleted file mode 100644 index 354f011..0000000 --- a/win32/Dockerfile +++ /dev/null @@ -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" diff --git a/win64/Dockerfile b/win64/Dockerfile deleted file mode 100644 index a164c4b..0000000 --- a/win64/Dockerfile +++ /dev/null @@ -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"