Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-113664

QtPdf for Android crossbuild: missing build dependencies

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 6.5.1
    • Build System, WebEngine
    • None

    Description

      While trying to build QtPdf with the configuration command below (with qtwebengine_build disabled), I found the configuration passes.

      However, build fails with errors showing that some dependencies are missing.

      Configuration command:

      cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON -GNinja -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu --log-level=STATUS -DCMAKE_INSTALL_PREFIX=/usr/lib/qt-android-6.5-arm64-v8a -DBUILD_WITH_PCH=OFF -DANDROID_SDK_ROOT=/builds/bastif/qt-android/android-sdk -DCMAKE_TOOLCHAIN_FILE=/builds/bastif/qt-android/r25b/android-ndk-r25b/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DQT_USE_CCACHE=ON -DQT_HOST_PATH=/usr/lib/qt-android-6.5-host -DCMAKE_BUILD_TYPE=Release -DBUILD_qtwayland=OFF -DFEATURE_qtwebengine_build=OFF -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON ../..
      

      I actually had to install also the packages providing:

      • "pkg-config"
      • "gio-2.0.pc / glib-2.0.pc"
      • "nss.pc"
      • "libdrm.pc"
      • "dbus-1.pc"

      Are these dependencies really required to crossbuild QtPdf for Android?

      If not, maybe the build of the components requiring them can be disbled?
      If they are required, maybe there should be a check at configuration time?

      Errors reported:

      • "pkg-config"
        CMake Error at /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/cmake/Gn.cmake:75 (message):
        
          -- GN FAILED
          ERROR at //build/config/linux/pkg_config.gni:104:17
          (//build/toolchain/linux:clang_x64): Script returned non-zero exit code.
              pkgresult = exec_script(pkg_config_script, args, "value")
                          ^----------
          Current dir:
          /builds/bastif/qt-android/debian/output/source_dir/debian/build-arm64-v8a/qtwebengine/src/pdf/Release/aarch64/
          Command: /usr/bin/python3
          /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/src/3rdparty/chromium/build/config/linux/pkg-config.py
          nss -v -lssl3
          Returned 1.
          stderr:
        
          Could not run pkg-config.
        
          See //build/config/linux/nss/BUILD.gn:11:3: whence it was called.
            pkg_config("nss") {
            ^------------------
          See //net/BUILD.gn:1452:24: which caused the file to be included.
              public_configs = [ "//build/config/linux/nss" ]
                                 ^-------------------------
        
        
          1
        
      • "gio-2.0.pc / glib-2.0.pc"
            CMake Error at /mnt/packages/git_repos/dpkg/qt-android/qtwebengine/cmake/Gn.cmake:75 (message):
        
              -- GN FAILED
        
              ERROR at //build/config/linux/pkg_config.gni:104:17
              (//build/toolchain/linux:clang_x64): Script returned non-zero exit code.
        
                  pkgresult = exec_script(pkg_config_script, args, "value")
                              ^----------
        
              Current dir:
              /mnt/packages/git_repos/dpkg/qt-android/debian/mm/qtwebengine/src/pdf/Release/i686/
        
              Command: /usr/bin/python3
              /mnt/packages/git_repos/dpkg/qt-android/qtwebengine/src/3rdparty/chromium/build/config/linux/pkg-config.py
              gio-2.0
        
              Returned 1.
        
              stderr:
        
              Package gio-2.0 was not found in the pkg-config search path.
        
              Perhaps you should add the directory containing `gio-2.0.pc'
        
              to the PKG_CONFIG_PATH environment variable
        
              Package 'gio-2.0', required by 'virtual:world', not found
        
              Could not run pkg-config.
        
              See //build/linux/BUILD.gn:9:3: whence it was called.
        
                pkg_config("gio_config") {
                ^-------------------------
        
              See //net/BUILD.gn:1659:25: which caused the file to be included.
        
                  public_configs += [ "//build/linux:gio_config" ]
                                      ^-------------------------
        
              1
        
        
      • "nss.pc"
              ERROR at //build/config/linux/pkg_config.gni:104:17
              (//build/toolchain/linux:clang_x64): Script returned non-zero exit code.
                  pkgresult = exec_script(pkg_config_script, args, "value")
                              ^----------
              Current dir:
              /builds/bastif/qt-android/debian/output/source_dir/debian/build-arm64-v8a/qtwebengine/src/pdf/Release/aarch64/
              Command: /usr/bin/python3
              /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/src/3rdparty/chromium/build/config/linux/pkg-config.py
              nss -v -lssl3
              Returned 1.
              stderr:
        
              Package nss was not found in the pkg-config search path.
              Perhaps you should add the directory containing `nss.pc'
              to the PKG_CONFIG_PATH environment variable
              No package 'nss' found
              Could not run pkg-config.
        
              See //build/config/linux/nss/BUILD.gn:11:3: whence it was called.
                pkg_config("nss") {
                ^------------------
              See //net/BUILD.gn:1452:24: which caused the file to be included.
                  public_configs = [ "//build/config/linux/nss" ]
                                     ^-------------------------
        
              1
        
        
      • "libdrm.pc"
        CMake Error at /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/cmake/Gn.cmake:75 (message):
        
          -- GN FAILED
          ERROR at //build/config/linux/pkg_config.gni:104:17
          (//build/toolchain/linux:clang_x64): Script returned non-zero exit code.
              pkgresult = exec_script(pkg_config_script, args, "value")
                          ^----------
          Current dir:
          /builds/bastif/qt-android/debian/output/source_dir/debian/build-arm64-v8a/qtwebengine/src/pdf/Release/aarch64/
          Command: /usr/bin/python3
          /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/src/3rdparty/chromium/build/config/linux/pkg-config.py
          libdrm
          Returned 1.
          stderr:
        
          Package libdrm was not found in the pkg-config search path.
          Perhaps you should add the directory containing `libdrm.pc'
          to the PKG_CONFIG_PATH environment variable
          No package 'libdrm' found
          Could not run pkg-config.
        
          See //build/config/linux/libdrm/BUILD.gn:18:3: whence it was called.
            pkg_config("libdrm_config") {
            ^----------------------------
          See //ui/gfx/BUILD.gn:594:15: which caused the file to be included.
              deps += [ "//build/config/linux/libdrm" ]
                        ^----------------------------
        
        
          1
        
      • "dbus-1.pc"
        CMake Error at /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/cmake/Gn.cmake:75 (message):
        
          -- GN FAILED
          ERROR at //build/config/linux/pkg_config.gni:104:17
          (//build/toolchain/linux:clang_x64): Script returned non-zero exit code.
              pkgresult = exec_script(pkg_config_script, args, "value")
                          ^----------
          Current dir:
          /builds/bastif/qt-android/debian/output/source_dir/debian/build-arm64-v8a/qtwebengine/src/pdf/Release/aarch64/
          Command: /usr/bin/python3
          /builds/bastif/qt-android/debian/output/source_dir/qtwebengine/src/3rdparty/chromium/build/config/linux/pkg-config.py
          dbus-1
          Returned 1.
          stderr:
        
          Package dbus-1 was not found in the pkg-config search path.
          Perhaps you should add the directory containing `dbus-1.pc'
          to the PKG_CONFIG_PATH environment variable
          No package 'dbus-1' found
          Could not run pkg-config.
        
          See //build/config/linux/dbus/BUILD.gn:12:1: whence it was called.
          pkg_config("dbus") {
          ^-------------------
          See //dbus/BUILD.gn:46:22: which caused the file to be included.
            public_configs = [ "//build/config/linux/dbus" ]
                               ^--------------------------
        
        
          1
        

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            ban F S
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes