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

0001 # SPDX-FileCopyrightText: 2022 Alexander Lohnau <alexander.lohnau@gmx.de>
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 
0004 add_subdirectory(core)
0005 add_subdirectory(qml)
0006 
0007 ########### kcmutils ###############
0008 set(kcmutils_LIB_SRCS
0009     kcmodulecontainer.cpp
0010     kcmodulecontainer.h
0011     kcmoduledata.cpp
0012     kcmoduledata.h
0013     kcmoduleinfo.cpp
0014     kcmoduleinfo.h
0015     kcmoduleloader.cpp
0016     kcmoduleloader.h
0017     kcmoduleproxy.cpp
0018     kcmoduleproxy.h
0019     kcmoduleproxy_p.h
0020     kcmoduleqml.cpp
0021     kcmoduleqml_p.h
0022     kcmultidialog.cpp
0023     kcmultidialog.h
0024     kcmultidialog_p.h
0025     kpluginselector.cpp
0026     kpluginselector.h
0027     kpluginselector_p.h
0028     kpluginwidget.cpp
0029     ksettings/dialog.cpp
0030     ksettings/dialog.h
0031     ksettings/dialog_p.h
0032     ksettings/dispatcher.cpp
0033     ksettings/dispatcher.h
0034     ksettings/dispatcher_p.h
0035     ksettings/pluginpage.cpp
0036     ksettings/pluginpage.h
0037     ksettingswidgetadaptor.cpp
0038     ksettingswidgetadaptor.h
0039 )
0040 
0041 add_library(KF5KCMUtils ${kcmutils_LIB_SRCS})
0042 
0043 ecm_qt_declare_logging_category(KF5KCMUtils
0044     HEADER kcmutils_debug.h
0045     IDENTIFIER KCMUTILS_LOG
0046     CATEGORY_NAME kf.kcmutils
0047     DESCRIPTION "KCMUtils"
0048     EXPORT KCMUTILS
0049 )
0050 
0051 ecm_generate_export_header(KF5KCMUtils
0052     BASE_NAME KCMUtils
0053     GROUP_BASE_NAME KF
0054     VERSION ${KF_VERSION}
0055     DEPRECATED_BASE_VERSION 0
0056     DEPRECATION_VERSIONS 5.66 5.76 5.82 5.85 5.87 5.88 5.90
0057     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0058 )
0059 target_include_directories(KF5KCMUtils INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KCMUtils>")
0060 
0061 target_link_libraries(KF5KCMUtils
0062   PUBLIC
0063     Qt${QT_MAJOR_VERSION}::Widgets
0064     KF5::ConfigWidgets  # KCModule
0065     KF5::Service        # KService
0066   PRIVATE
0067     KF5KCMUtilsCore
0068     kcmutils_proxy_model
0069     Qt${QT_MAJOR_VERSION}::DBus       # dbus usage in kcmoduleproxy.cpp
0070     Qt${QT_MAJOR_VERSION}::Qml
0071     Qt${QT_MAJOR_VERSION}::Quick
0072     Qt${QT_MAJOR_VERSION}::QuickWidgets
0073     KF5::CoreAddons
0074     KF5::GuiAddons # KIconUtils
0075     KF5::I18n
0076     KF5::ItemViews       # KWidgetItemDelegate
0077     KF5::XmlGui          # KAboutApplicationDialog
0078     KF5::QuickAddons
0079     KF5::Declarative
0080 )
0081 
0082 if (QT_MAJOR_VERSION STREQUAL "6")
0083     # TODO: instead of relying on KF5ConfigWidgetsConfig.cmake optionally getting KAuth dependency,
0084     # have KF5ConfigWidgetsConfig.cmake provide a proper flag/property about using the KAuth feature
0085     if (TARGET KF5::AuthWidgets)
0086         # KF5::ConfigWidgets has only KF5::AuthCore in public interface in KF6
0087         target_link_libraries(KF5KCMUtils PRIVATE KF5::AuthWidgets) # KAuth::ObjectDecorator
0088     endif()
0089 endif()
0090 
0091 set_target_properties(KF5KCMUtils PROPERTIES
0092                       VERSION ${KCMUTILS_VERSION}
0093                       SOVERSION ${KCMUTILS_SOVERSION}
0094                       EXPORT_NAME KCMUtils)
0095 
0096 ecm_generate_headers(KCMUtils_HEADERS
0097   HEADER_NAMES
0098   KCModuleInfo
0099   KCModuleLoader
0100   KCMultiDialog
0101   KCModuleProxy
0102   KPluginSelector
0103   KCModuleContainer
0104   KCModuleData
0105   KPluginWidget
0106 
0107   REQUIRED_HEADERS KCMUtils_HEADERS
0108 )
0109 install(FILES
0110   ${CMAKE_CURRENT_BINARY_DIR}/kcmutils_export.h
0111   ${KCMUtils_HEADERS}
0112   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCMUtils COMPONENT Devel
0113 )
0114 
0115 ecm_generate_headers(KSettings_HEADERS
0116   HEADER_NAMES
0117   Dispatcher
0118   Dialog
0119   PluginPage
0120 
0121   RELATIVE ksettings
0122   REQUIRED_HEADERS KSettings_HEADERS
0123 )
0124 install(FILES
0125   ${KSettings_HEADERS}
0126   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCMUtils/ksettings COMPONENT Devel
0127 )
0128 
0129 install(TARGETS KF5KCMUtils EXPORT KF5KCMUtilsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0130 
0131 install(FILES
0132  kcmodule.desktop
0133  kcmoduleinit.desktop
0134 DESTINATION  ${KDE_INSTALL_KSERVICETYPESDIR} )
0135 
0136 if(BUILD_QCH)
0137     ecm_add_qch(
0138         KF5KCMUtils_QCH
0139         NAME KCMUtils
0140         BASE_NAME KF5KCMUtils
0141         VERSION ${KF_VERSION}
0142         ORG_DOMAIN org.kde
0143         SOURCES # using only public headers, to cover only public API
0144             ${KCMUtils_HEADERS}
0145             ${KSettings_HEADERS}
0146             ksettings/README.dox
0147         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0148         LINK_QCHS
0149             Qt5Widgets_QCH
0150             KF5ConfigWidgets_QCH
0151             KF5Service_QCH
0152         INCLUDE_DIRS
0153             ${CMAKE_CURRENT_BINARY_DIR}
0154         BLANK_MACROS
0155             KCMUTILS_EXPORT
0156             KCMUTILS_DEPRECATED
0157             KCMUTILS_DEPRECATED_EXPORT
0158         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0159         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0160         COMPONENT Devel
0161     )
0162 endif()
0163 
0164 include(ECMGeneratePriFile)
0165 ecm_generate_pri_file(BASE_NAME KCMUtils LIB_NAME KF5KCMUtils DEPS "widgets KConfigWidgets KService" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KCMUtils)
0166 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0167 
0168 ecm_qt_install_logging_categories(
0169     EXPORT KCMUTILS
0170     FILE kcmutils.categories
0171     DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
0172 )
0173