Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Qt 6
  4. Building Qt6 from source on Linux: qsb not found but it's there

Building Qt6 from source on Linux: qsb not found but it's there

Scheduled Pinned Locked Moved Unsolved Qt 6
building qtlinux
1 Posts 1 Posters 1.5k 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.
  • A Offline
    A Offline
    ale.re
    wrote on 7 Oct 2022, 13:21 last edited by
    #1

    Hello,
    I'm trying to build Qt6 for Android on Linux, but I'm having a few issues I'm not sure how to solve.
    In brief: I have a working host Qt6 installation from my distribution, I have a local Qt6 repo with matching checked-out version (v6.3.1), I have the required android tools downloaded and installed, qtcreator has green check marks all around it. Now, I just have to build Qt6 for Android. Here be dragons.

    My distribution packages Qt6 modules separately, so Qt6Base is in /opt/foo/qtbase, Qt6ShaderTools is in /opt/bar/qtshadertools and so on.

    The problem is that cmake cannot find Qt6ShaderTools, and in particular the qsb tool; but it is installed, in path and discoverable via pkg-config:

    $ which qsb
    /usr/bin/qsb
    
    $ qsb
    Usage: qsb [options] file
    Qt Shader Baker (using QShader from Qt 6.3.1)
    <cut>
    
    $ pkg-config --list-all | grep Shader
    Qt6ShaderTools            Qt6 ShaderTools - Qt ShaderTools module
    

    So, when I try to configure Qt6, I'm getting errors related to missing qsb, I tried using:

    $ ../qt6/configure -qt-host-path /opt/foo/qtbase \
                      -platform android-clang -prefix $PWD/../qt6-install \
                      -android-sdk ../android-sdk/ \
                      -android-ndk ../android-sdk/ndk/21.3.6528147/
    <cut>
    Configuring submodule 'qtbase'
    -- Could NOT find double-conversion (missing: double-conversion_DIR)
    -- Could NOT find md4c (missing: md4c_DIR)
    -- Could NOT find double-conversion (missing: double-conversion_DIR)
    -- Could NOT find md4c (missing: md4c_DIR)
    Configuring submodule 'qtimageformats'
    Configuring submodule 'qtlanguageserver'
    Configuring submodule 'qtshadertools'
    -- Could NOT find Qt6ShaderToolsTools (missing: Qt6ShaderToolsTools_DIR)
    CMake Error at qtbase/cmake/QtToolHelpers.cmake:170 (message):
      The tool "Qt6::qsb" was not found in the Qt6ShaderToolsTools package.
      Package found: 0
    Call Stack (most recent call first):
      qtshadertools/tools/qsb/CMakeLists.txt:8 (qt_internal_add_tool)
    

    This is Ok: since Qt6ShaderTools is installed in a different directory, I could expect that - for some reason - cmake couldn't find it using pkg-config alone (I also tried using the -pkg-config flag to force it). So I specified

    $ ../qt6/configure <cut> -- -DQt6ShaderToolsTools_DIR=/opt/bar/qtshadertools
    

    in the configure script, so that the flag should be passed to CMake, and indeed it is. This is the cmake command that is invoked when I specify that flag (made readable)

    '/opt/baz/cmake' '-DQT_HOST_PATH=/opt/foo/qtbase/'
                     '-Dmd4c_DIR=/opt/qux/md4c/'
                     '-DQt6ShaderToolsTools_DIR=/opt/bar/qtshadertools/'
                     '-DCMAKE_INSTALL_PREFIX=/home/my_project/qt6-android-build/../qt6-android-install'
                     '-DQT_QMAKE_TARGET_MKSPEC=android-clang'
                     '-DANDROID_SDK_ROOT=../android-sdk'
                     '-DANDROID_NDK_ROOT=../android-sdk/ndk/21.3.6528147'
                     '-G' 'Ninja' '/home/my_project/qt6'
    

    still, I get the same errors seen above

    Configuring submodule 'qtbase'
    -- Could NOT find double-conversion (missing: double-conversion_DIR)
    -- Could NOT find md4c (missing: md4c_DIR)
    -- Could NOT find double-conversion (missing: double-conversion_DIR)
    -- Could NOT find md4c (missing: md4c_DIR)
    Configuring submodule 'qtimageformats'
    Configuring submodule 'qtlanguageserver'
    Configuring submodule 'qtshadertools'
    -- Could NOT find Qt6ShaderToolsTools (missing: Qt6ShaderToolsTools_DIR)
    CMake Error at qtbase/cmake/QtToolHelpers.cmake:170 (message):
      The tool "Qt6::qsb" was not found in the Qt6ShaderToolsTools package.
      Package found: 0
    Call Stack (most recent call first):
      qtshadertools/tools/qsb/CMakeLists.txt:8 (qt_internal_add_tool)
    

    Please note that -DQt6ShaderToolsTools_DIR is set, but when configuring qtshadertools it is reported as missing. Interestingly, this holds true qhen configuring qtbase with md4c_DIR which is installed and it is set in a similar way. double-conversion is also present, but not found by pkg-config.

    I'm no cmake expert, but I used -Dblahblah_DIR in past and I expected it to work... The feeling is that such options are kind of ignored when they are passed to qtbase and qtshadertools submodules.

    Am I doing something wrong or is the cmake configuration at fault?
    Thank you!

    1 Reply Last reply
    1

    1/1

    7 Oct 2022, 13:21

    • Login

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