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. Qt6 cross compile without Wayland support
Qt 6.11 is out! See what's new in the release blog

Qt6 cross compile without Wayland support

Scheduled Pinned Locked Moved Solved Mobile and Embedded
3 Posts 1 Posters 195 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.
  • D Offline
    D Offline
    DungeonLords
    wrote last edited by
    #1

    I am building Qt from source code. At Qt 6.9.1 it worked like a charm but since Qt 6.10 or 6.11 -skip qtwayland became not enough. How to disable wayland? This is full error log:

    $ rm -Rf ${MyQtBaseDir}/build_cross/ ${MyQtBaseDir}/build_artifacts_cross/ && mkdir ${MyQtBaseDir}/build_cross ${MyQtBaseDir}/build_artifacts_cross
    cd ${MyQtBaseDir}/build_cross/
    ../qt5/configure -platform linux-g++-32 -skip qtwayland -skip qtwaylandscanner -skip qtimageformats -skip qtlanguageserver -skip qtshadertools -skip qtsvg -skip qtdeclarative -skip qtquicktimeline -skip qtquick3d -skip qtmultimedia -skip qtcharts -- -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=${MyQtBaseDir}/build_artifacts_cross -DCMAKE_TOOLCHAIN_FILE="${MyQtBaseDir}/toolchain_cross.cmake"
    cmake --build . --parallel && cmake --install .
    
    + /home/u/Qt_themself/qt5/qtbase/configure -top-level -platform linux-g++-32 -skip qtwayland -skip qtwaylandscanner -skip qtimageformats -skip qtlanguageserver -skip qtshadertools -skip qtsvg -skip qtdeclarative -skip qtquicktimeline -skip qtquick3d -skip qtmultimedia -skip qtcharts -- -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/home/u/Qt_themself/build_artifacts_cross -DCMAKE_TOOLCHAIN_FILE=/home/u/Qt_themself/toolchain_cross.cmake
    '/usr/bin/cmake' '-DBUILD_qtwayland=OFF' '-DBUILD_qtwaylandscanner=OFF' '-DBUILD_qtimageformats=OFF' '-DBUILD_qtlanguageserver=OFF' '-DBUILD_qtshadertools=OFF' '-DBUILD_qtsvg=OFF' '-DBUILD_qtdeclarative=OFF' '-DBUILD_qtquicktimeline=OFF' '-DBUILD_qtquick3d=OFF' '-DBUILD_qtmultimedia=OFF' '-DBUILD_qtcharts=OFF' '-GNinja' '-DCMAKE_BUILD_TYPE=Release' '-DQT_BUILD_EXAMPLES=OFF' '-DQT_BUILD_TESTS=OFF' '-DCMAKE_INSTALL_PREFIX=/home/u/Qt_themself/build_artifacts_cross' '-DCMAKE_TOOLCHAIN_FILE=/home/u/Qt_themself/toolchain_cross.cmake' '-DQT_INTERNAL_CALLED_FROM_CONFIGURE:BOOL=TRUE' '-DQT_QMAKE_TARGET_MKSPEC=linux-g++-32' '-G' 'Ninja' '/home/u/Qt_themself/qt5'
    -- The CXX compiler identification is GNU 13.3.0
    -- The C compiler identification is GNU 13.3.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /home/u/Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-g++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /home/u/Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-gcc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- The ASM compiler identification is GNU
    -- Found assembler: /home/u/Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-gcc
    -- Checking dependencies of submodule 'qtbase'
    -- Checking dependencies of submodule 'qtserialport'
    -- Configuring submodule 'qtbase'
    -- [QtBase] CMAKE_BUILD_TYPE was already explicitly set to: 'Release'
    -- Could NOT find Qt6WaylandScannerTools (missing: Qt6WaylandScannerTools_DIR)
    CMake Error at qtbase/cmake/QtToolHelpers.cmake:784 (message):
      Failed to find the host tool "Qt6::qtwaylandscanner".  It is part of the
      Qt6WaylandScannerTools package, but the package could not be found.  Make
      sure you have built and installed the host WaylandScanner module, which
      will ensure the creation of the Qt6WaylandScannerTools package.
    Call Stack (most recent call first):
      qtbase/cmake/QtToolHelpers.cmake:83 (qt_internal_find_tool)
      qtbase/src/tools/qtwaylandscanner/CMakeLists.txt:11 (qt_internal_add_tool)
    
    
    -- Configuring incomplete, errors occurred!
    CMake Error at /home/u/Qt_themself/qt5/qtbase/cmake/QtProcessConfigureArgs.cmake:1175 (message):
      CMake exited with code 1.
    
    
    CMake Error at /home/u/Qt_themself/qt5/cmake/QtIRProcessHelpers.cmake:173 (message):
      
      /home/u/Qt_themself/qt5/qtbase/configure
      -top-level -platform linux-g++-32 -skip qtwayland -skip qtwaylandscanner
      -skip qtimageformats -skip qtlanguageserver -skip qtshadertools -skip qtsvg
      -skip qtdeclarative -skip qtquicktimeline -skip qtquick3d -skip
      qtmultimedia -skip qtcharts -- -GNinja -DCMAKE_BUILD_TYPE=Release
      -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF
      -DCMAKE_INSTALL_PREFIX=/home/u/Qt_themself/build_artifacts_cross
      -DCMAKE_TOOLCHAIN_FILE=/home/u/Qt_themself/toolchain_cross.cmake
      exited with status: 1
    
    Call Stack (most recent call first):
      /home/u/Qt_themself/qt5/cmake/QtTopLevelHelpers.cmake:35 (qt_ir_execute_process_and_log_and_handle_error)
      /home/u/Qt_themself/qt5/cmake/QtTopLevelHelpers.cmake:57 (qt_tl_run_toplevel_configure)
      /home/u/Qt_themself/qt5/cmake/QtTopLevelConfigureScript.cmake:16 (qt_tl_run_main_script)
    
    1 Reply Last reply
    0
    • D Offline
      D Offline
      DungeonLords
      wrote last edited by DungeonLords
      #2

      I think it is a bug that since Qt 6.10 -skip qtwayland became not enough but for now we should also have set(FEATURE_qtwaylandscanner OFF) in toolchain_cross.cmake like here

      $ cat 'toolchain_cross.cmake' 
      cmake_minimum_required(VERSION 3.18)
      include_guard(GLOBAL)
      
      set(CMAKE_SYSTEM_NAME Linux)
      set(CMAKE_SYSTEM_PROCESSOR i386) #https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
      
      # set MyBaseDir to FULL PATH to LINUX_QT_TARGET_QT_HOST/Qt_themself/
      cmake_path(SET MyBaseDir "${CMAKE_CURRENT_LIST_DIR}")
      cmake_path(SET TARGET_SYSROOT  ${MyBaseDir}/../Buildroot_repo/buildroot/output/host/i586-buildroot-linux-gnu/sysroot/ NORMALIZE) #/home/a/Downloads/myGitHub/QT_QEMU_qa_automation/build_cross/../buildroot/output/host/i586-buildroot-linux-gnu/sysroot/)
      
      set(CMAKE_SYSROOT ${TARGET_SYSROOT})
      
      cmake_path(SET CMAKE_C_COMPILER ${MyBaseDir}/../Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-gcc NORMALIZE)
      # set(CMAKE_C_COMPILER  ${MyBaseDir}/../Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-gcc)
      cmake_path(SET CMAKE_CXX_COMPILER ${MyBaseDir}/../Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-g++ NORMALIZE)
      # set(CMAKE_CXX_COMPILER ${MyBaseDir}/../Buildroot_repo/buildroot/output/host/bin/i586-buildroot-linux-gnu-g++)
      
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${TARGET_SYSROOT}/usr/include") #no effect with/without: -mno-sse2
      set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") #no effect with/without: -mno-sse2
      
      set(QT_COMPILER_FLAGS "-march=i386 -mno-sse2") #no effect with/without: -mno-sse -mfpmath=387  -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -mno-ssse3 -mno-avx -mno-sse2
      set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
      set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
      
      set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
      set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
      set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
      set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
      set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
      set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
      
      #can't off this set(FEATURE_pcre2 OFF)
      set(FEATURE_opengl OFF)
      set(FEATURE_ico OFF)
      set(FEATURE_xcb OFF)
      set(FEATURE_xcb_xlib OFF)
      set(FEATURE_network ON)
      set(FEATURE_sctp OFF) # sudo apt install libsctp-dev https://stackoverflow.com/questions/53137250/netinet-sctp-h-no-such-file-or-directory
      set(FEATURE_widgets OFF)
      set(FEATURE_dbus OFF)
      set(FEATURE_dbus_linked OFF)
      set(FEATURE_gui OFF)
      set(FEATURE_sqlmodel OFF)
      set(FEATURE_sql OFF)
      # At Qt 6.9.1 worked without this line but since Qt 6.10 or 6.11 just `-skip qtwayland` became not enough
      set(FEATURE_qtwaylandscanner OFF)
      
      #new in _host.cmake file
      set(FEATURE_androiddeployqt OFF)
      set(testlib OFF)
      set(X11_SUPPORTED OFF) # more https://bugreports.qt.io/browse/QTBUG-109028
      set(FEATURE_c89 OFF)
      set(FEATURE_c99 OFF)
      set(FEATURE_pkg_config OFF)
      set(FEATURE_testlib OFF)
      set(FEATURE_translation OFF)
      set(FEATURE_xml OFF)
      #new new
      set(FEATURE_animation OFF)
      set(FEATURE_intelcet OFF)
      set(BUILD_WITH_PCH OFF)
      #build static Qt 
      set(BUILD_SHARED_LIBS OFF) #Build Qt statically (OFF) or dynamically (ON)
      set(FEATURE_static ON)
      #no qmake
      set(FEATURE_qmake OFF)
      
      #dummy old PC like>>>
      set(FEATURE_sse2 OFF)
      set(FEATURE_sse3 OFF)
      set(FEATURE_ssse3 OFF)
      set(FEATURE_sse4_1 OFF)
      set(FEATURE_sse4_2 OFF)
      
      set(FEATURE_avx OFF)
      set(FEATURE_avx2 OFF)
      set(FEATURE_avx512bw OFF)
      set(FEATURE_avx512cd OFF)
      set(FEATURE_avx512dq OFF)
      set(FEATURE_avx512er OFF)
      set(FEATURE_avx512f OFF)
      set(FEATURE_avx512ifma OFF)
      set(FEATURE_avx512pf OFF)
      set(FEATURE_avx512vbmi OFF)
      set(FEATURE_avx512vbmi2 OFF)
      set(FEATURE_avx512vl OFF)
      
      set(BUILD_WITH_PCH ON)
      
      set(FEATURE_icu OFF)
      set(FEATURE_proxymodel OFF)
      
      set(FEATURE_easingcurve OFF)
      #dummy old PC like<<<
      
      set(CMAKE_C_FLAGS_INIT "static")
      set(CMAKE_CXX_FLAGS_INIT "static")
      set(CMAKE_BUILD_TYPE "Release")
      #prefix_path_add(PREFIX /usr/lib/x86_64-linux-gnu/cmake GLOB_RECURSE '*.cmake') 
      set(HOST_TOOLSPATH ${MyBaseDir}/build_host/qtbase/lib/cmake/) 
      set(Qt6HostInfo_DIR ${HOST_TOOLSPATH}/Qt6HostInfo)
      set(Qt6CoreTools_DIR ${HOST_TOOLSPATH}/Qt6CoreTools)
      set(Qt6WidgetsTools_DIR ${HOST_TOOLSPATH}/Qt6WidgetsTools)
      set(Qt6GuiTools_DIR ${HOST_TOOLSPATH}/Qt6GuiTools)
      #i disable gut and widgets, why they throw warning???
      
      set(QT_HOST_PATH ${MyBaseDir}/build_artifacts_host/bin/)
      
      include(CMakeInitializeConfigs)
      
      function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
        if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
          set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")
              
          foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
            if (DEFINED QT_COMPILER_FLAGS_${config})
              set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
            endif()
          endforeach()
        endif()
      
      
        if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
          foreach (config SHARED MODULE EXE)
            set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
          endforeach()
        endif()
      
        _cmake_initialize_per_config_variable(${ARGV})
      endfunction()
      
      $ cat 'toolchain_host.cmake' 
      cmake_minimum_required(VERSION 3.18)
      include_guard(GLOBAL)
      
      #set(CMAKE_GENERATOR "Ninja")
      #can't off this set(FEATURE_pcre2 OFF)
      set(FEATURE_opengl OFF)
      set(FEATURE_ico OFF)
      set(FEATURE_xcb OFF)
      set(FEATURE_xcb_xlib OFF)
      set(FEATURE_network OFF)
      set(FEATURE_sctp OFF)
      set(FEATURE_widgets OFF)
      #enable signal-slot
      #set(FEATURE_dbus OFF)
      #set(FEATURE_dbus_linked OFF)
      
      set(FEATURE_gui OFF)
      #set(FEATURE_sqlmodel OFF)
      #set(FEATURE_sql OFF)
      set(FEATURE_androiddeployqt OFF)
      #set(testlib OFF)
      set(X11_SUPPORTED OFF) # more https://bugreports.qt.io/browse/QTBUG-109028
      set(FEATURE_c89 OFF)
      #set(FEATURE_c99 OFF)
      #set(FEATURE_c11 OFF)
      set(FEATURE_pkg_config OFF)
      #set(FEATURE_testlib OFF)
      #set(FEATURE_translation OFF)
      #set(FEATURE_xml OFF)
      #set(FEATURE_backtrace OFF)
      #set(FEATURE_animation OFF)
      #set(FEATURE_intelcet OFF)
      #set(BUILD_WITH_PCH OFF)
      #set(FEATURE_x86intrin OFF)
      #build static Qt 
      set(BUILD_SHARED_LIBS OFF) #Build Qt statically (OFF) or dynamically (ON)
      set(FEATURE_static ON)
      #no qmake
      #set(FEATURE_qmake OFF)
      
      set(CMAKE_C_FLAGS_INIT "static")
      set(CMAKE_CXX_FLAGS_INIT "static")
      set(CMAKE_BUILD_TYPE "Debug")
      
      include(CMakeInitializeConfigs)
      
      function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
        if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
          set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")
              
          foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
            if (DEFINED QT_COMPILER_FLAGS_${config})
              set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
            endif()
          endforeach()
        endif()
      
      
        if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
          foreach (config SHARED MODULE EXE)
            set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
          endforeach()
        endif()
      
        _cmake_initialize_per_config_variable(${ARGV})
      endfunction()
      

      About cmake_path()

      1 Reply Last reply
      1
      • D DungeonLords has marked this topic as solved
      • D Offline
        D Offline
        DungeonLords
        wrote last edited by
        #3

        Bug report here.

        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