bdc2ad2a84
The outputOnly property allows to specify that the dialog should not accept any input. Thus it's an output only window which supports click through. This is obviously platform specific and so far it is only implemented for the X11 platform using the shape extension. The input shape needs to be set once the window is visible and thus the functionality is bound to the visible changed signal. The code ensures that the required shape extension version is present and only fetches it once. REVIEW: 115139
169 lines
6.6 KiB
CMake
169 lines
6.6 KiB
CMake
cmake_minimum_required(VERSION 2.8.11)
|
|
|
|
project(Plasma)
|
|
|
|
# Make CPack available to easy generate binary packages
|
|
include(CPack)
|
|
include(FeatureSummary)
|
|
include(GenerateExportHeader)
|
|
|
|
################# set KDE specific information #################
|
|
|
|
find_package(ECM 0.0.8 REQUIRED NO_MODULE)
|
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
|
|
|
|
include(KDEInstallDirs)
|
|
include(KDECMakeSettings)
|
|
include(KDECompilerSettings)
|
|
|
|
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0)
|
|
|
|
#add_definitions(-Wno-deprecated)
|
|
|
|
if(KDE_PLATFORM_FEATURE_DISABLE_DEPRECATED)
|
|
set(KDE_NO_DEPRECATED TRUE)
|
|
set(CMAKE_AUTOMOC_MOC_OPTIONS "-DKDE_NO_DEPRECATED")
|
|
endif()
|
|
|
|
############### Load the CTest options ###############
|
|
# CTestCustom.cmake has to be in the CTEST_BINARY_DIR.
|
|
# in the KDE build system, this is the same as CMAKE_BINARY_DIR.
|
|
configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ${CMAKE_BINARY_DIR}/CTestCustom.cmake COPYONLY)
|
|
|
|
################# 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 (QT_MIN_VERSION "5.2.0")
|
|
|
|
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Quick X11Extras Sql UiTools Qml Widgets Svg Declarative Script Test PrintSupport)
|
|
|
|
find_package(KF5 CONFIG REQUIRED IdleTime ItemModels WidgetsAddons WindowSystem Codecs Archive CoreAddons Solid ThreadWeaver GlobalAccel
|
|
Config Auth JS Wallet DBusAddons I18n GuiAddons ConfigWidgets
|
|
Service ItemViews Notifications IconThemes Completion JobWidgets Sonnet TextWidgets XmlGui Crash
|
|
Bookmarks Declarative UnitConversion Parts Kross KIO DNSSD)
|
|
|
|
|
|
find_package(KActivities 5.0.0 CONFIG REQUIRED)
|
|
set_package_properties(KActivities PROPERTIES DESCRIPTION "The KActivities library"
|
|
URL "https://projects.kde.org/kactivities"
|
|
TYPE REQUIRED
|
|
)
|
|
|
|
#optional features
|
|
find_package(X11 MODULE)
|
|
find_package(XCB MODULE COMPONENTS XCB COMPOSITE DAMAGE SHAPE)
|
|
set_package_properties(XCB PROPERTIES DESCRIPTION "X protocol C-language Binding"
|
|
URL "http://xcb.freedesktop.org"
|
|
TYPE REQUIRED
|
|
)
|
|
if(X11_FOUND AND XCB_XCB_FOUND)
|
|
set(HAVE_X11 1)
|
|
#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")
|
|
add_feature_info("X Screensaver Extension (libXss)" X11_Xscreensaver_FOUND "Support for KIdleTime (fallback mode)")
|
|
add_feature_info("X Sync Extension (libXext)" X11_XSync_FOUND "Efficient operation of KIdleTime. STRONGLY RECOMMENDED")
|
|
|
|
if(NOT X11_XSync_FOUND AND NOT X11_Xscreensaver_FOUND)
|
|
message(FATAL_ERROR "\nNeither the XSync (libXext) nor XScreensaver (libXss) development package was found.\nPlease install one of them (XSync is recommended)\n")
|
|
endif()
|
|
|
|
#X11 Session Management (SM) is required
|
|
#X11_SM_FOUND is set in FindX11, which is required by KDE4Internal
|
|
if(UNIX AND NOT X11_SM_FOUND)
|
|
message(FATAL_ERROR "\nThe X11 Session Management (SM) development package could not be found.\nPlease install libSM.\n")
|
|
endif()
|
|
endif()
|
|
|
|
find_package(OpenSSL MODULE)
|
|
set_package_properties(OpenSSL PROPERTIES DESCRIPTION "Support for secure network communications (SSL and TLS)"
|
|
URL "http://openssl.org"
|
|
TYPE RECOMMENDED
|
|
PURPOSE "KDE uses OpenSSL for the bulk of secure communications, including secure web browsing via HTTPS"
|
|
)
|
|
|
|
#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(DBusMenuQt MODULE)
|
|
#set_package_properties(DBusMenuQt PROPERTIES DESCRIPTION "Support for notification area menus via the DBusMenu protocol"
|
|
#URL "https://launchpad.net/libdbusmenu-qt"
|
|
#TYPE REQUIRED
|
|
#)
|
|
|
|
|
|
|
|
find_package(OpenGL)
|
|
set_package_properties(OpenGL PROPERTIES DESCRIPTION "The OpenGL libraries"
|
|
URL "http://www.opengl.org"
|
|
TYPE OPTIONAL
|
|
)
|
|
if(OPENGL_FOUND)
|
|
set(HAVE_GLX ${HAVE_X11})
|
|
else()
|
|
set(HAVE_GLX 0)
|
|
endif()
|
|
|
|
#########################################################################
|
|
|
|
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
|
|
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)
|
|
|
|
################# configure checks and create the configured files #################
|
|
|
|
# now create config headers
|
|
configure_file(config-prefix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-prefix.h )
|
|
configure_file(config-compiler.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-compiler.h )
|
|
|
|
################ create PlasmaConfig.cmake and install it ###########################
|
|
|
|
|
|
# create a Config.cmake and a ConfigVersion.cmake file and install them
|
|
set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5Plasma")
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
include(ECMSetupVersion)
|
|
ecm_setup_version(2.0.0 VARIABLE_PREFIX PLASMA
|
|
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/plasma_version.h"
|
|
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfigVersion.cmake")
|
|
|
|
configure_package_config_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/KF5PlasmaConfig.cmake.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/KF5PlasmaConfig.cmake"
|
|
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
|
PATH_VARS INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX
|
|
)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plasma_version.h
|
|
DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel )
|
|
|
|
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
|
|
)
|
|
|
|
################# list the subdirectories #################
|
|
add_subdirectory(src)
|
|
add_subdirectory(desktoptheme)
|
|
add_subdirectory(examples)
|
|
|
|
install(EXPORT KF5PlasmaTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5PlasmaTargets.cmake NAMESPACE KF5:: COMPONENT Devel)
|
|
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|