https://git.reviewboard.kde.org/r/126459/ introduced new flag that allows to skip the grouping of notifications. This should fix all bugs caused by checking for appName being "plasma_workspace" which are all default notifications from any plasmoid. CCBUG: 356653 REVIEW: 126461 (this also needs to raise the KF5 dep to 5.18 which is normally done at release time, but in order to use this now, it needs to be bumped now, otherwise build failures will ensue)
194 lines
6.8 KiB
CMake
194 lines
6.8 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
project(Plasma)
|
|
|
|
# ECM setup
|
|
include(FeatureSummary)
|
|
find_package(ECM 5.17.0 NO_MODULE)
|
|
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules")
|
|
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
|
|
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
|
|
|
|
include(GenerateExportHeader)
|
|
include(ECMGenerateHeaders)
|
|
include(KDEInstallDirs)
|
|
include(KDECMakeSettings)
|
|
include(KDECompilerSettings)
|
|
include(ECMPackageConfigHelpers)
|
|
include(ECMSetupVersion)
|
|
include(KDEFrameworkCompilerSettings)
|
|
include(ECMQtDeclareLoggingCategory)
|
|
include(KDEPackageAppTemplates)
|
|
|
|
set(KF5_VERSION "5.18.0") # handled by release scripts
|
|
set(KF5_DEP_VERSION "5.18.0") # handled by release scripts
|
|
|
|
ecm_setup_version(${KF5_VERSION}
|
|
VARIABLE_PREFIX PLASMA
|
|
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/plasma_version.h"
|
|
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfigVersion.cmake"
|
|
SOVERSION 5)
|
|
|
|
if(KDE_PLATFORM_FEATURE_DISABLE_DEPRECATED)
|
|
set(KDE_NO_DEPRECATED TRUE)
|
|
set(CMAKE_AUTOMOC_MOC_OPTIONS "-DKDE_NO_DEPRECATED")
|
|
endif()
|
|
|
|
################# Enable C++0x (still too early for -std=c++11) features for clang and gcc #################
|
|
|
|
if(UNIX)
|
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
|
|
add_definitions("-Wall -std=c++0x")
|
|
endif()
|
|
|
|
################# now find all used packages #################
|
|
|
|
set (REQUIRED_QT_VERSION "5.3.0")
|
|
|
|
find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Quick Gui Sql Qml Svg Script)
|
|
|
|
find_package(KF5Activities ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Archive ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5DBusAddons ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Declarative ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5GlobalAccel ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5GuiAddons ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5KIO ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Service ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5XmlGui ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Notifications ${KF5_DEP_VERSION} REQUIRED)
|
|
find_package(KF5Package ${KF5_DEP_VERSION} REQUIRED)
|
|
|
|
find_package(KF5DocTools ${KF5_DEP_VERSION})
|
|
set_package_properties(KF5DocTools PROPERTIES DESCRIPTION "Tools to generate documentation"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
#optional features
|
|
find_package(X11 MODULE)
|
|
set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
|
|
URL "http://www.x.org"
|
|
TYPE OPTIONAL
|
|
)
|
|
find_package(XCB MODULE COMPONENTS XCB COMPOSITE DAMAGE SHAPE XFIXES RENDER)
|
|
set_package_properties(XCB PROPERTIES DESCRIPTION "X protocol C-language Binding"
|
|
URL "http://xcb.freedesktop.org"
|
|
TYPE OPTIONAL
|
|
)
|
|
if(X11_FOUND AND XCB_XCB_FOUND)
|
|
set(HAVE_X11 1)
|
|
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS X11Extras)
|
|
#X11_Xrender discovery is done by FindX11
|
|
#add_feature_info("X Rendering Extension (libXrender)" X11_Xrender_FOUND "Support for compositing, rendering operations, and alpha-blending. STRONGLY RECOMMENDED")
|
|
endif()
|
|
|
|
#FIXME: when we have a qca for qt5, reenable
|
|
# find_package(QCA2 2.0.0 MODULE)
|
|
set_package_properties(QCA2 PROPERTIES DESCRIPTION "Support for remote plasma widgets"
|
|
URL "http://delta.affinix.com/qca"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
find_package(OpenGL)
|
|
set_package_properties(OpenGL PROPERTIES DESCRIPTION "The OpenGL libraries"
|
|
URL "http://www.opengl.org"
|
|
TYPE OPTIONAL
|
|
)
|
|
|
|
find_package(EGL)
|
|
set_package_properties(EGL PROPERTIES
|
|
PURPOSE "Support for Window Thumbnail on EGL platform"
|
|
TYPE OPTIONAL
|
|
)
|
|
set(HAVE_EGL ${EGL_FOUND})
|
|
|
|
if(OPENGL_FOUND AND (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GL"))
|
|
set(HAVE_GLX ${HAVE_X11})
|
|
else()
|
|
set(HAVE_GLX 0)
|
|
endif()
|
|
|
|
#########################################################################
|
|
|
|
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0)
|
|
|
|
#add_definitions(-Wno-deprecated)
|
|
add_definitions(-DQT_USE_QSTRINGBUILDER)
|
|
add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
|
|
|
|
remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_STRICT_ITERATORS -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS)
|
|
|
|
include(KF5PlasmaMacros.cmake)
|
|
|
|
#########################################################################
|
|
|
|
|
|
option(BUILD_EXAMPLES "Build and install Plasma examples." OFF)
|
|
option(BUILD_COVERAGE "Build Plasma Frameworks with gcov support" OFF)
|
|
|
|
if(BUILD_COVERAGE)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
|
|
endif()
|
|
|
|
################ create PlasmaConfig.cmake and install it ###########################
|
|
|
|
# create a Config.cmake and a ConfigVersion.cmake file and install them
|
|
|
|
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Plasma")
|
|
|
|
ecm_configure_package_config_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/KF5PlasmaConfig.cmake.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfig.cmake"
|
|
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
|
PATH_VARS KF5_INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX
|
|
)
|
|
|
|
install(FILES
|
|
"${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfig.cmake"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfigVersion.cmake"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/KF5PlasmaMacros.cmake"
|
|
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
|
|
COMPONENT Devel
|
|
)
|
|
|
|
install(EXPORT KF5PlasmaTargets
|
|
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
|
|
FILE KF5PlasmaTargets.cmake
|
|
NAMESPACE KF5::
|
|
COMPONENT Devel)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plasma_version.h
|
|
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel )
|
|
|
|
# make plasma_version.h available
|
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
################# list the subdirectories #################
|
|
if (KF5DocTools_FOUND)
|
|
add_subdirectory(docs)
|
|
endif()
|
|
add_definitions(-DTRANSLATION_DOMAIN=\"libplasma5\")
|
|
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
|
|
ki18n_install(po)
|
|
kdoctools_install(po)
|
|
endif()
|
|
add_subdirectory(src)
|
|
|
|
if (BUILD_EXAMPLES)
|
|
add_subdirectory(examples)
|
|
endif()
|
|
|
|
add_subdirectory(autotests)
|
|
add_subdirectory(tests)
|
|
add_subdirectory(templates)
|
|
|
|
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|