From d4bd9ad1d588158963610f3dacef86e8d3b2641c Mon Sep 17 00:00:00 2001
From: Johnny Jazeix <jazeix@gmail.com>
Date: Sun, 14 Sep 2025 13:59:59 +0200
Subject: [PATCH] cmake, ignore private modules if they don't exist

---
 src/core/CMakeLists.txt | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index f4eb66b6dd..dde4a7aec8 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -73,10 +73,18 @@ elseif(CMAKE_HOST_APPLE)
   set_source_files_properties(${gcompris_RES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
 endif()
 
-set(used_qt_modules ${QT_MAJOR}::Qml ${QT_MAJOR}::Quick ${QT_MAJOR}::Widgets ${QT_MAJOR}::Gui ${QT_MAJOR}::Multimedia ${QT_MAJOR}::Core ${QT_MAJOR}::Svg ${QT_MAJOR}::Sensors ${QT_MAJOR}::QuickControls2 ${QT_MAJOR}::QuickTemplates2 ${QT_MAJOR}::Charts ${QT_MAJOR}::QmlWorkerScript ${QT_MAJOR}::CorePrivate)
+set(used_qt_modules ${QT_MAJOR}::Qml ${QT_MAJOR}::Quick ${QT_MAJOR}::Widgets ${QT_MAJOR}::Gui ${QT_MAJOR}::Multimedia ${QT_MAJOR}::Core ${QT_MAJOR}::Svg ${QT_MAJOR}::Sensors ${QT_MAJOR}::QuickControls2 ${QT_MAJOR}::QuickTemplates2 ${QT_MAJOR}::Charts ${QT_MAJOR}::QmlWorkerScript)
+
+if(TARGET ${QT_MAJOR}::CorePrivate)
+  set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::CorePrivate)
+endif()
 
 if(TARGET ${QT_MAJOR}::QuickControls2Basic)
-  set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::QuickControls2Basic ${QT_MAJOR}::QuickControls2BasicPrivate)
+  set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::QuickControls2Basic)
+  if(TARGET ${QT_MAJOR}::QuickControls2BasicPrivate)
+    set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::QuickControls2BasicPrivate)
+  endif()
+
   # This should not be needed! But for some reason, on windows it does not find
   # automatically the library so we need to install it manually
   if(WIN32)
@@ -86,7 +94,10 @@ if(TARGET ${QT_MAJOR}::QuickControls2Basic)
 endif()
 
 if(TARGET ${QT_MAJOR}::WaylandClient)
-    set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::WaylandClient ${QT_MAJOR}::WaylandClientPrivate)
+  set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::WaylandClient)
+  if(TARGET ${QT_MAJOR}::WaylandClientPrivate)
+    set(used_qt_modules ${used_qt_modules} ${QT_MAJOR}::WaylandClientPrivate)
+  endif()
 endif()
 
 if(ANDROID)
-- 
GitLab

