Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. While building qt base for android why are openssl headers, the jpeg, PNG, harfbuzz and freetype libraries unable to be found
Forum Update on Monday, May 27th 2025

While building qt base for android why are openssl headers, the jpeg, PNG, harfbuzz and freetype libraries unable to be found

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
androidbuildcmakeharfbuzzfreetype
1 Posts 1 Posters 72 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    uddivert
    wrote on last edited by
    #1

    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_ARCH
    

    In 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

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved