File 006-separate-exports-18.0.0.patch of Package qtcreator

diff -uprN qt-creator-opensource-src-18.0.0-orig/cmake/QtCreatorAPI.cmake qt-creator-opensource-src-18.0.0/cmake/QtCreatorAPI.cmake
--- qt-creator-opensource-src-18.0.0-orig/cmake/QtCreatorAPI.cmake	2025-11-01 12:10:24.534108374 +0100
+++ qt-creator-opensource-src-18.0.0/cmake/QtCreatorAPI.cmake	2025-11-01 12:15:11.204507925 +0100
@@ -329,7 +329,7 @@ function(add_qtc_library name)
   if (NOT _arg_EXCLUDE_FROM_INSTALL AND (NOT QTC_STATIC_BUILD OR _arg_SHARED))
     set(will_install_target TRUE)
     install(TARGETS ${name}
-      EXPORT QtCreator
+      EXPORT QtCreator${name}
       RUNTIME
         DESTINATION "${_DESTINATION}"
         ${COMPONENT_OPTION}
@@ -390,6 +390,21 @@ function(add_qtc_library name)
 
     qtc_extend_qtc_entity_sbom(${name} ${sbom_args})
   endif()
+
+  export(TARGETS ${name}
+    NAMESPACE QtCreator::
+    FILE ${CMAKE_BINARY_DIR}/cmake/QtCreator${name}Targets.cmake
+  )
+
+  if (NOT _arg_EXCLUDE_FROM_INSTALL AND (NOT QTC_STATIC_BUILD OR _arg_SHARED))
+    install(EXPORT QtCreator${name}
+      DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
+      COMPONENT Devel EXCLUDE_FROM_ALL
+      NAMESPACE QtCreator::
+      FILE QtCreator${name}Targets.cmake
+    )
+  endif()
+
 endfunction(add_qtc_library)
 
 function(qtc_finalize_target target)
@@ -735,11 +750,11 @@ function(add_qtc_plugin target_name)
   set(will_install_target FALSE)
   if (NOT _arg_SKIP_INSTALL AND NOT QTC_STATIC_BUILD)
     set(will_install_target TRUE)
-    if (_arg_EXPORT)
-      set(export QtCreator${target_name})
-    else()
-      set(export QtCreator)
-    endif()
+    #if (_arg_EXPORT)
+    set(export QtCreator${target_name})
+    #else()
+    #  set(export QtCreator)
+    #endif()
 
     install(TARGETS ${target_name}
       EXPORT ${export}
@@ -753,29 +768,29 @@ function(add_qtc_plugin target_name)
 
     qtc_enable_separate_debug_info(${target_name} "${plugin_dir}")
 
-    if (_arg_EXPORT)
+    #if (_arg_EXPORT)
       # export of external plugins
       install(EXPORT ${export}
         FILE ${export}Targets.cmake
-        DESTINATION ${IDE_CMAKE_INSTALL_PATH}/${export}
+        DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
         COMPONENT Devel EXCLUDE_FROM_ALL
         NAMESPACE QtCreator::
       )
-      include(CMakePackageConfigHelpers)
-      configure_package_config_file(${_THIS_MODULE_BASE_DIR}/Config.cmake.in
-        "${CMAKE_BINARY_DIR}/cmake/${export}Config.cmake"
-        INSTALL_DESTINATION ${IDE_CMAKE_INSTALL_PATH}/${export}
-      )
-      install(
-        FILES ${CMAKE_BINARY_DIR}/cmake/${export}Config.cmake
-        DESTINATION ${IDE_CMAKE_INSTALL_PATH}/${export}
-        COMPONENT Devel EXCLUDE_FROM_ALL
-      )
+      #include(CMakePackageConfigHelpers)
+      #configure_package_config_file(${_THIS_MODULE_BASE_DIR}/Config.cmake.in
+      #  "${CMAKE_BINARY_DIR}/cmake/${export}Config.cmake"
+      #  INSTALL_DESTINATION ${IDE_CMAKE_INSTALL_PATH}/${export}
+      #)
+      #install(
+      #  FILES ${CMAKE_BINARY_DIR}/cmake/${export}Config.cmake
+      #  DESTINATION ${IDE_CMAKE_INSTALL_PATH}/${export}
+      #  COMPONENT Devel EXCLUDE_FROM_ALL
+      #)
       export(EXPORT ${export}
         NAMESPACE QtCreator::
         FILE ${CMAKE_BINARY_DIR}/cmake/${export}Targets.cmake
       )
-    endif()
+    #endif()
   endif()
 
   qtc_mark_for_deferred_finalization("${name}" qtc_finalize_plugin)
diff -uprN qt-creator-opensource-src-18.0.0-orig/cmake/QtCreatorConfig.cmake.in qt-creator-opensource-src-18.0.0/cmake/QtCreatorConfig.cmake.in
--- qt-creator-opensource-src-18.0.0-orig/cmake/QtCreatorConfig.cmake.in	2025-10-28 12:28:19.000000000 +0100
+++ qt-creator-opensource-src-18.0.0/cmake/QtCreatorConfig.cmake.in	2025-11-01 12:30:33.508005982 +0100
@@ -43,9 +43,47 @@ if (NOT COMMAND qtc_sbom_begin_project)
   include("${CMAKE_CURRENT_LIST_DIR}/QtCreatorSbom.cmake")
 endif()
 
-if (NOT TARGET QtCreator::Core)
-  include("${CMAKE_CURRENT_LIST_DIR}/QtCreatorTargets.cmake")
-endif()
+# Load required components
+set(_found_components "")
+function(find_components COMPONENT_LIST)
+  set(_components_to_find "")
+  foreach(_component IN LISTS COMPONENT_LIST)
+    # Check that component file can be found
+    if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/QtCreator${_component}Targets.cmake")
+      if(${QtCreator_FIND_REQUIRED_${_component}})
+        message(ERROR "Could not find required QtCreator component '${_component}'")
+      endif()
+      continue()
+    endif()
+    # Include it
+    message(STATUS "Found QtCreator component '${_component}'")
+    include("${CMAKE_CURRENT_LIST_DIR}/QtCreator${_component}Targets.cmake")
+    list(APPEND _found_components ${_component})
+    # Check what QtCreator:: components it requires
+    get_target_property(_component_imports QtCreator::${_component} INTERFACE_LINK_LIBRARIES)
+    if(NOT _component_imports)
+      continue()
+    endif()
+    message(TRACE "All imports:       ${_component_imports}")
+    list(FILTER _component_imports INCLUDE REGEX ^QtCreator::.+$)
+    list(TRANSFORM _component_imports REPLACE "^QtCreator::(.+)$" "\\1")
+    message(TRACE "QtCreator imports: ${_component_imports}")
+    # Add them to the list of components still to be found
+    foreach(_c IN LISTS _component_imports)
+      if(NOT ${_c} IN_LIST _found_components AND NOT ${_c} IN_LIST _components_to_find)
+        list(APPEND _components_to_find ${_c})
+      endif()
+    endforeach()
+  endforeach()
+  # Recurse if any component is still to be found
+  message(TRACE "Found:   ${_found_components}")
+  message(TRACE "To find: ${_components_to_find}")
+  if(_components_to_find)
+    find_components("${_components_to_find}")
+  endif()
+endfunction()
+
+find_components("${QtCreator_FIND_COMPONENTS}")
 
 qtc_check_if_project_is_sbom_ready()
 
diff -uprN qt-creator-opensource-src-18.0.0-orig/CMakeLists.txt qt-creator-opensource-src-18.0.0/CMakeLists.txt
--- qt-creator-opensource-src-18.0.0-orig/CMakeLists.txt	2025-10-28 12:28:19.000000000 +0100
+++ qt-creator-opensource-src-18.0.0/CMakeLists.txt	2025-11-01 12:10:55.953311305 +0100
@@ -172,7 +172,17 @@ if (TARGET Qt::Svg AND ENABLE_SVG_SUPPOR
 else()
   target_compile_definitions(OptionalSvg INTERFACE QT_NO_SVG)
 endif()
-install(TARGETS OptionalSvg EXPORT QtCreator)
+install(TARGETS OptionalSvg EXPORT QtCreatorOptionalSvg)
+export(EXPORT QtCreatorOptionalSvg
+  NAMESPACE QtCreator::
+  FILE ${CMAKE_BINARY_DIR}/cmake/QtCreatorOptionalSvgTargets.cmake
+)
+install(EXPORT QtCreatorOptionalSvg
+  FILE QtCreatorOptionalSvgTargets.cmake
+  DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
+  COMPONENT Devel EXCLUDE_FROM_ALL
+  NAMESPACE QtCreator::
+)
 
 if (APPLE)
   find_library(FWCoreFoundation CoreFoundation)
diff -uprN qt-creator-opensource-src-18.0.0-orig/src/CMakeLists.txt qt-creator-opensource-src-18.0.0/src/CMakeLists.txt
--- qt-creator-opensource-src-18.0.0-orig/src/CMakeLists.txt	2025-11-01 12:10:24.534957948 +0100
+++ qt-creator-opensource-src-18.0.0/src/CMakeLists.txt	2025-11-01 12:23:41.404476525 +0100
@@ -28,12 +28,12 @@ install(
   USE_SOURCE_PERMISSIONS
 )
 
-install(EXPORT QtCreator
-  DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
-  COMPONENT Devel EXCLUDE_FROM_ALL
-  NAMESPACE QtCreator::
-  FILE QtCreatorTargets.cmake
-)
+#install(EXPORT QtCreator
+#  DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
+#  COMPONENT Devel EXCLUDE_FROM_ALL
+#  NAMESPACE QtCreator::
+#  FILE QtCreatorTargets.cmake
+#)
 
 include(CMakePackageConfigHelpers)
 
@@ -67,9 +67,9 @@ configure_package_config_file(
 )
 
 # Local build export
-export(EXPORT QtCreator
-  NAMESPACE QtCreator::
-  FILE ${CMAKE_BINARY_DIR}/cmake/QtCreatorTargets.cmake)
+#export(EXPORT QtCreator
+#  NAMESPACE QtCreator::
+#  FILE ${CMAKE_BINARY_DIR}/cmake/QtCreatorTargets.cmake)
 
 file(COPY
   ${IDE_BRANDING_FILE}
diff -uprN qt-creator-opensource-src-18.0.0-orig/src/libs/3rdparty/sol2/CMakeLists.txt qt-creator-opensource-src-18.0.0/src/libs/3rdparty/sol2/CMakeLists.txt
--- qt-creator-opensource-src-18.0.0-orig/src/libs/3rdparty/sol2/CMakeLists.txt	2025-10-28 12:28:20.000000000 +0100
+++ qt-creator-opensource-src-18.0.0/src/libs/3rdparty/sol2/CMakeLists.txt	2025-11-01 12:10:55.953821982 +0100
@@ -5,7 +5,17 @@ target_include_directories(sol2 INTERFAC
     $<INSTALL_INTERFACE:include>
 )
 
-install(TARGETS sol2 EXPORT QtCreator)
+install(TARGETS sol2 EXPORT QtCreatorSol2)
+export(EXPORT QtCreatorSol2
+  NAMESPACE QtCreator::
+  FILE ${CMAKE_BINARY_DIR}/cmake/QtCreatorSol2Targets.cmake
+)
+install(EXPORT QtCreatorSol2
+  FILE QtCreatorSol2Targets.cmake
+  DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
+  COMPONENT Devel EXCLUDE_FROM_ALL
+  NAMESPACE QtCreator::
+)
 
 qtc_add_public_header(include/sol/sol.hpp)
 qtc_add_public_header(include/sol/config.hpp)
diff -uprN qt-creator-opensource-src-18.0.0-orig/src/libs/qlitehtml/src/CMakeLists.txt qt-creator-opensource-src-18.0.0/src/libs/qlitehtml/src/CMakeLists.txt
--- qt-creator-opensource-src-18.0.0-orig/src/libs/qlitehtml/src/CMakeLists.txt	2025-10-28 12:28:20.000000000 +0100
+++ qt-creator-opensource-src-18.0.0/src/libs/qlitehtml/src/CMakeLists.txt	2025-11-01 12:10:55.954060153 +0100
@@ -170,6 +170,19 @@ if(TARGET litehtml)
         DESTINATION "${QLITEHTML_LIBRARY_ARCHIVE_PATH}"
         ${_DEVEL_COMPONENT}
         OPTIONAL)
+
+    if(DEFINED QLITEHTML_EXPORT)
+      export(EXPORT ${QLITEHTML_EXPORT}
+        NAMESPACE QtCreator::
+        FILE ${CMAKE_BINARY_DIR}/cmake/QtCreatorQLiteHtmlTargets.cmake
+      )
+      install(EXPORT ${QLITEHTML_EXPORT}
+        FILE QtCreatorQLiteHtmlTargets.cmake
+        DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
+        COMPONENT Devel EXCLUDE_FROM_ALL
+        NAMESPACE QtCreator::
+      )
+    endif()
   endif()
 
 endif()
openSUSE Build Service is sponsored by