Qt6 static build on windows with submodules (#19)

* Create Dockerfile.win64sm

This Dockerfile prepares and environment for building Qt6 static applications on Win64 with modules like multimedia and serial port

* Update README.md

Add Submodule build
This commit is contained in:
Johannes Winkler
2024-04-11 04:30:04 +02:00
committed by GitHub
parent 257fa9fb0c
commit 6b7ad24669
2 changed files with 32 additions and 0 deletions

23
Dockerfile.win64sm Normal file
View File

@@ -0,0 +1,23 @@
FROM fffaraz/qt:mxe
RUN \
cd /opt/mxe && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-conf && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtcharts && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtsvg && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qttools && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtwebsockets && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtserialport && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtmultimedia && \
make --jobs=$(nproc) JOBS=$(nproc) MXE_TARGETS='x86_64-w64-mingw32.static' qt6-qtbase && \
exit 0
ENV PATH="${PATH}:/opt/mxe/usr/x86_64-w64-mingw32.static/qt6/bin"
RUN \
set -eux && \
echo $PATH && \
ln -s /opt/mxe/usr/bin/x86_64-w64-mingw32.static-cmake /usr/local/bin/cmake && \
cmake --version && \
qmake --version && \
exit 0

View File

@@ -21,3 +21,12 @@ cd /app
qmake
make -j $(nproc)
```
* Windows 64bit Cross-compiled Statically Linked with Qt6 Submodules (Multimedia, Serialport, ...)
```
docker build --force-rm -f Dockerfile.win64sm -t fffaraz/qt:win64sm .
docker run --rm -it -v $(pwd):/app fffaraz/qt:win64sm
cd /app
qmake
make -j $(nproc)
```