ce0ac10b6d
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.
323 lines
9.0 KiB
CMake
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}
|
|
)
|