From kde-commits Tue Mar 18 16:46:02 2014 From: =?utf-8?q?Martin_Gr=C3=A4=C3=9Flin?= Date: Tue, 18 Mar 2014 16:46:02 +0000 To: kde-commits Subject: [kde-workspace] kwin: [kwin] Adjust CMakeLists.txt to allow standalone built of KWin Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=139516117528058 Git commit f659237853d6ea16190c6620158c06a7117cc66c by Martin Gr=C3=A4=C3= =9Flin. Committed on 18/03/2014 at 13:39. Pushed by graesslin into branch 'master'. [kwin] Adjust CMakeLists.txt to allow standalone built of KWin Preparation step before splitting: * adds project(KWIN) * lists all KWin dependencies KWin can be built standalone if cmake is run with: -DKWIN_BUILD_OXYGEN=3DOFF -DKWIN_BUILD_KAPPMENU=3DOFF Oxygen because it needs liboxygen - for standalone clients/oxygen needs to be moved out of KWin. KAppmenu because it includes the DBus xml file. REVIEW: 116872 M +135 -0 kwin/CMakeLists.txt http://commits.kde.org/kde-workspace/f659237853d6ea16190c6620158c06a7117cc6= 6c diff --git a/kwin/CMakeLists.txt b/kwin/CMakeLists.txt index 894d066..0ae286a 100644 --- a/kwin/CMakeLists.txt +++ b/kwin/CMakeLists.txt @@ -1,3 +1,133 @@ +project(KWIN) + +cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) +set(QT_MIN_VERSION "5.2.0") + +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is = checked +# TODO: this includes the cmake modules from kde-workspace. Need to move t= hose to KWin +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules ${CMAKE= _MODULE_PATH} ) + +find_package(ECM 0.0.11 REQUIRED NO_MODULE) + +include(FeatureSummary) +include(WriteBasicConfigVersionFile) + +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is = checked +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MO= DULE_DIR}) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDECompilerSettings) + +include(ECMInstallIcons) + +find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS + Concurrent + Core + DBus + Quick + Script + Test + UiTools + Widgets + X11Extras +) +add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=3D0) + + +# required frameworks by Core +find_package(KF5 CONFIG REQUIRED COMPONENTS + Config + ConfigWidgets + CoreAddons + Crash + GlobalAccel + I18n + Notifications + Service + Plasma + WidgetsAddons + WindowSystem +) +# required frameworks by config modules +find_package(KF5 CONFIG REQUIRED COMPONENTS + Completion + KCMUtils + KIO + NewStuff + XmlGui +) + +# optional frameworks +find_package(KF5 CONFIG COMPONENTS Activities) + +# TODO: remove once the build system is completely cleaned +find_package(KF5KDE4Support REQUIRED NO_MODULE) + +if(${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GL") + find_package(OpenGL) + set_package_properties(OpenGL PROPERTIES DESCRIPTION "The OpenGL libra= ries" + URL "http://www.opengl.org" + TYPE REQUIRED + ) +else() + find_package(OpenGLES) + set_package_properties(OpenGLES PROPERTIES DESCRIPTION "The OpenGLES l= ibraries" + URL "http://www.khronos.org/opengles" + TYPE REQUIRED + ) +endif() + +find_package(EGL) +set_package_properties(EGL PROPERTIES + TYPE REQUIRED + PURPOSE "Required to build KWin with EGL support" + ) + +find_package(Wayland 1.2 COMPONENTS Client Egl Cursor) +set_package_properties(Wayland PROPERTIES + TYPE OPTIONAL + PURPOSE "Required for building KWin with Wayland su= pport" + ) +add_feature_info("Wayland-Client" Wayland_Client_FOUND "Required for build= ing the Wayland backend in KWin") +add_feature_info("Wayland-EGL" Wayland_Egl_FOUND "Required for building th= e Wayland EGL compositing backend in KWin") + +find_package(XKB) +set_package_properties(XKB PROPERTIES + TYPE OPTIONAL + PURPOSE "Required for building KWin with Wayland su= pport" + ) + +find_package(X11) +set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" + URL "http://www.x.org" + TYPE REQUIRED + ) +set(HAVE_X11 ${X11_FOUND}) + +# All the required XCB components +find_package(XCB REQUIRED COMPONENTS + XCB + XFIXES + DAMAGE + COMPOSITE + SHAPE + SYNC + RENDER + RANDR + KEYSYMS + IMAGE + SHM + XTEST +) +set_package_properties(XCB PROPERTIES TYPE REQUIRED) + +# and the optional XCB dependencies +find_package(XCB COMPONENTS ICCCM) +add_feature_info("XCB-ICCCM" XCB_ICCCM_FOUND "Required for building test a= pplications for KWin") + +feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_= PACKAGES) + ########### configure tests ############### include(CMakeDependentOption) = @@ -19,6 +149,10 @@ set(KWIN_VERSION_PATCH 1) set(KWIN_VERSION ${KWIN_VERSION_MAJOR}.${KWIN_VERSION_MINOR}.${KWIN_VERSIO= N_PATCH} ) set(KWIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) = +set(GENERIC_LIB_SOVERSION ${KWIN_VERSION_MAJOR}) + +set(GENERIC_LIB_VERSION "${KWIN_VERSION_MAJOR}.${KWIN_VERSION_MINOR}.${KWI= N_VERSION_PATCH}") + if(KWIN_PLASMA_ACTIVE) set(KWIN_BUILD_DECORATIONS OFF) set(KWIN_BUILD_KCMS OFF) @@ -71,6 +205,7 @@ else() set(HAVE_XKB FALSE) endif() = +include(CheckIncludeFiles) check_include_files(unistd.h HAVE_UNISTD_H) check_include_files(malloc.h HAVE_MALLOC_H) configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin= .h )