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()