Qt 6.11 is out! See what's new in the release
blog
Qt6 cross compile without Wayland support
-
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 qtwaylandbecame 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) -
I think it is a bug that since Qt 6.10
-skip qtwaylandbecame 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()
-
D DungeonLords has marked this topic as solved
-
Bug report here.