Warning, /frameworks/kirigami/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 include(${CMAKE_CURRENT_SOURCE_DIR}/IncludeStaticDependencies.cmake)
0002 
0003 add_subdirectory(platform)
0004 
0005 add_subdirectory(delegates)
0006 
0007 add_library(Kirigami)
0008 add_library(KF6::Kirigami ALIAS Kirigami)
0009 
0010 if (WIN32)
0011     # Kirigami apparently adds too many sources so on Windows we end
0012     # up running into command line length limits. So disable cache
0013     # generation on Windows for now.
0014     set(_extra_options NO_CACHEGEN)
0015 endif()
0016 if (BUILD_SHARED_LIBS)
0017     set(_extra_options ${_extra_options} NO_PLUGIN_OPTIONAL)
0018 endif()
0019 if (ANDROID)
0020     set(_extra_options ${_extra_options} OPTIONAL_IMPORTS org.kde.breeze)
0021 endif()
0022 
0023 ecm_add_qml_module(Kirigami URI "org.kde.kirigami" VERSION 2.0
0024     CLASS_NAME KirigamiPlugin
0025     DEPENDENCIES
0026     "QtQuick.Controls"
0027     IMPORTS
0028     "org.kde.kirigami.platform"
0029     "org.kde.kirigami.delegates"
0030     ${_extra_options}
0031 )
0032 
0033 ecm_create_qm_loader(kirigami_QM_LOADER libkirigami6_qt)
0034 target_sources(Kirigami PRIVATE ${kirigami_QM_LOADER})
0035 
0036 ecm_qt_declare_logging_category(Kirigami
0037     HEADER loggingcategory.h
0038     IDENTIFIER KirigamiLog
0039     CATEGORY_NAME kf.kirigami
0040     DESCRIPTION "Kirigami"
0041     DEFAULT_SEVERITY Warning
0042     EXPORT KIRIGAMI
0043 )
0044 
0045 set_target_properties(Kirigami PROPERTIES
0046     VERSION     ${PROJECT_VERSION}
0047     SOVERSION   6
0048     EXPORT_NAME "Kirigami"
0049 )
0050 
0051 target_include_directories(Kirigami PRIVATE
0052     ${CMAKE_CURRENT_SOURCE_DIR}/platform
0053     ${CMAKE_CURRENT_BINARY_DIR}/platform
0054 )
0055 
0056 target_sources(Kirigami PRIVATE
0057     colorutils.cpp
0058     colorutils.h
0059     columnview.cpp
0060     columnview.h
0061     columnview_p.h
0062     enums.cpp
0063     enums.h
0064     formlayoutattached.cpp
0065     formlayoutattached.h
0066     headerfooterlayout.cpp
0067     icon.cpp
0068     icon.h
0069     imagecolors.cpp
0070     imagecolors.h
0071     mnemonicattached.cpp
0072     mnemonicattached.h
0073     overlayzstackingattached.cpp
0074     overlayzstackingattached.h
0075     padding.cpp
0076     padding.h
0077     pagepool.cpp
0078     pagepool.h
0079     scenepositionattached.cpp
0080     scenepositionattached.h
0081     shadowedrectangle.cpp
0082     shadowedrectangle.h
0083     shadowedtexture.cpp
0084     shadowedtexture.h
0085     sizegroup.cpp
0086     sizegroup.h
0087     spellcheckattached.cpp
0088     spellcheckattached.h
0089     toolbarlayout.cpp
0090     toolbarlayoutdelegate.cpp
0091     toolbarlayoutdelegate.h
0092     toolbarlayout.h
0093     wheelhandler.cpp
0094     wheelhandler.h
0095 
0096     scenegraph/managedtexturenode.cpp
0097     scenegraph/managedtexturenode.h
0098     scenegraph/paintedrectangleitem.cpp
0099     scenegraph/paintedrectangleitem.h
0100     scenegraph/shadowedborderrectanglematerial.cpp
0101     scenegraph/shadowedborderrectanglematerial.h
0102     scenegraph/shadowedbordertexturematerial.cpp
0103     scenegraph/shadowedbordertexturematerial.h
0104     scenegraph/shadowedrectanglematerial.cpp
0105     scenegraph/shadowedrectanglematerial.h
0106     scenegraph/shadowedrectanglenode.cpp
0107     scenegraph/shadowedrectanglenode.h
0108     scenegraph/shadowedtexturematerial.cpp
0109     scenegraph/shadowedtexturematerial.h
0110     scenegraph/shadowedtexturenode.cpp
0111     scenegraph/shadowedtexturenode.h
0112 )
0113 
0114 target_sources(Kirigamiplugin PRIVATE
0115     kirigamiplugin.cpp
0116     kirigamiplugin.h
0117 )
0118 
0119 qt6_add_shaders(Kirigami "shaders"
0120     BATCHABLE
0121     PRECOMPILE
0122     OPTIMIZED
0123     PREFIX "/org/kde/kirigami/shaders"
0124     FILES
0125         scenegraph/shaders6/shadowedrectangle.vert
0126         scenegraph/shaders6/shadowedrectangle.frag
0127         scenegraph/shaders6/shadowedrectangle_lowpower.frag
0128         scenegraph/shaders6/shadowedborderrectangle.frag
0129         scenegraph/shaders6/shadowedborderrectangle_lowpower.frag
0130         scenegraph/shaders6/shadowedtexture.frag
0131         scenegraph/shaders6/shadowedtexture_lowpower.frag
0132         scenegraph/shaders6/shadowedbordertexture.frag
0133         scenegraph/shaders6/shadowedbordertexture_lowpower.frag
0134     OUTPUTS
0135         shadowedrectangle.vert.qsb
0136         shadowedrectangle.frag.qsb
0137         shadowedrectangle_lowpower.frag.qsb
0138         shadowedborderrectangle.frag.qsb
0139         shadowedborderrectangle_lowpower.frag.qsb
0140         shadowedtexture.frag.qsb
0141         shadowedtexture_lowpower.frag.qsb
0142         shadowedbordertexture.frag.qsb
0143         shadowedbordertexture_lowpower.frag.qsb
0144 )
0145 
0146 ecm_target_qml_sources(Kirigami SOURCES
0147     controls/Action.qml
0148     controls/AbstractApplicationHeader.qml
0149     controls/AbstractApplicationWindow.qml
0150     controls/ApplicationWindow.qml
0151     controls/OverlayDrawer.qml
0152     controls/ContextDrawer.qml
0153     controls/GlobalDrawer.qml
0154     controls/Heading.qml
0155     controls/Separator.qml
0156     controls/PageRow.qml
0157     controls/OverlaySheet.qml
0158     controls/Page.qml
0159     controls/ScrollablePage.qml
0160     controls/SwipeListItem.qml
0161 )
0162 
0163 ecm_target_qml_sources(Kirigami VERSION 2.1 SOURCES
0164     controls/AbstractApplicationItem.qml
0165     controls/ApplicationItem.qml
0166 )
0167 
0168 ecm_target_qml_sources(Kirigami VERSION 2.3 SOURCES
0169     controls/FormLayout.qml
0170 )
0171 
0172 ecm_target_qml_sources(Kirigami VERSION 2.4 SOURCES
0173     controls/AbstractCard.qml
0174     controls/Card.qml
0175     controls/CardsListView.qml
0176     controls/CardsLayout.qml
0177     controls/InlineMessage.qml
0178 )
0179 
0180 ecm_target_qml_sources(Kirigami VERSION 2.5 SOURCES
0181     controls/ListItemDragHandle.qml
0182     controls/ActionToolBar.qml
0183 )
0184 
0185 ecm_target_qml_sources(Kirigami VERSION 2.6 SOURCES
0186     controls/AboutPage.qml
0187     controls/LinkButton.qml
0188     controls/UrlButton.qml
0189 )
0190 
0191 ecm_target_qml_sources(Kirigami VERSION 2.7 SOURCES
0192     controls/ActionTextField.qml
0193 )
0194 
0195 ecm_target_qml_sources(Kirigami VERSION 2.8 SOURCES
0196     controls/SearchField.qml
0197     controls/PasswordField.qml
0198 )
0199 
0200 ecm_target_qml_sources(Kirigami VERSION 2.10 SOURCES
0201     controls/ListSectionHeader.qml
0202 )
0203 
0204 ecm_target_qml_sources(Kirigami VERSION 2.11 SOURCES
0205     controls/PagePoolAction.qml
0206 )
0207 
0208 ecm_target_qml_sources(Kirigami VERSION 2.12 SOURCES
0209     controls/ShadowedImage.qml
0210     controls/PlaceholderMessage.qml
0211 )
0212 
0213 ecm_target_qml_sources(Kirigami VERSION 2.14 SOURCES
0214     controls/FlexColumn.qml
0215 )
0216 
0217 ecm_target_qml_sources(Kirigami VERSION 2.19 SOURCES
0218     controls/AboutItem.qml
0219     controls/NavigationTabBar.qml
0220     controls/NavigationTabButton.qml
0221     controls/Dialog.qml
0222     controls/MenuDialog.qml
0223     controls/PromptDialog.qml
0224     controls/Chip.qml
0225     controls/LoadingPlaceholder.qml
0226 )
0227 
0228 ecm_target_qml_sources(Kirigami VERSION 2.20 SOURCES
0229     controls/SelectableLabel.qml
0230     controls/InlineViewHeader.qml
0231 )
0232 
0233 ecm_target_qml_sources(Kirigami PRIVATE PATH private SOURCES
0234     controls/private/ActionIconGroup.qml
0235     controls/private/ActionMenuItem.qml
0236     controls/private/ActionsMenu.qml
0237     controls/private/BannerImage.qml
0238     controls/private/ContextDrawerActionItem.qml
0239     controls/private/DefaultCardBackground.qml
0240     controls/private/DefaultChipBackground.qml
0241     controls/private/DefaultPageTitleDelegate.qml
0242     controls/private/EdgeShadow.qml
0243     controls/private/GlobalDrawerActionItem.qml
0244     controls/private/MobileDialogLayer.qml
0245     controls/private/PrivateActionToolButton.qml
0246     controls/private/PullDownIndicator.qml
0247     controls/private/SwipeItemEventFilter.qml
0248 )
0249 
0250 ecm_target_qml_sources(Kirigami PRIVATE PATH private/globaltoolbar SOURCES
0251     controls/private/globaltoolbar/AbstractPageHeader.qml
0252     controls/private/globaltoolbar/BreadcrumbControl.qml
0253     controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml
0254     controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
0255     controls/private/globaltoolbar/TitlesPageHeader.qml
0256     controls/private/globaltoolbar/ToolBarPageHeader.qml
0257     controls/private/globaltoolbar/ToolBarPageFooter.qml
0258 )
0259 
0260 ecm_target_qml_sources(Kirigami PRIVATE PATH templates SOURCES
0261     controls/templates/AbstractApplicationHeader.qml
0262     controls/templates/AbstractCard.qml
0263     controls/templates/Chip.qml
0264     controls/templates/InlineMessage.qml
0265     controls/templates/OverlayDrawer.qml
0266     controls/templates/OverlaySheet.qml
0267     controls/templates/SingletonHeaderSizeGroup.qml
0268     controls/templates/qmldir
0269 )
0270 
0271 ecm_target_qml_sources(Kirigami PRIVATE PATH templates/private SOURCES
0272     controls/templates/private/BackButton.qml
0273     controls/templates/private/BorderPropertiesGroup.qml
0274     controls/templates/private/ContextIcon.qml
0275     controls/templates/private/DrawerHandle.qml
0276     controls/templates/private/ForwardButton.qml
0277     controls/templates/private/GenericDrawerIcon.qml
0278     controls/templates/private/IconPropertiesGroup.qml
0279     controls/templates/private/MenuIcon.qml
0280     controls/templates/private/PassiveNotificationsManager.qml
0281     controls/templates/private/qmldir
0282 )
0283 
0284 qt_target_qml_sources(Kirigami RESOURCES
0285     styles/Material/InlineMessage.qml
0286     styles/Material/Theme.qml
0287 )
0288 
0289 if (DESKTOP_ENABLED)
0290     qt_target_qml_sources(Kirigami RESOURCES
0291         styles/org.kde.desktop/AbstractApplicationHeader.qml
0292         styles/org.kde.desktop/Theme.qml
0293     )
0294 endif()
0295 
0296 include_static_dependencies(Kirigami EXPORT KirigamiTargets)
0297 
0298 target_link_libraries(Kirigami
0299     PUBLIC
0300     Qt6::Core
0301     Qt6::Gui
0302     Qt6::Qml
0303     Qt6::Quick
0304     PRIVATE
0305     Qt6::Concurrent
0306     ${Kirigami_EXTRA_LIBS}
0307 )
0308 
0309 if (HAVE_OpenMP)
0310     target_link_libraries(Kirigami PRIVATE OpenMP::OpenMP_CXX)
0311 endif()
0312 
0313 if (NOT BUILD_SHARED_LIBS)
0314     # Ensure we install the plugin library file as that's required to link
0315     # against for static builds to work properly
0316     target_link_libraries(Kirigamiplugin PRIVATE KirigamiPlatformplugin KirigamiDelegatesplugin)
0317     install(TARGETS Kirigamiplugin EXPORT KirigamiTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0318 else()
0319     target_link_libraries(Kirigami PUBLIC KirigamiPlatform PRIVATE KirigamiDelegates)
0320 endif()
0321 
0322 install(TARGETS Kirigami EXPORT KirigamiTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0323 install(EXPORT KirigamiTargets
0324     DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Kirigami
0325     FILE KF6KirigamiTargets.cmake
0326     NAMESPACE KF6
0327 )
0328 
0329 ecm_finalize_qml_module(Kirigami DESTINATION ${KDE_INSTALL_QMLDIR})
0330 
0331 ecm_add_qml_module(KirigamiPrivatePlugin URI org.kde.kirigami.private VERSION 2.6 GENERATE_PLUGIN_SOURCE)
0332 
0333 target_sources(KirigamiPrivatePlugin PRIVATE copyhelper.cpp)
0334 
0335 target_link_libraries(KirigamiPrivatePlugin PRIVATE Qt6::Gui)
0336 
0337 ecm_finalize_qml_module(KirigamiPrivatePlugin DESTINATION ${KDE_INSTALL_QMLDIR})
0338 
0339 
0340 if (ANDROID)
0341     install(FILES Kirigami-android-dependencies.xml
0342         DESTINATION ${KDE_INSTALL_LIBDIR}
0343         RENAME Kirigami_${CMAKE_ANDROID_ARCH_ABI}-android-dependencies.xml
0344     )
0345 endif()