# This option should be removed, or moved down as far as possible. # That means porting the existing frameworks to the CMake automoc # feature. Porting is mostly removing explicit moc includes, and # leaving the ones which are truly needed (ie, if you remove # them, the build fails). set(CMAKE_AUTOMOC_RELAXED_MODE ON) if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION) set(PLASMA_NO_SOLID TRUE) set(PLASMA_NO_KIO TRUE) set(PLASMA_NO_PACKAGEKIT TRUE) set(PLASMA_NO_PACKAGE_EXTRADATA TRUE) endif() if(NOT X11_FOUND) set(PLASMA_NO_PACKAGEKIT TRUE) endif() #find_package(KdepimLibs 4.5.60) #find_package(Gpgme) #set_package_properties(KDEPIMLIBS PROPERTIES DESCRIPTION "KDE PIM libraries" # URL "http://www.kde.org" TYPE OPTIONAL # PURPOSE "Needed for building several Plasma DataEngines") if(NOT PLASMA_NO_SOLID) set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} KF5::Solid) endif() if(NOT PLASMA_NO_PACKAGEKIT) add_definitions(-DPLASMA_ENABLE_PACKAGEKIT_SUPPORT=1) set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} Qt5::DBus) endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-plasma.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-plasma.h) #FIXME: gpgme++ is in kdepimlibs, must move somewhere else! include_directories(${KDEPIMLIBS_INCLUDE_DIRS} ${GPGME_INCLUDES}) add_definitions(-DKDE_DEFAULT_DEBUG_AREA=1209) ########### next target ############### set(Plasma_LIB_SRCS #global plasma.cpp pluginloader.cpp version.cpp private/componentinstaller.cpp #applets,containments,corona applet.cpp configloader.cpp containment.cpp containmentactions.cpp corona.cpp private/applet_p.cpp private/associatedapplicationmanager.cpp private/containment_p.cpp #Dataengines, services datacontainer.cpp dataengine.cpp dataengineconsumer.cpp service.cpp servicejob.cpp private/datacontainer_p.cpp private/dataenginemanager.cpp private/storage.cpp private/storagethread.cpp #packages package.cpp packagestructure.cpp private/packagejob.cpp private/packagejobthread.cpp private/packages.cpp #graphics framesvg.cpp svg.cpp theme.cpp private/theme_p.cpp #scripting scripting/appletscript.cpp scripting/dataenginescript.cpp scripting/scriptengine.cpp ) set(Plasma_LIB_SRCS ${Plasma_LIB_SRCS} private/effectwatcher.cpp) kconfig_add_kcfg_files(Plasma_LIB_SRCS data/kconfigxt/libplasma-theme-global.kcfgc) #NEPOMUK_GENERATE_FROM_ONTOLOGY( # nwc.nrl # ${metadata_test_BINARY_DIR} # TEST_HEADERS # TEST_SOURCES # TEST_INCLUDES #) add_library(KF5Plasma ${Plasma_LIB_SRCS}) add_library(KF5::Plasma ALIAS KF5Plasma) if(X11_FOUND) set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} Qt5::X11Extras ${X11_LIBRARIES} ${XCB_XCB_LIBRARY}) endif() if(DL_LIBRARY) set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} ${DL_LIBRARY}) endif() target_link_libraries(KF5Plasma PUBLIC Qt5::Widgets KF5::ConfigWidgets KF5::Service # For kplugininfo.h and kservice.h PRIVATE Qt5::Network Qt5::Sql Qt5::Quick # needed in service.cpp, remove? Qt5::Svg Qt5::DBus Qt5::UiTools Qt5::Xml KF5::Archive KF5::GuiAddons KF5::IconThemes KF5::I18n KF5::KIOCore KF5::KIOWidgets KF5::ThreadWeaver KF5::WindowSystem KF5::Auth KF5::Declarative KF5::XmlGui KF5::GlobalAccel KF5::DNSSD ${PLASMA_EXTRA_LIBS} ) target_include_directories(KF5Plasma PUBLIC "$" ) target_include_directories(KF5Plasma INTERFACE "$" ) set_target_properties(KF5Plasma PROPERTIES VERSION ${PLASMA_VERSION_STRING} SOVERSION ${PLASMA_SOVERSION} EXPORT_NAME Plasma ) ########### install files ############### generate_export_header(KF5Plasma BASE_NAME Plasma) set(Plasma_LIB_INCLUDES applet.h configloader.h containment.h containmentactions.h corona.h datacontainer.h dataengine.h dataengineconsumer.h pluginloader.h framesvg.h package.h packagestructure.h plasma.h ${CMAKE_CURRENT_BINARY_DIR}/plasma_export.h service.h servicejob.h svg.h theme.h version.h) install(FILES ${Plasma_LIB_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/plasma COMPONENT Devel) install(DIRECTORY includes/Plasma DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/ COMPONENT Devel) install(FILES scripting/appletscript.h scripting/dataenginescript.h scripting/scriptengine.h DESTINATION ${INCLUDE_INSTALL_DIR}/plasma/scripting COMPONENT Devel) install(FILES data/servicetypes/plasma-applet.desktop data/servicetypes/plasma-containment.desktop data/servicetypes/plasma-containmentactions.desktop data/servicetypes/plasma-dataengine.desktop data/servicetypes/plasma-generic.desktop data/servicetypes/plasma-packagestructure.desktop data/servicetypes/plasma-scriptengine.desktop data/servicetypes/plasma-service.desktop data/servicetypes/plasma-shell.desktop data/servicetypes/plasma-lookandfeel.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR}) install(FILES data/operations/dataengineservice.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) install(FILES data/operations/plasmoidservice.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) install(FILES data/operations/storage.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) install(TARGETS KF5Plasma EXPORT KF5PlasmaTargets ${INSTALL_TARGETS_DEFAULT_ARGS})