Files
RedBear-OS/local/recipes/kde/kirigami/source/src/CMakeLists.txt
T
vasilito ce0ac10b6d chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.

Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).

Kernel: consolidate patch chain, add debug-scheme-serial-fix.

Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.

Scripts: add test-network-qemu.sh, test-storage-qemu.sh.

.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00

323 lines
9.0 KiB
CMake

add_subdirectory(platform)
add_subdirectory(primitives)
add_subdirectory(delegates)
add_subdirectory(dialogs)
add_subdirectory(layouts)
add_library(Kirigami)
add_library(KF6::Kirigami ALIAS Kirigami)
# On Windows Kirigami apparently adds too many sources so on Windows we end
# up running into command line length limits. So disable cache
# generation on Windows for now.
# On Qt 6.7.2 cachegen is causing https://bugs.kde.org/show_bug.cgi?id=488326
# investigate if future versions fix it and we can re-enable it
if (NOT ANDROID)
set(_extra_options NO_CACHEGEN)
endif()
if (BUILD_SHARED_LIBS)
set(_extra_options ${_extra_options} NO_PLUGIN_OPTIONAL)
endif()
if (ANDROID OR NOT BUILD_SHARED_LIBS)
set(_extra_options ${_extra_options} OPTIONAL_IMPORTS org.kde.breeze)
endif()
# Module: org.kde.kirigami.private
add_library(KirigamiPrivate)
ecm_add_qml_module(KirigamiPrivate
URI "org.kde.kirigami.private"
GENERATE_PLUGIN_SOURCE
INSTALLED_PLUGIN_TARGET KF6KirigamiPrivateplugin
)
set_target_properties(KirigamiPrivate PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 6
EXPORT_NAME "KirigamiPrivate"
)
target_sources(KirigamiPrivate PRIVATE
copyhelper.cpp
copyhelper.h
actionhelper.cpp
actionhelper.h
)
target_link_libraries(KirigamiPrivate PRIVATE Qt6::Gui)
ecm_finalize_qml_module(KirigamiPrivate DESTINATION ${KDE_INSTALL_QMLDIR} EXPORT KirigamiTargets)
install(TARGETS KirigamiPrivate EXPORT KirigamiTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
# Module: org.kde.kirigami
ecm_add_qml_module(Kirigami URI "org.kde.kirigami" VERSION 2.0
CLASS_NAME KirigamiPlugin
INSTALLED_PLUGIN_TARGET KF6Kirigamiplugin
DEPENDENCIES
"QtQuick.Controls"
"org.kde.kirigami.private"
IMPORTS
"org.kde.kirigami.platform"
"org.kde.kirigami.primitives"
"org.kde.kirigami.delegates"
"org.kde.kirigami.dialogs"
"org.kde.kirigami.layouts"
${_extra_options}
)
ecm_create_qm_loader(kirigami_QM_LOADER libkirigami6_qt)
target_sources(Kirigami PRIVATE ${kirigami_QM_LOADER})
ecm_qt_declare_logging_category(Kirigami
HEADER loggingcategory.h
IDENTIFIER KirigamiLog
CATEGORY_NAME kf.kirigami
DESCRIPTION "Kirigami"
DEFAULT_SEVERITY Warning
EXPORT KIRIGAMI
)
set_target_properties(Kirigami PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 6
EXPORT_NAME "Kirigami"
)
target_include_directories(Kirigami PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/platform
${CMAKE_CURRENT_BINARY_DIR}/platform
)
target_sources(Kirigami PRIVATE
enums.h
imagecolors.cpp
imagecolors.h
mnemonicattached.cpp
mnemonicattached.h
overlayzstackingattached.cpp
overlayzstackingattached.h
pagepool.cpp
pagepool.h
scenepositionattached.cpp
scenepositionattached.h
spellcheckattached.cpp
spellcheckattached.h
wheelhandler.cpp
wheelhandler.h
)
target_sources(Kirigamiplugin PRIVATE
kirigamiplugin.cpp
kirigamiplugin.h
)
ecm_target_qml_sources(Kirigami SOURCES
controls/Action.qml
controls/AbstractApplicationHeader.qml
controls/AbstractApplicationWindow.qml
controls/ApplicationWindow.qml
controls/OverlayDrawer.qml
controls/ContextDrawer.qml
controls/GlobalDrawer.qml
controls/Heading.qml
controls/PageRow.qml
controls/OverlaySheet.qml
controls/Page.qml
controls/ScrollablePage.qml
controls/SwipeListItem.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.1 SOURCES
controls/AbstractApplicationItem.qml
controls/ApplicationItem.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.4 SOURCES
controls/AbstractCard.qml
controls/Card.qml
controls/CardsListView.qml
controls/CardsLayout.qml
controls/InlineMessage.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.5 SOURCES
controls/ListItemDragHandle.qml
controls/ActionToolBar.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.6 SOURCES
controls/AboutPage.qml
controls/LinkButton.qml
controls/UrlButton.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.7 SOURCES
controls/ActionTextField.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.8 SOURCES
controls/SearchField.qml
controls/PasswordField.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.10 SOURCES
controls/ListSectionHeader.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.11 SOURCES
controls/PagePoolAction.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.12 SOURCES
controls/PlaceholderMessage.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.14 SOURCES
controls/FlexColumn.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.19 SOURCES
controls/AboutItem.qml
controls/NavigationTabBar.qml
controls/NavigationTabButton.qml
controls/Chip.qml
controls/LoadingPlaceholder.qml
)
ecm_target_qml_sources(Kirigami VERSION 2.20 SOURCES
controls/SelectableLabel.qml
controls/InlineViewHeader.qml
controls/ContextualHelpButton.qml
)
ecm_target_qml_sources(Kirigami PRIVATE PATH private SOURCES
controls/private/ActionIconGroup.qml
controls/private/ActionMenuItem.qml
controls/private/ActionsMenu.qml
controls/private/BannerImage.qml
controls/private/ContextDrawerActionItem.qml
controls/private/DefaultCardBackground.qml
controls/private/DefaultChipBackground.qml
controls/private/DefaultPageTitleDelegate.qml
controls/private/EdgeShadow.qml
controls/private/GlobalDrawerActionItem.qml
controls/private/MobileDialogLayer.qml
controls/private/PrivateActionToolButton.qml
controls/private/PullDownIndicator.qml
controls/private/SwipeItemEventFilter.qml
)
ecm_target_qml_sources(Kirigami PRIVATE PATH private/globaltoolbar SOURCES
controls/private/globaltoolbar/AbstractPageHeader.qml
controls/private/globaltoolbar/BreadcrumbControl.qml
controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml
controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
controls/private/globaltoolbar/TitlesPageHeader.qml
controls/private/globaltoolbar/ToolBarPageHeader.qml
controls/private/globaltoolbar/ToolBarPageFooter.qml
)
ecm_target_qml_sources(Kirigami PRIVATE PATH templates SOURCES
controls/templates/AbstractApplicationHeader.qml
controls/templates/AbstractCard.qml
controls/templates/Chip.qml
controls/templates/InlineMessage.qml
controls/templates/OverlayDrawer.qml
controls/templates/OverlaySheet.qml
controls/templates/SingletonHeaderSizeGroup.qml
controls/templates/qmldir
)
ecm_target_qml_sources(Kirigami PRIVATE PATH templates/private SOURCES
controls/templates/private/BackButton.qml
controls/templates/private/BorderPropertiesGroup.qml
controls/templates/private/ContextIcon.qml
controls/templates/private/DrawerHandle.qml
controls/templates/private/ForwardButton.qml
controls/templates/private/GenericDrawerIcon.qml
controls/templates/private/IconPropertiesGroup.qml
controls/templates/private/MenuIcon.qml
controls/templates/private/PassiveNotificationsManager.qml
controls/templates/private/qmldir
)
qt_target_qml_sources(Kirigami RESOURCES
styles/Material/InlineMessage.qml
styles/Material/Theme.qml
OUTPUT_TARGETS _out_targets_1
)
if (DESKTOP_ENABLED)
qt_target_qml_sources(Kirigami RESOURCES
styles/org.kde.desktop/AbstractApplicationHeader.qml
styles/org.kde.desktop/Theme.qml
OUTPUT_TARGETS _out_targets_2
)
endif()
target_link_libraries(Kirigami
PUBLIC
Qt6::Core
Qt6::Gui
Qt6::Qml
Qt6::Quick
PRIVATE
Qt6::Concurrent
${Kirigami_EXTRA_LIBS}
)
if (HAVE_OpenMP)
target_link_libraries(Kirigami PRIVATE OpenMP::OpenMP_CXX)
endif()
if (NOT BUILD_SHARED_LIBS)
# Ensure we install the plugin library file as that's required to link
# against for static builds to work properly
target_link_libraries(Kirigamiplugin
PRIVATE
KirigamiPlatformplugin
KirigamiDelegatesplugin
KirigamiPrimitivesplugin
KirigamiDialogsplugin
KirigamiLayoutsplugin
KirigamiPrivateplugin
)
# for tests to find this under the name it's actually installed with'
add_library(KF6Kirigamiplugin ALIAS Kirigamiplugin)
else()
target_link_libraries(Kirigami
PUBLIC
KirigamiPlatform
PRIVATE
KirigamiDelegates
KirigamiPrimitives
KirigamiDialogs
KirigamiLayouts
KirigamiPrivate
)
endif()
install(TARGETS Kirigami ${_out_targets_1} ${_out_targets_2} EXPORT KirigamiTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
install(EXPORT KirigamiTargets
DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Kirigami
FILE KF6KirigamiTargets.cmake
NAMESPACE KF6
)
ecm_finalize_qml_module(Kirigami DESTINATION ${KDE_INSTALL_QMLDIR} EXPORT KirigamiTargets)
if (ANDROID)
install(FILES Kirigami-android-dependencies.xml
DESTINATION ${KDE_INSTALL_LIBDIR}
RENAME Kirigami_${CMAKE_ANDROID_ARCH_ABI}-android-dependencies.xml
)
endif()
ecm_qt_install_logging_categories(
EXPORT KIRIGAMI
FILE kirigami.categories
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
)