CMake: Don't use private CMake API in doc snippets

Private CMake API like qt_internal_extend_target should not be used in
public doc snippets. While most of the CMakeLists.txt doc snippets
might not appear in the documentation right now, they might in the
future (just like the CMake API doc snippets).

In addition, using private CMake API for doc snippets targets causes
issues with SBOM generation, because the original targets are not
created with private API (e.g. qt_internal_add_module vs
qt_add_library), and thus important sbom meta information is missing,
causing errors at cmake configure time when sbom generation is
enabled.

Pick-to: 6.8 6.9 6.10
Change-Id: I2ef80f617ba8b745520408d22dd2e6be5ee4c5e0
Reviewed-by: Oleksii Zbykovskyi <Oleksii.Zbykovskyi@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor 2025-08-15 19:03:48 +02:00
parent 2ce6fd48e0
commit 253a7f95bc
9 changed files with 150 additions and 117 deletions

View File

@ -29,22 +29,23 @@ target_link_libraries(corelib_snippets PRIVATE
Qt::Core Qt::Core
) )
qt_internal_extend_target(corelib_snippets CONDITION QT_FEATURE_process if(QT_FEATURE_process)
SOURCES target_sources(corelib_snippets PRIVATE
process/process.cpp process/process.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets if(QT_FEATURE_process AND QT_FEATURE_processenvironment)
CONDITION target_sources(corelib_snippets PRIVATE
QT_FEATURE_process AND QT_FEATURE_processenvironment
SOURCES
qprocess-environment/main.cpp qprocess-environment/main.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(corelib_snippets PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(corelib_snippets PRIVATE
events/events.cpp events/events.cpp
hellotrmain.cpp hellotrmain.cpp
fileinfo/main.cpp fileinfo/main.cpp
@ -54,15 +55,18 @@ qt_internal_extend_target(corelib_snippets CONDITION QT_FEATURE_widgets
qstring/main.cpp qstring/main.cpp
qtcast/qtcast.cpp qtcast/qtcast.cpp
settings/settings.cpp settings/settings.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets CONDITION QT_FEATURE_gui if(QT_FEATURE_gui)
LIBRARIES target_link_libraries(corelib_snippets PRIVATE
Qt::Gui Qt::Gui
SOURCES )
target_sources(corelib_snippets PRIVATE
buffer/buffer.cpp buffer/buffer.cpp
qdebug/qdebugsnippet.cpp qdebug/qdebugsnippet.cpp
) )
endif()
set_target_properties(corelib_snippets PROPERTIES COMPILE_OPTIONS "-w") set_target_properties(corelib_snippets PROPERTIES COMPILE_OPTIONS "-w")

View File

@ -102,47 +102,55 @@ target_link_libraries(corelib_snippets_code PRIVATE
Qt::Core Qt::Core
) )
qt_internal_extend_target(corelib_snippets_code CONDITION APPLE if(APPLE)
SOURCES target_sources(corelib_snippets_code PRIVATE
src_corelib_kernel_qabstractnativeeventfilter.mm src_corelib_kernel_qabstractnativeeventfilter.mm
) )
endif()
qt_internal_extend_target(corelib_snippets_code CONDITION QT_FEATURE_process if(QT_FEATURE_process)
SOURCES target_sources(corelib_snippets_code PRIVATE
src_corelib_io_qiodevice.cpp src_corelib_io_qiodevice.cpp
src_corelib_io_qprocess.cpp src_corelib_io_qprocess.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets_code CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(corelib_snippets_code PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(corelib_snippets_code PRIVATE
doc_src_objecttrees.cpp doc_src_objecttrees.cpp
src_corelib_animation_qpropertyanimation.cpp src_corelib_animation_qpropertyanimation.cpp
src_corelib_global_qglobal_widgets.cpp src_corelib_global_qglobal_widgets.cpp
src_corelib_kernel_qobject.cpp src_corelib_kernel_qobject.cpp
src_corelib_kernel_qtimer.cpp src_corelib_kernel_qtimer.cpp
src_corelib_tools_qtimeline.cpp src_corelib_tools_qtimeline.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets_code CONDITION QT_FEATURE_gui if(QT_FEATURE_gui)
LIBRARIES target_link_libraries(corelib_snippets_code PRIVATE
Qt::Gui Qt::Gui
) )
endif()
qt_internal_extend_target(corelib_snippets_code CONDITION QT_FEATURE_concurrent if(QT_FEATURE_concurrent)
LIBRARIES target_link_libraries(corelib_snippets_code PRIVATE
Qt::Concurrent Qt::Concurrent
SOURCES )
target_sources(corelib_snippets_code PRIVATE
src_corelib_thread_qexception.cpp src_corelib_thread_qexception.cpp
src_corelib_thread_qfuture.cpp src_corelib_thread_qfuture.cpp
src_corelib_thread_qfuturesynchronizer.cpp src_corelib_thread_qfuturesynchronizer.cpp
src_corelib_thread_qfuturewatcher.cpp src_corelib_thread_qfuturewatcher.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets_code CONDITION QT_FEATURE_network if(QT_FEATURE_network)
LIBRARIES target_link_libraries(corelib_snippets_code PRIVATE
Qt::Network Qt::Network
) )
endif()
set_target_properties(corelib_snippets_code PROPERTIES COMPILE_OPTIONS "-w") set_target_properties(corelib_snippets_code PROPERTIES COMPILE_OPTIONS "-w")

View File

@ -6,16 +6,20 @@ target_link_libraries(corelib_snippets_eventfilters PRIVATE
Qt::Core Qt::Core
) )
qt_internal_extend_target(corelib_snippets_eventfilters CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(corelib_snippets_eventfilters PRIVATE
Qt::Widgets Qt::Widgets
SOURCE )
target_sources(corelib_snippets_eventfilters PRIVATE
main.cpp main.cpp
) )
endif()
qt_internal_extend_target(corelib_snippets_eventfilters CONDITION QT_FEATURE_gui if(QT_FEATURE_gui)
LIBRARIES target_link_libraries(corelib_snippets_eventfilters PRIVATE
Qt::Gui Qt::Gui
SOURCES )
target_sources(corelib_snippets_eventfilters PRIVATE
filterobject.cpp filterobject.cpp
) )
endif()

View File

@ -10,10 +10,12 @@ target_link_libraries(corelib_snippets_qmetaobject-invokable PRIVATE
Qt::Core Qt::Core
) )
qt_internal_extend_target(corelib_snippets_qmetaobject-invokable CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(corelib_snippets_qmetaobject-invokable PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(corelib_snippets_qmetaobject-invokable PRIVATE
main.cpp main.cpp
window.cpp window.cpp
) )
endif()

View File

@ -10,10 +10,12 @@ target_link_libraries(corelib_snippets_qmetaobject-revision PRIVATE
Qt::Core Qt::Core
) )
qt_internal_extend_target(corelib_snippets_qmetaobject-revision CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(corelib_snippets_qmetaobject-revision PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(corelib_snippets_qmetaobject-revision PRIVATE
main.cpp main.cpp
window.cpp window.cpp
) )
endif()

View File

@ -10,18 +10,21 @@ qt_add_library(gui_snippets OBJECT
polygon/polygon.cpp polygon/polygon.cpp
qimagewriter/main.cpp qimagewriter/main.cpp
qtextobject/textobjectinterface.h qtextobject/textobjectinterface.h
rhioffscreen/main.cpp
textdocument-end/textdocumentendsnippet.cpp textdocument-end/textdocumentendsnippet.cpp
) )
target_link_libraries(gui_snippets PRIVATE target_link_libraries(gui_snippets PRIVATE
Qt::Core Qt::Core
Qt::Gui Qt::Gui
Qt::GuiPrivate
) )
qt_internal_extend_target(gui_snippets CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(gui_snippets PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(gui_snippets PRIVATE
draganddrop/dragwidget.cpp draganddrop/dragwidget.cpp
dragging/mainwindow.cpp dragging/mainwindow.cpp
droparea/droparea.cpp droparea/droparea.cpp
@ -50,33 +53,33 @@ qt_internal_extend_target(gui_snippets CONDITION QT_FEATURE_widgets
textdocument-tables/mainwindow.cpp textdocument-tables/mainwindow.cpp
textdocument-tables/mainwindow.cpp textdocument-tables/mainwindow.cpp
transform/main.cpp transform/main.cpp
) )
endif()
qt_internal_extend_target(gui_snippets
LIBRARIES
Qt::GuiPrivate
SOURCES
rhioffscreen/main.cpp
)
qt_internal_extend_target(gui_snippets CONDITION QT_FEATURE_xml if(QT_FEATURE_xml)
LIBRARIES target_link_libraries(gui_snippets PRIVATE
Qt::Xml Qt::Xml
SOURCES )
target_sources(gui_snippets PRIVATE
textblock-fragments/xmlwriter.cpp textblock-fragments/xmlwriter.cpp
) )
endif()
qt_internal_extend_target(gui_snippets CONDITION QT_FEATURE_printsupport if(QT_FEATURE_printsupport)
LIBRARIES target_link_libraries(gui_snippets PRIVATE
Qt::PrintSupport Qt::PrintSupport
SOURCES )
target_sources(gui_snippets PRIVATE
textdocument-printing/mainwindow.cpp textdocument-printing/mainwindow.cpp
) )
endif()
qt_internal_extend_target(gui_snippets CONDITION QT_FEATURE_widgets AND QT_FEATURE_clipboard if(QT_FEATURE_widgets AND QT_FEATURE_clipboard)
SOURCES target_sources(gui_snippets PRIVATE
clipboard/clipwindow.cpp clipboard/clipwindow.cpp
) )
endif()
set_target_properties(gui_snippets PROPERTIES COMPILE_OPTIONS "-w") set_target_properties(gui_snippets PROPERTIES COMPILE_OPTIONS "-w")

View File

@ -36,10 +36,11 @@ target_link_libraries(gui_snippets_code PRIVATE
Qt::Gui Qt::Gui
) )
qt_internal_extend_target(gui_snippets_code CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
LIBRARIES target_link_libraries(gui_snippets_code PRIVATE
Qt::Widgets Qt::Widgets
SOURCES )
target_sources(gui_snippets_code PRIVATE
doc_src_coordsys.cpp doc_src_coordsys.cpp
doc_src_richtext.cpp doc_src_richtext.cpp
src_gui_image_qicon.cpp src_gui_image_qicon.cpp
@ -53,19 +54,22 @@ qt_internal_extend_target(gui_snippets_code CONDITION QT_FEATURE_widgets
src_gui_painting_qpainter.cpp src_gui_painting_qpainter.cpp
src_gui_text_qsyntaxhighlighter.cpp src_gui_text_qsyntaxhighlighter.cpp
src_gui_util_qvalidator.cpp src_gui_util_qvalidator.cpp
) )
endif()
qt_internal_extend_target(gui_snippets_code CONDITION QT_FEATURE_vulkan if(QT_FEATURE_vulkan)
SOURCES target_sources(gui_snippets_code PRIVATE
src_gui_vulkan_qvulkanfunctions.cpp src_gui_vulkan_qvulkanfunctions.cpp
src_gui_vulkan_qvulkaninstance.cpp src_gui_vulkan_qvulkaninstance.cpp
src_gui_vulkan_qvulkanwindow.cpp src_gui_vulkan_qvulkanwindow.cpp
) )
endif()
qt_internal_extend_target(gui_snippets_code CONDITION QT_FEATURE_clipboard if(QT_FEATURE_clipboard)
SOURCES target_sources(gui_snippets_code PRIVATE
src_gui_kernel_qclipboard.cpp src_gui_kernel_qclipboard.cpp
) )
endif()
set_target_properties(gui_snippets_code PROPERTIES COMPILE_OPTIONS "-w") set_target_properties(gui_snippets_code PROPERTIES COMPILE_OPTIONS "-w")

View File

@ -11,18 +11,22 @@ target_link_libraries(testlib_code_snippets PRIVATE
Qt::Test Qt::Test
) )
qt_internal_extend_target(testlib_code_snippets CONDITION QT_FEATURE_gui AND QT_FEATURE_sql if(QT_FEATURE_gui AND QT_FEATURE_sql)
SOURCES target_sources(testlib_code_snippets PRIVATE
doc_src_qtestlib.cpp doc_src_qtestlib.cpp
PUBLIC_LIBRARIES )
target_link_libraries(testlib_code_snippets PUBLIC
Qt::Gui Qt::Gui
Qt::Sql Qt::Sql
) )
endif()
qt_internal_extend_target(testlib_code_snippets CONDITION QT_FEATURE_widgets if(QT_FEATURE_widgets)
SOURCES target_sources(testlib_code_snippets PRIVATE
doc_src_qtestevent.cpp doc_src_qtestevent.cpp
doc_src_qtestevent.h doc_src_qtestevent.h
PUBLIC_LIBRARIES )
target_link_libraries(testlib_code_snippets PUBLIC
Qt::Widgets Qt::Widgets
) )
endif()

View File

@ -12,6 +12,7 @@ add_library(widgets_snippets OBJECT
qlistview-dnd/mainwindow.cpp qlistview-dnd/mainwindow.cpp
qlistview-dnd/model.cpp qlistview-dnd/model.cpp
qlistwidget-dnd/mainwindow.cpp qlistwidget-dnd/mainwindow.cpp
qrhiwidget/rhiwidgetintro.cpp
qsortfilterproxymodel/main.cpp qsortfilterproxymodel/main.cpp
qsplashscreen/main.cpp qsplashscreen/main.cpp
qstackedlayout/main.cpp qstackedlayout/main.cpp
@ -43,50 +44,51 @@ add_library(widgets_snippets OBJECT
target_link_libraries(widgets_snippets PRIVATE target_link_libraries(widgets_snippets PRIVATE
Qt::Core Qt::Core
Qt::Gui Qt::Gui
Qt::GuiPrivate
Qt::Widgets Qt::Widgets
) )
qt_internal_extend_target(widgets_snippets if(QT_FEATURE_filedialog)
LIBRARIES target_sources(widgets_snippets PRIVATE
Qt::GuiPrivate
SOURCES
qrhiwidget/rhiwidgetintro.cpp
)
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_filedialog
SOURCES
filedialogurls/filedialogurls.cpp filedialogurls/filedialogurls.cpp
) )
endif()
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_graphicsview if(QT_FEATURE_graphicsview)
SOURCES target_sources(widgets_snippets PRIVATE
graphicssceneadditem/graphicssceneadditemsnippet.cpp graphicssceneadditem/graphicssceneadditemsnippet.cpp
graphicsview/graphicsview_snippet.cpp graphicsview/graphicsview_snippet.cpp
) )
endif()
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_opengl AND QT_FEATURE_printsupport if(QT_FEATURE_opengl AND QT_FEATURE_printsupport)
LIBRARIES target_link_libraries(widgets_snippets PRIVATE
Qt::OpenGL Qt::OpenGL
Qt::OpenGLWidgets Qt::OpenGLWidgets
Qt::PrintSupport Qt::PrintSupport
SOURCES )
target_sources(widgets_snippets PRIVATE
graphicsview/graphicsview.cpp graphicsview/graphicsview.cpp
) )
endif()
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_mdiarea if(QT_FEATURE_mdiarea)
SOURCES target_sources(widgets_snippets PRIVATE
mdiarea/mdiareasnippets.cpp mdiarea/mdiareasnippets.cpp
) )
endif()
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_scrollarea if(QT_FEATURE_scrollarea)
SOURCES target_sources(widgets_snippets PRIVATE
myscrollarea/myscrollarea.cpp myscrollarea/myscrollarea.cpp
) )
endif()
qt_internal_extend_target(widgets_snippets CONDITION QT_FEATURE_spinbox AND QT_FEATURE_itemviews if(QT_FEATURE_spinbox AND QT_FEATURE_itemviews)
SOURCES target_sources(widgets_snippets PRIVATE
qitemdelegate/spinbox-delegate.cpp qitemdelegate/spinbox-delegate.cpp
) )
endif()
set_target_properties(widgets_snippets PROPERTIES COMPILE_OPTIONS "-w") set_target_properties(widgets_snippets PROPERTIES COMPILE_OPTIONS "-w")