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

0001 add_subdirectory(packagestructure)
0002 
0003 if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION)
0004     set(PLASMA_NO_PACKAGE_EXTRADATA TRUE)
0005 endif()
0006 
0007 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-plasma.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-plasma.h)
0008 
0009 add_library(KF5Plasma)
0010 add_library(KF5::Plasma ALIAS KF5Plasma)
0011 
0012 set_target_properties(KF5Plasma PROPERTIES
0013     VERSION     ${PLASMA_VERSION}
0014     SOVERSION   ${PLASMA_SOVERSION}
0015     EXPORT_NAME Plasma
0016 )
0017 
0018 target_sources(KF5Plasma PRIVATE
0019 #global
0020     plasma.cpp
0021     pluginloader.cpp
0022     version.cpp
0023 
0024 #applets,containments,corona
0025     applet.cpp
0026     containment.cpp
0027     containmentactions.cpp
0028     corona.cpp
0029     private/applet_p.cpp
0030     private/associatedapplicationmanager.cpp
0031     private/containment_p.cpp
0032     private/timetracker.cpp
0033 
0034 #Dataengines, services
0035     datacontainer.cpp
0036     dataengine.cpp
0037     dataengineconsumer.cpp
0038     service.cpp
0039     servicejob.cpp
0040     private/datacontainer_p.cpp
0041     private/dataenginemanager.cpp
0042     private/storage.cpp
0043     private/storagethread.cpp
0044 
0045 #graphics
0046     framesvg.cpp
0047     svg.cpp
0048     theme.cpp
0049     private/theme_p.cpp
0050 
0051 #scripting
0052     scripting/appletscript.cpp
0053     scripting/dataenginescript.cpp
0054     scripting/scriptengine.cpp
0055 )
0056 
0057 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0058    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.83.0)
0059     #packages
0060     target_sources(KF5Plasma PRIVATE package.cpp packagestructure.cpp)
0061 endif()
0062 
0063 
0064 if(HAVE_X11)
0065     target_sources(KF5Plasma PRIVATE private/effectwatcher.cpp)
0066 endif()
0067 
0068 kconfig_add_kcfg_files(KF5Plasma data/kconfigxt/libplasma-theme-global.kcfgc)
0069 
0070 ecm_qt_declare_logging_category(KF5Plasma
0071     HEADER debug_p.h
0072     IDENTIFIER LOG_PLASMA
0073     CATEGORY_NAME kf.plasma.core
0074     OLD_CATEGORY_NAMES org.kde.plasma
0075     DESCRIPTION "Plasma Core lib"
0076     EXPORT PLASMA
0077 )
0078 
0079 ecm_generate_export_header(KF5Plasma
0080     EXPORT_FILE_NAME plasma/plasma_export.h
0081     BASE_NAME Plasma
0082     GROUP_BASE_NAME KF
0083     VERSION ${KF_VERSION}
0084     DEPRECATED_BASE_VERSION 0
0085     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0086     DEPRECATION_VERSIONS 5.6 5.19 5.28 5.30 5.36 5.46 5.67 5.77 5.78 5.81 5.83 5.85 5.86 5.88 5.94
0087 )
0088 
0089 if(HAVE_X11)
0090     set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} XCB::XCB)
0091     if (TARGET Qt5::X11Extras)
0092         list(APPEND PLASMA_EXTRA_LIBS Qt5::X11Extras)
0093     elseif(TARGET Qt6::Gui)
0094         list(APPEND PLASMA_EXTRA_LIBS Qt6::GuiPrivate)
0095     endif()
0096 endif()
0097 
0098 target_link_libraries(KF5Plasma
0099 PUBLIC
0100     Qt${QT_MAJOR_VERSION}::Gui
0101     KF5::ConfigCore
0102     KF5::CoreAddons
0103 PRIVATE
0104     Qt${QT_MAJOR_VERSION}::Sql
0105     Qt${QT_MAJOR_VERSION}::Svg
0106     Qt${QT_MAJOR_VERSION}::DBus
0107     KF5::Archive
0108     KF5::GuiAddons #kimagecache
0109     KF5::I18n
0110     KF5::KIOCore    #ServiceJob
0111     KF5::KIOWidgets  #KIO::JobUiDelegate
0112     KF5::WindowSystem #compositingActive
0113     KF5::Declarative #runtimePlatform
0114     KF5::XmlGui   #KActionCollection
0115     KF5::GlobalAccel #Applet::setGlobalShortcut
0116     KF5::Notifications
0117     KF5::IconThemes
0118     ${PLASMA_EXTRA_LIBS}
0119 )
0120 
0121 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0122    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.94.0)
0123     target_link_libraries(KF5Plasma PUBLIC KF5::Service) # For kplugininfo.h and kservice.h
0124 endif()
0125 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0126    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.100.0)
0127     target_link_libraries(KF5Plasma PUBLIC KF5::Package)
0128 else()
0129     target_link_libraries(KF5Plasma PRIVATE KF5::Package)
0130 endif()
0131 
0132 set(Plasma_BUILD_INCLUDE_DIRS
0133     ${CMAKE_CURRENT_SOURCE_DIR}/..
0134     ${CMAKE_CURRENT_BINARY_DIR}
0135     ${CMAKE_CURRENT_BINARY_DIR}/Plasma
0136 )
0137 target_include_directories(KF5Plasma PUBLIC
0138   "$<BUILD_INTERFACE:${Plasma_BUILD_INCLUDE_DIRS}>"
0139 )
0140 target_include_directories(KF5Plasma INTERFACE
0141   "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF};${KDE_INSTALL_INCLUDEDIR_KF}/Plasma>"
0142 )
0143 
0144 ########### install files ###############
0145 ecm_generate_headers(Plasma_CamelCase_HEADERS
0146     HEADER_NAMES
0147         Applet
0148         Containment
0149         ContainmentActions
0150         Corona
0151         DataContainer
0152         DataEngine
0153         DataEngineConsumer
0154         PluginLoader
0155         FrameSvg
0156         Package
0157         PackageStructure
0158         Service
0159         ServiceJob
0160         Svg
0161         Theme
0162         Plasma
0163     REQUIRED_HEADERS Plasma_HEADERS
0164     PREFIX Plasma
0165 )
0166 
0167 set(Plasma_HEADERS
0168     ${Plasma_HEADERS}
0169     version.h
0170 )
0171 
0172 set(PlasmaScripting_HEADERS
0173     scripting/appletscript.h
0174     scripting/dataenginescript.h
0175     scripting/scriptengine.h
0176 )
0177 
0178 
0179 install(FILES
0180         ${Plasma_HEADERS}
0181         ${CMAKE_CURRENT_BINARY_DIR}/plasma/plasma_export.h
0182         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/plasma COMPONENT Devel)
0183 
0184 install(FILES ${Plasma_CamelCase_HEADERS}
0185         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Plasma COMPONENT Devel)
0186 
0187 
0188 install(FILES ${PlasmaScripting_HEADERS}
0189     DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/plasma/scripting COMPONENT Devel)
0190 
0191 install(FILES
0192    data/servicetypes/plasma-applet.desktop
0193    data/servicetypes/plasma-containment.desktop
0194    data/servicetypes/plasma-containmentactions.desktop
0195    data/servicetypes/plasma-dataengine.desktop
0196    data/servicetypes/plasma-generic.desktop
0197    data/servicetypes/plasma-packagestructure.desktop
0198    data/servicetypes/plasma-scriptengine.desktop
0199    data/servicetypes/plasma-service.desktop
0200    data/servicetypes/plasma-shell.desktop
0201    data/servicetypes/plasma-lookandfeel.desktop
0202    DESTINATION ${KDE_INSTALL_KSERVICETYPESDIR})
0203 
0204 install(FILES data/operations/dataengineservice.operations DESTINATION ${PLASMA_DATA_INSTALL_DIR}/services)
0205 install(FILES data/operations/plasmoidservice.operations DESTINATION ${PLASMA_DATA_INSTALL_DIR}/services)
0206 install(FILES data/operations/storage.operations DESTINATION ${PLASMA_DATA_INSTALL_DIR}/services)
0207 
0208 install(TARGETS KF5Plasma EXPORT KF5PlasmaTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0209 
0210 if(BUILD_QCH)
0211     ecm_add_qch(
0212         KF5Plasma_QCH
0213         NAME Plasma
0214         BASE_NAME KF5Plasma
0215         VERSION ${KF_VERSION}
0216         ORG_DOMAIN org.kde
0217         SOURCES # using only public headers, to cover only public API
0218             ${Plasma_HEADERS}
0219             ${PlasmaScripting_HEADERS}
0220             Mainpage.dox
0221         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0222         LINK_QCHS
0223             Qt5Gui_QCH
0224             KF5Service_QCH
0225             KF5Package_QCH
0226         INCLUDE_DIRS
0227             ${Plasma_BUILD_INCLUDE_DIRS}
0228         BLANK_MACROS
0229             PLASMA_EXPORT
0230             PLASMA_DEPRECATED
0231             PLASMA_DEPRECATED_EXPORT
0232             "PLASMA_DEPRECATED_VERSION(x, y, t)"
0233         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0234         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0235         COMPONENT Devel
0236     )
0237 endif()