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()