Skip to content

Conversation

@TriVoxel
Copy link

@TriVoxel TriVoxel commented Jan 8, 2026

This fixes the path which lets Linux builds succeed. Seems this file moved around between QT versions.

This fixes the path which lets Linux builds succeed. Seems this file moved around between QT versions.
@JoshuaVandaele
Copy link
Contributor

It looks like your include dirs are a bit off. The GuiPrivate include directory should be /usr/include/qt6/QtGui/<version>/QtGui, which is where qpa resides and would therefore not require prefixing QtGui in this #include. Do you have the qt6 base private package for your distro installed? e.g. qt6-base-private-dev on Ubuntu/Debian (see the wiki)

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

@JoshuaVandaele I'm running Fedora 42. I do have all the qt6 development packages installed, including that one you mentioned. For whatever reason, builds were failing until I specified that root folder there.

@JoshuaVandaele
Copy link
Contributor

Just to be 100% sure - The qt6-qtbase-private-devel package is installed on your system? I cannot reproduce this issue locally under a Fedora Docker container.

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

It looks like my /usr/include/qt6 contains all the files for the given version, not subfolders for each version. I installed the QT6 SDK from Fedora's repos, which are version 6.9.3.

Just to be 100% sure - The qt6-qtbase-private-devel package is installed on your system? I cannot reproduce this issue locally under a Fedora Docker container.

Yes. Here's the granular info:

> dnf info qt6-qtbase-private-devel
Updating and loading repositories:
Repositories loaded.
Installed packages
Name            : qt6-qtbase-private-devel
Epoch           : 0
Version         : 6.9.3
Release         : 1.fc42
Architecture    : x86_64
Installed size  : 4.5 MiB
Source          : qt6-qtbase-6.9.3-1.fc42.src.rpm
From repository : updates
Summary         : Development files for qt6-qtbase private APIs
URL             : http://qt-project.org/
License         : LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
Description     : Development files for qt6-qtbase private APIs.
Vendor          : Fedora Project

Available packages
Name           : qt6-qtbase-private-devel
Epoch          : 0
Version        : 6.9.3
Release        : 1.fc42
Architecture   : i686
Download size  : 1.0 MiB
Installed size : 4.5 MiB
Source         : qt6-qtbase-6.9.3-1.fc42.src.rpm
Repository     : updates
Summary        : Development files for qt6-qtbase private APIs
URL            : http://qt-project.org/
License        : LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
Description    : Development files for qt6-qtbase private APIs.
Vendor         : Fedora Project

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

Oof. Might need to add a condition in there specific to Linux if the build succeeds on macOS. It might be because I'm on a newer QT version that the CI. I'm assuming the CI is based on Ubuntu or Debian.

@JoshuaVandaele
Copy link
Contributor

Oof. Might need to add a condition in there specific to Linux if the build succeeds on macOS. It might be because I'm on a newer QT version that the CI. I'm assuming the CI is based on Ubuntu or Debian.

The macOS builder has been having issues lately, I believe this is unrelated to this PR.

@JoshuaVandaele
Copy link
Contributor

@TriVoxel Could you in an empty directory create a CMakeLists.txt file and show me the output of cmake . with this content:

find_package(Qt6 REQUIRED COMPONENTS Gui)

message(STATUS "Qt6Gui_PRIVATE_INCLUDE_DIRS: ${Qt6Gui_PRIVATE_INCLUDE_DIRS}")

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

@JoshuaVandaele Following your instructions, I created an empty folder containing CMakeLists.txt with your code snippet inside. Here's the trimmed output:

-- The C compiler identification is GNU 15.2.1
-- The CXX compiler identification is GNU 15.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found WrapVulkanHeaders: /usr/include
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Qt6Gui_PRIVATE_INCLUDE_DIRS: $<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:/usr/include/qt6/QtGui/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:/usr/include/qt6/QtGui/6.9.3/QtGui>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:/usr/include/qt6/QtCore/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:/usr/include/qt6/QtCore/6.9.3/QtCore>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:/usr/include/qt6/QtDBus/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:/usr/include/qt6/QtDBus/6.9.3/QtDBus>
-- Configuring incomplete, errors occurred!
verbose output
CMake Warning (dev) in CMakeLists.txt:
No project() command is present.  The top-level CMakeLists.txt file must
contain a literal, direct call to the project() command.  Add a line of
code such as

  project(ProjectName)

near the top of the file, but after cmake_minimum_required().

CMake is pretending there is a "project(Project)" command on the first
line.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) in CMakeLists.txt:
cmake_minimum_required() should be called prior to this top-level project()
call.  Please see the cmake-commands(7) manual for usage documentation of
both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 15.2.1
-- The CXX compiler identification is GNU 15.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found WrapVulkanHeaders: /usr/include
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Qt6Gui_PRIVATE_INCLUDE_DIRS: $<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:/usr/include/qt6/QtGui/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Gui,_qt_module_has_private_headers>>:/usr/include/qt6/QtGui/6.9.3/QtGui>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:/usr/include/qt6/QtCore/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::Core,_qt_module_has_private_headers>>:/usr/include/qt6/QtCore/6.9.3/QtCore>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:/usr/include/qt6/QtDBus/6.9.3>;$<$<BOOL:$<TARGET_PROPERTY:Qt6::DBus,_qt_module_has_private_headers>>:/usr/include/qt6/QtDBus/6.9.3/QtDBus>
CMake Error in CMakeLists.txt:
No cmake_minimum_required command is present.  A line of code such as

  cmake_minimum_required(VERSION 3.31)

should be added at the top of the file.  The version specified may be lower
if you wish to support older CMake versions for this project.  For more
information run "cmake --help-policy CMP0000".


-- Configuring incomplete, errors occurred!

To be clear, this is the only way my build succeeds on my end. I can confirm, the emulator compiles and runs perfectly on my end.

@JoshuaVandaele
Copy link
Contributor

@JoshuaVandaele Following your instructions, I created an empty folder containing CMakeLists.txt with your code snippet inside. Here's the trimmed output:
[...]
Qt6Gui_PRIVATE_INCLUDE_DIRS: [...];/usr/include/qt6/QtGui/6.9.3/QtGui;[...]

You do have the necessary include directory, which means it should work as is... Does Dolphin fail to build if you do a clean build? (As in, delete the build directory you used and re-configure and build Dolphin)

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

Sure, working on testing that right now.

@TriVoxel
Copy link
Author

TriVoxel commented Jan 8, 2026

Damn, I don't even know. I guess it's working now. I'm pretty sure I eliminated all local changes. I'll need to try rebasing source again when I'm not on mobile hotspot.

@JosJuice
Copy link
Member

JosJuice commented Jan 8, 2026

For what it's worth, I haven't had any problems with this on Fedora 42 or 43.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants