Qt 6.12 LTS is out! See what's new in the release
blog
While building qt base for android why are openssl headers, the jpeg, PNG, harfbuzz and freetype libraries unable to be found
-
I am trying to build qt base. I define these variables
INSTALLDIR="$1" if [ "${INSTALLDIR:0:1}" != "/" ]; then INSTALLDIR="$PWD/$INSTALLDIR" fi # Set Android NDK and target architecture ANDROID_SDK_PATH="/home/swami/Android/Sdk/" ANDROID_NDK_PATH="/home/swami/Android/Sdk/ndk/29.0.13113456/" ANDROID_API_LEVEL=21 # Adjust this to your target API level ANDROID_ARCH="arm64-v8a" # Change this to your desired architecture (e.g., armv7a, x86, etc.) export ANDROID_SDK=$ANDROID_SDK_PATH export ANDROID_NDK=$ANDROID_NDK_PATH export ANDROID_API=$ANDROID_API_LEVEL export ANDROID_ARCH=$ANDROID_ARCHIn my script I am building qt base like this:
echo "Building Qt Base..." rm -fr "qtbase-everywhere-src-$QT" tar xf "qtbase-everywhere-src-$QT.tar.xz" cd "qtbase-everywhere-src-$QT" mkdir build-host cd build-host ../configure -developer-build -nomake tests -nomake examples cmake --build . --target host_tools cd .. mkdir build cd ./build # Configure Qt for Android ../configure -prefix "$INSTALLDIR" \ -release \ -android-ndk "$ANDROID_NDK" \ -android-sdk "$ANDROID_SDK" \ -android-abis "$ANDROID_ARCH" \ -qt-host-path "../build-host" \ -qt-doubleconversion \ -ssl -openssl-runtime \ -opengl es2 \ -no-dbus \ -no-xcb \ -no-gtk \ -xkbcommon \ -- -DFEATURE_dbus=OFF \ -DFEATURE_icu=OFF \ -DFEATURE_printsupport=OFF \ -DFEATURE_sql=OFF \ -DFEATURE_system_png=ON \ -DFEATURE_system_jpeg=ON \ -DFEATURE_system_zlib=ON \ -DFEATURE_system_freetype=ON \ -DFEATURE_system_harfbuzz=ON cmake --build . --parallel ninja install cd ../../I build the libraries that qt needs as such:
echo "Building Freetype..." git clone https://gitlab.freedesktop.org/freetype/freetype.git cd freetype ./autogen.sh ./configure --prefix="$INSTALLDIR" \ --host=arm-linux-androideabi \ --build=x86_64-linux-gnu \ --with-android-ndk=$ANDROID_NDK\ --with-zlib=yes \ --with-png=yes \ --with-harfbuzz=no make && make install cd .. echo "Building Harfbuzz..." git clone https://github.com/harfbuzz/harfbuzz.git cd harfbuzz cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_PATH/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=arm64-v8a \ -DANDROID_NATIVE_API_LEVEL=21 \ -DCMAKE_PREFIX_PATH="$INSTALLDIR" \ -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" \ -DBUILD_SHARED_LIBS=ON \ -Dcoretext=disabled \ -Dfreetype=enabled \ -Dglib=disabled \ -B build \ -G Ninja cmake --build build --parallel ninja -C build install cd .. git clone https://github.com/openssl/openssl.git cd openssl git checkout openssl-3.2.2 ./Configure android-arm64 no-shared \ -D__ANDROID_API__=$ANDROID_API \ --prefix="$INSTALLDIR" \ --with-zlib-include="$INSTALLDIR/include" \ --with-zlib-lib="$INSTALLDIR/lib" make -j$(nproc) SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so build_libs make install cd .. echo "Building SDL..." rm -fr "$SDL" tar xf "$SDL.tar.gz" cd "$SDL" cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_PATH/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=arm64-v8a \ -DANDROID_NATIVE_API_LEVEL=21 \ -DCMAKE_PREFIX_PATH="$INSTALLDIR" \ -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" \ -DBUILD_SHARED_LIBS=ON \ -DSDL_SHARED=ON \ -DSDL_STATIC=OFF \ -B build \ -G Ninja cmake --build build --parallel ninja -C build install cd ..But i keep getting cmake errors while build qt base:
CMake Error at cmake/QtBuildInformation.cmake:534 (message): Feature "openssl_runtime": Forcing to "ON" breaks its condition: TEST_opensslv11_headers OR TEST_opensslv30_headers Condition values dump: TEST_opensslv11_headers = "FALSE" TEST_opensslv30_headers = "FALSE" Call Stack (most recent call first): cmake/QtFeature.cmake:322 (qt_configure_add_report_error) cmake/QtFeature.cmake:442 (qt_feature_check_and_save_internal_value) cmake/QtFeature.cmake:141 (qt_evaluate_feature) cmake/QtFeature.cmake:180 (qt_internal_evaluate_config_expression) cmake/QtFeature.cmake:396 (qt_evaluate_config_expression) cmake/QtFeature.cmake:711 (qt_evaluate_feature) cmake/QtBaseGlobalTargets.cmake:109 (qt_feature_module_end) cmake/QtBaseHelpers.cmake:186 (include) CMakeLists.txt:32 (qt_internal_qtbase_build_repo) CMake Error at cmake/QtBuildInformation.cmake:534 (message): Feature "system_freetype": Forcing to "ON" breaks its condition: QT_FEATURE_freetype AND WrapSystemFreetype_FOUND Condition values dump: QT_FEATURE_freetype = "ON" WrapSystemFreetype_FOUND = "FALSE" Call Stack (most recent call first): cmake/QtFeature.cmake:322 (qt_configure_add_report_error) cmake/QtFeature.cmake:442 (qt_feature_check_and_save_internal_value) cmake/QtFeature.cmake:141 (qt_evaluate_feature) cmake/QtFeature.cmake:180 (qt_internal_evaluate_config_expression) cmake/QtFeature.cmake:396 (qt_evaluate_config_expression) cmake/QtFeature.cmake:711 (qt_evaluate_feature) cmake/QtFeature.cmake:680 (qt_feature_module_end) src/CMakeLists.txt:13 (qt_feature_evaluate_features) CMake Error at cmake/QtBuildInformation.cmake:534 (message): Feature "system_harfbuzz": Forcing to "ON" breaks its condition: QT_FEATURE_harfbuzz AND WrapSystemHarfbuzz_FOUND Condition values dump: QT_FEATURE_harfbuzz = "ON" WrapSystemHarfbuzz_FOUND = "FALSE"I am not sure I understand why, I define the prefix path so I don't understand why these libraries are not being found