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

diff -uprN qt-creator-opensource-src-16.0.1-orig/cmake/QtCreatorAPI.cmake qt-creator-opensource-src-16.0.1/cmake/QtCreatorAPI.cmake
--- qt-creator-opensource-src-16.0.1-orig/cmake/QtCreatorAPI.cmake	2025-05-11 15:15:05.690521343 +0200
+++ qt-creator-opensource-src-16.0.1/cmake/QtCreatorAPI.cmake	2025-05-11 15:01:53.820682254 +0200
@@ -293,7 +293,7 @@ function(add_qtc_library name)
 
   if (NOT _arg_EXCLUDE_FROM_INSTALL AND (NOT QTC_STATIC_BUILD OR _arg_SHARED))
     install(TARGETS ${name}
-      EXPORT QtCreator
+      EXPORT QtCreator${name}
       RUNTIME
         DESTINATION "${_DESTINATION}"
         ${COMPONENT_OPTION}
@@ -333,6 +333,21 @@ function(add_qtc_library name)
   if(Qt6_VERSION AND "${have_automoc_prop}")
     qt_extract_metatypes(${name})
   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)
 
 
@@ -623,11 +638,11 @@ function(add_qtc_plugin target_name)
   endif()
 
   if (NOT _arg_SKIP_INSTALL AND NOT QTC_STATIC_BUILD)
-    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}
@@ -641,29 +656,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()
 endfunction()
 
diff -uprN qt-creator-opensource-src-16.0.1-orig/CMakeLists.txt qt-creator-opensource-src-16.0.1/CMakeLists.txt
--- qt-creator-opensource-src-16.0.1-orig/CMakeLists.txt	2025-04-10 10:57:16.000000000 +0200
+++ qt-creator-opensource-src-16.0.1/CMakeLists.txt	2025-05-11 15:10:20.865619747 +0200
@@ -180,7 +180,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-16.0.1-orig/src/CMakeLists.txt qt-creator-opensource-src-16.0.1/src/CMakeLists.txt
--- qt-creator-opensource-src-16.0.1-orig/src/CMakeLists.txt	2025-05-11 15:15:05.691450965 +0200
+++ qt-creator-opensource-src-16.0.1/src/CMakeLists.txt	2025-05-14 21:39:00.127708831 +0200
@@ -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
+#)
 
 file(WRITE ${CMAKE_BINARY_DIR}/cmake/QtCreatorConfig.cmake "
 \# Qt version used for building
@@ -72,15 +72,53 @@ if (NOT DEFINED add_qtc_documentation)
   include(\${CMAKE_CURRENT_LIST_DIR}/QtCreatorDocumentation.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}\")
 ")
 
 # 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-16.0.1-orig/src/libs/3rdparty/sol2/CMakeLists.txt qt-creator-opensource-src-16.0.1/src/libs/3rdparty/sol2/CMakeLists.txt
--- qt-creator-opensource-src-16.0.1-orig/src/libs/3rdparty/sol2/CMakeLists.txt	2025-04-10 10:57:17.000000000 +0200
+++ qt-creator-opensource-src-16.0.1/src/libs/3rdparty/sol2/CMakeLists.txt	2025-05-11 15:09:34.481061919 +0200
@@ -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-16.0.1-orig/src/libs/qlitehtml/src/CMakeLists.txt qt-creator-opensource-src-16.0.1/src/libs/qlitehtml/src/CMakeLists.txt
--- qt-creator-opensource-src-16.0.1-orig/src/libs/qlitehtml/src/CMakeLists.txt	2025-04-10 10:57:17.000000000 +0200
+++ qt-creator-opensource-src-16.0.1/src/libs/qlitehtml/src/CMakeLists.txt	2025-05-11 15:31:36.398617176 +0200
@@ -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