diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a8c8f5..a07dfc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,96 +1,113 @@ # Spectacle project project(Spectacle) # KDE Application Version, managed by release script set(KDE_APPLICATIONS_VERSION_MAJOR "16") set(KDE_APPLICATIONS_VERSION_MINOR "03") set(KDE_APPLICATIONS_VERSION_MICRO "90") set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}") set(SPECTACLE_VERSION ${KDE_APPLICATIONS_VERSION}) # minimum requirements cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) set(QT_MIN_VERSION "5.4.0") set(KF5_MIN_VERSION "5.18.0") set(PLASMA_MIN_VERSION "5.4.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ) # set up kf5 include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMInstallIcons) include(ECMSetupVersion) include(FeatureSummary) find_package( Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Widgets DBus PrintSupport Quick ) find_package( KF5 ${KF5_MIN_VERSION} REQUIRED CoreAddons WidgetsAddons DBusAddons Notifications Config I18n KIO XmlGui WindowSystem DocTools Declarative ) # optional components find_package(KF5Kipi) if (KF5Kipi_FOUND) set(KIPI_FOUND 1) endif () find_package(KDEExperimentalPurpose) if (KDEExperimentalPurpose_FOUND) set(PURPOSE_FOUND 1) endif() find_package(XCB COMPONENTS XFIXES IMAGE UTIL CURSOR) +set(XCB_COMPONENTS_ERRORS FALSE) if (XCB_FOUND) - find_package(Qt5X11Extras ${QT_MIN_VERSION} REQUIRED) - find_package(KF5Screen ${PLASMA_MIN_VERSION} REQUIRED) + find_package(Qt5X11Extras ${QT_MIN_VERSION} REQUIRED) + find_package(KF5Screen ${PLASMA_MIN_VERSION} REQUIRED) +endif() +set(XCB_COMPONENTS_FOUND TRUE) +if(NOT XCB_XFIXES_FOUND) + set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-XFIXES ") + set(XCB_COMPONENTS_FOUND FALSE) +endif() +if(NOT XCB_IMAGE_FOUND) + set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-IMAGE ") + set(XCB_COMPONENTS_FOUND FALSE) +endif() +if(NOT XCB_UTIL_FOUND) + set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-UTIL ") + set(XCB_COMPONENTS_FOUND FALSE) +endif() +if(NOT XCB_CURSOR_FOUND) + set(XCB_COMPONENTS_ERRORS "${XCB_COMPONENTS_ERRORS} XCB-CURSOR ") + set(XCB_COMPONENTS_FOUND FALSE) endif() # fail build if none of the platform backends can be found - -if (!XCB_FOUND) - message(FATAL_ERROR "No suitable backend platform was found. Currenty supported platforms are: XCB") +if (NOT XCB_FOUND OR NOT XCB_COMPONENTS_FOUND) + message(FATAL_ERROR "No suitable backend platform was found. Currenty supported platforms are: XCB Components Required: ${XCB_COMPONENTS_ERRORS}") endif() # hand off to subdirectories add_subdirectory(src) add_subdirectory(dbus) add_subdirectory(desktop) add_subdirectory(icons) add_subdirectory(doc) # summaries feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)