@ -1,3 +1,133 @@
project ( KWIN )
cmake_minimum_required ( VERSION 2.8.12 FATAL_ERROR )
set ( QT_MIN_VERSION "5.2.0" )
# w h e r e t o l o o k f i r s t f o r c m a k e m o d u l e s , b e f o r e $ { C M A K E _ R O O T } / M o d u l e s / i s c h e c k e d
# T O D O : t h i s i n c l u d e s t h e c m a k e m o d u l e s f r o m k d e - w o r k s p a c e . N e e d t o m o v e t h o s e t o K W i n
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 )
# w h e r e t o l o o k f i r s t f o r c m a k e m o d u l e s , b e f o r e $ { C M A K E _ R O O T } / M o d u l e s / i s c h e c k e d
set ( CMAKE_MODULE_PATH ${ CMAKE_MODULE_PATH } ${ ECM_MODULE_PATH } ${ ECM_KDE_MODULE_DIR } )
include ( KDEInstallDirs )
include ( KDECMakeSettings )
include ( KDECompilerSettings )
include ( ECMInstallIcons )
find_package ( Qt5 ${ QT_MIN_VERSION } CONFIG REQUIRED COMPONENTS
C o n c u r r e n t
C o r e
D B u s
Q u i c k
S c r i p t
T e s t
U i T o o l s
W i d g e t s
X 1 1 E x t r a s
)
add_definitions ( -DQT_DISABLE_DEPRECATED_BEFORE=0 )
# r e q u i r e d f r a m e w o r k s b y C o r e
find_package ( KF5 CONFIG REQUIRED COMPONENTS
C o n f i g
C o n f i g W i d g e t s
C o r e A d d o n s
C r a s h
G l o b a l A c c e l
I 1 8 n
N o t i f i c a t i o n s
S e r v i c e
P l a s m a
W i d g e t s A d d o n s
W i n d o w S y s t e m
)
# r e q u i r e d f r a m e w o r k s b y c o n f i g m o d u l e s
find_package ( KF5 CONFIG REQUIRED COMPONENTS
C o m p l e t i o n
K C M U t i l s
K I O
N e w S t u f f
X m l G u i
)
# o p t i o n a l f r a m e w o r k s
find_package ( KF5 CONFIG COMPONENTS Activities )
# T O D O : r e m o v e o n c e t h e b u i l d s y s t e m i s c o m p l e t e l y c l e a n e d
find_package ( KF5KDE4Support REQUIRED NO_MODULE )
if ( ${ Qt5Gui_OPENGL_IMPLEMENTATION } STREQUAL "GL" )
find_package ( OpenGL )
set_package_properties ( OpenGL PROPERTIES DESCRIPTION "The OpenGL libraries"
U R L " h t t p : / / w w w . o p e n g l . o r g "
T Y P E R E Q U I R E D
)
else ( )
find_package ( OpenGLES )
set_package_properties ( OpenGLES PROPERTIES DESCRIPTION "The OpenGLES libraries"
U R L " h t t p : / / w w w . k h r o n o s . o r g / o p e n g l e s "
T Y P E R E Q U I R E D
)
endif ( )
find_package ( EGL )
set_package_properties ( EGL PROPERTIES
T Y P E R E Q U I R E D
P U R P O S E " R e q u i r e d t o b u i l d K W i n w i t h E G L s u p p o r t "
)
find_package ( Wayland 1.2 COMPONENTS Client Egl Cursor )
set_package_properties ( Wayland PROPERTIES
T Y P E O P T I O N A L
P U R P O S E " R e q u i r e d f o r b u i l d i n g K W i n w i t h W a y l a n d s u p p o r t "
)
add_feature_info ( "Wayland-Client" Wayland_Client_FOUND "Required for building the Wayland backend in KWin" )
add_feature_info ( "Wayland-EGL" Wayland_Egl_FOUND "Required for building the Wayland EGL compositing backend in KWin" )
find_package ( XKB )
set_package_properties ( XKB PROPERTIES
T Y P E O P T I O N A L
P U R P O S E " R e q u i r e d f o r b u i l d i n g K W i n w i t h W a y l a n d s u p p o r t "
)
find_package ( X11 )
set_package_properties ( X11 PROPERTIES DESCRIPTION "X11 libraries"
U R L " h t t p : / / w w w . x . o r g "
T Y P E R E Q U I R E D
)
set ( HAVE_X11 ${ X11_FOUND } )
# A l l t h e r e q u i r e d X C B c o m p o n e n t s
find_package ( XCB REQUIRED COMPONENTS
X C B
X F I X E S
D A M A G E
C O M P O S I T E
S H A P E
S Y N C
R E N D E R
R A N D R
K E Y S Y M S
I M A G E
S H M
X T E S T
)
set_package_properties ( XCB PROPERTIES TYPE REQUIRED )
# a n d t h e o p t i o n a l X C B d e p e n d e n c i e s
find_package ( XCB COMPONENTS ICCCM )
add_feature_info ( "XCB-ICCCM" XCB_ICCCM_FOUND "Required for building test applications for KWin" )
feature_summary ( WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES )
# # # # # # # # # # # c o n f i g u r e t e s t s # # # # # # # # # # # # # # #
include ( CMakeDependentOption )
@ -19,6 +149,10 @@ set(KWIN_VERSION_PATCH 1)
set ( KWIN_VERSION ${ KWIN_VERSION_MAJOR } . ${ KWIN_VERSION_MINOR } . ${ KWIN_VERSION_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}.${KWIN_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 )