Merge pull request #546 from DieterMayerOSS/fix/qt5-guiprivate-component

Request the GuiPrivate component only on Qt6
This commit is contained in:
Laurent Trinques
2026-07-17 23:07:12 +02:00
committed by GitHub
3 changed files with 23 additions and 5 deletions
+8
View File
@@ -78,6 +78,14 @@ find_package(
${QET_COMPONENTS}
REQUIRED)
# Qt6 only creates the Qt::GuiPrivate target (used for QPdfEngine::drawHyperlink)
# when the GuiPrivate component is explicitly requested. Qt5 has no such
# component package and creates the target implicitly with Gui, so only
# request it on Qt6 - requesting it on Qt5 fails the whole configure.
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS GuiPrivate)
endif()
find_package(SQLite3 REQUIRED)
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
+8 -5
View File
@@ -16,6 +16,13 @@
message(" - qet_compilation_vars")
# Note: GuiPrivate is intentionally NOT in this list. Qt6's CMake config only
# creates the Qt::GuiPrivate target when "GuiPrivate" is explicitly requested
# as a component, but Qt5 has no Qt5GuiPrivate package at all (the target is
# created implicitly with Gui), so requesting it as a component breaks the
# whole Qt5 configure. It is requested separately, guarded by
# QT_VERSION_MAJOR, after the main find_package.
# (Needed for QPdfEngine::drawHyperlink, the PDF internal links.)
set(QET_COMPONENTS
LinguistTools
PrintSupport
@@ -24,11 +31,7 @@ set(QET_COMPONENTS
Sql
Network
Widgets
Concurrent
GuiPrivate) # Qt6 CMake config only creates the Qt::GuiPrivate target when
# "GuiPrivate" is explicitly requested as a component (unlike
# Qt5, which created it implicitly via Gui/PrintSupport/Widgets).
# Required for QPdfEngine::drawHyperlink (PDF internal links).
Concurrent)
set(QET_PRIVATE_LIBRARIES
Qt::PrintSupport
+7
View File
@@ -59,6 +59,13 @@ find_package(
${QET_COMPONENTS}
REQUIRED)
# Qt6-only: the tests link ${QET_PRIVATE_LIBRARIES}, which contains
# Qt::GuiPrivate; Qt6 only creates that target when the component is
# explicitly requested (Qt5 creates it implicitly and has no such package).
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS GuiPrivate)
endif()
Include(FetchContent)
FetchContent_Declare(