11FROM debian:bookworm
22
33ARG THREADS=1
4- ARG QT_VERSION=v6.8.3
5- ARG QT_COMMIT=bab1fecd556ea561c4a89686293116741acfa1b4
4+ ARG QT_VERSION=v6.8.4-lts-lgpl
5+ ARG QT_COMMIT=487fcaa501534f0906dd2c19714f9052164142fc
66ARG ANDROID_NDK_REVISION=26d
77ARG ANDROID_NDK_HASH=eefeafe7ccf177de7cc57158da585e7af119bb7504a63604ad719e4b2a328b54
88ARG ANDROID_SDK_REVISION=11076708_latest
99ARG ANDROID_SDK_HASH=2d2d50857e4eb553af5a6dc3ad507a17adf43d115264b1afc116f95c92e5e258
10- ARG QT_HOST_VERSION=6.8.3
11- ARG QT_HOST_SHA256=8bbea76f5298021048f54c3e2934d7a73e2e6498ebc5a0cb30de16e24a66d847
1210
1311WORKDIR /opt/android
1412ENV WORKDIR=/opt/android
@@ -20,17 +18,18 @@ ENV ANDROID_CLANGPP=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}-clang++
2018ENV ANDROID_NDK_ROOT=${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
2119ENV ANDROID_SDK_ROOT=${WORKDIR}/cmdline-tools
2220ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
23- ENV PATH=${WORKDIR}/qt-host/bin:${WORKDIR}/qt-host/libexec:${JAVA_HOME}/bin:${PATH}
21+ ENV QT_HOST_BUILD=${WORKDIR}/qt-host
22+ ENV QT_HOST_PREFIX=${QT_HOST_BUILD}/qtbase
23+ ENV PATH=${QT_HOST_PREFIX}/bin:${QT_HOST_PREFIX}/libexec:${JAVA_HOME}/bin:${PATH}
2424ENV PREFIX=${WORKDIR}/prefix
25- ENV QT_HOST_PREFIX=${WORKDIR}/qt-host
2625ENV LD_LIBRARY_PATH=${QT_HOST_PREFIX}/lib:${QT_HOST_PREFIX}
2726ENV TOOLCHAIN_DIR=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
2827ENV DEBIAN_FRONTEND=noninteractive
2928
3029RUN apt-get update \
31- && apt-get install -y ant aria2 automake build-essential ca-certificates-java file gettext git libc6 libncurses5 \
32- libdbus-1-3 libegl1 libfontconfig1 libfreetype6 libgl1 libglib2.0-0 libgssapi-krb5-2 libssl-dev \
33- libstdc++6 libtinfo5 libtool libx11-6 libxkbcommon0 libz1 libzstd1 libarchive-tools ninja-build openjdk-17-jdk-headless \
30+ && apt-get install -y ant automake build-essential ca-certificates-java file gettext git libc6 libncurses5 \
31+ libdbus-1-3 libegl1 libfontconfig1 libfreetype6 libgl1-mesa-dev libglib2.0-0 libgssapi-krb5-2 libssl-dev \
32+ libstdc++6 libtinfo5 libtool libx11-6 libxkbcommon0 libz1 libzstd1 ninja-build openjdk-17-jdk-headless \
3433 openjdk-17-jre-headless pkg-config python3 unzip wget \
3534 && rm -rf /var/lib/apt/lists/*
3635
@@ -63,20 +62,34 @@ RUN git clone -b v4.3.3 --depth 1 https://github.com/Kitware/CMake \
6362ENV HOST_PATH=${PATH}
6463ENV PATH=${TOOLCHAIN_DIR}/aarch64-linux-android/bin:${TOOLCHAIN_DIR}/bin:${PATH}
6564
66- COPY .github/qt_helper.py /tmp/qt_helper.py
67-
68- RUN mkdir -p "${QT_HOST_PREFIX}" \
69- && cd "${QT_HOST_PREFIX}" \
70- && python3 /tmp/qt_helper.py linux_x64 desktop "${QT_HOST_VERSION}" linux_gcc_64 "${QT_HOST_SHA256}" \
71- --add-package addons.qtshadertools \
72- --archive 'qtbase-*.7z' \
73- --archive 'qtdeclarative-*.7z' \
74- --archive 'qttools-*.7z' \
75- --archive 'icu-*.7z' \
76- --archive 'qtshadertools-*.7z' \
77- && rm /tmp/qt_helper.py \
78- && printf '%s\n%s\n' "${QT_HOST_PREFIX}/lib" "${QT_HOST_PREFIX}" > /etc/ld.so.conf.d/qt-host.conf \
79- && ldconfig
65+ RUN git clone https://github.com/qt/qt5.git -b ${QT_VERSION} --depth 1 qt-sources \
66+ && git -C qt-sources reset --hard ${QT_COMMIT} \
67+ && mkdir -p "${QT_HOST_BUILD}" \
68+ && cd "${QT_HOST_BUILD}" \
69+ && PATH=${HOST_PATH} ../qt-sources/configure -init-submodules \
70+ -submodules qtbase,qtdeclarative,qtshadertools,qttools \
71+ -skip qtactiveqt \
72+ -skip qtlanguageserver \
73+ -skip qtquicktimeline \
74+ -developer-build \
75+ -opensource \
76+ -confirm-license \
77+ -release \
78+ -no-feature-assistant \
79+ -no-feature-clang \
80+ -no-feature-clangcpp \
81+ -no-feature-designer \
82+ -no-feature-distancefieldgenerator \
83+ -no-feature-pixeltool \
84+ -no-feature-qdbus \
85+ -no-feature-qdoc \
86+ -no-feature-qev \
87+ -no-feature-qtattributionsscanner \
88+ -no-feature-qtdiag \
89+ -no-feature-qtplugininfo \
90+ -nomake examples \
91+ -nomake tests \
92+ && PATH=${HOST_PATH} cmake --build . --parallel ${THREADS} --target host_tools
8093
8194ARG ZLIB_VERSION=1.3.1
8295ARG ZLIB_HASH=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
@@ -90,14 +103,12 @@ RUN wget -q https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zl
90103 && make -j${THREADS} install \
91104 && rm -rf $(pwd)
92105
93- RUN git clone https://github.com/qt/qt5.git -b ${QT_VERSION} --depth 1 qt-sources \
94- && git -C qt-sources reset --hard ${QT_COMMIT} \
95- && mkdir qt-build-android \
106+ RUN mkdir qt-build-android \
96107 && cd qt-build-android \
97108 && PATH=${HOST_PATH} ../qt-sources/configure -init-submodules \
98109 -submodules qtbase,qtdeclarative,qtshadertools,qtsvg,qttools \
99110 -prefix ${PREFIX} \
100- -qt-host-path ${QT_HOST_PREFIX} \
111+ -qt-host-path " ${QT_HOST_PREFIX}" \
101112 -android-ndk ${ANDROID_NDK_ROOT} \
102113 -android-sdk ${ANDROID_SDK_ROOT} \
103114 -android-abis arm64-v8a \
0 commit comments