2008-01-03 15:22:19 +00:00
########### configure tests ###############
# KWIN_HAVE_COMPOSITING - whether any compositing support is available
if ( X11_Xcomposite_FOUND AND X11_Xdamage_FOUND )
set ( KWIN_HAVE_COMPOSITING 1 )
endif ( X11_Xcomposite_FOUND AND X11_Xdamage_FOUND )
# KWIN_HAVE_OPENGL_COMPOSITING - whether OpenGL-based compositing support is available
if ( KWIN_HAVE_COMPOSITING AND OPENGL_FOUND )
set ( KWIN_HAVE_OPENGL_COMPOSITING 1 )
endif ( KWIN_HAVE_COMPOSITING AND OPENGL_FOUND )
# KWIN_HAVE_XRENDER_COMPOSITING - whether XRender-based compositing support is available
if ( KWIN_HAVE_COMPOSITING AND X11_Xrender_FOUND AND X11_Xfixes_FOUND )
set ( KWIN_HAVE_XRENDER_COMPOSITING 1 )
endif ( KWIN_HAVE_COMPOSITING AND X11_Xrender_FOUND AND X11_Xfixes_FOUND )
2010-09-14 19:40:51 +00:00
# KWIN_HAVE_OPENGLES_COMPOSITING - whether OpenGL ES-based compositing support is available
2010-12-04 15:22:06 +00:00
if ( KWIN_HAVE_COMPOSITING AND OPENGLES_FOUND AND KWIN_BUILD_WITH_OPENGLES )
2010-09-14 19:40:51 +00:00
set ( KWIN_HAVE_OPENGL_COMPOSITING 1 )
set ( KWIN_HAVE_OPENGLES_COMPOSITING 1 )
2010-12-04 15:22:06 +00:00
message ( "Compiling KWin for mobile." )
endif ( KWIN_HAVE_COMPOSITING AND OPENGLES_FOUND AND KWIN_BUILD_WITH_OPENGLES )
2010-09-14 19:40:51 +00:00
2008-01-03 15:22:19 +00:00
# safety
if ( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
# ok
else ( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
set ( KWIN_HAVE_COMPOSITING ) # unset
endif ( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
2008-06-17 00:43:34 +00:00
macro_log_feature ( KWIN_HAVE_COMPOSITING "Compositing support" "X11 Compositing support" "http://www.x.org/" FALSE "" "XComposite and XDamage extensions and OpenGL or XRender with XFixes are required for KWin compositing support" )
2008-01-03 15:32:37 +00:00
2008-01-03 15:22:19 +00:00
macro_bool_to_01 ( OPENGL_FOUND KWIN_HAVE_OPENGL )
2010-12-04 15:04:37 +00:00
macro_bool_to_01 ( KWIN_HAVE_OPENGLES_COMPOSITING KWIN_HAVE_OPENGLES )
2008-01-03 15:22:19 +00:00
2010-03-05 18:30:04 +00:00
if ( OPENGL_FOUND )
include_directories ( ${ OPENGL_INCLUDE_DIR } )
endif ( OPENGL_FOUND )
2010-12-04 15:04:37 +00:00
if ( OPENGLES_FOUND AND KWIN_HAVE_OPENGLES_COMPOSITING )
2010-09-14 19:40:51 +00:00
include_directories ( ${ OPENGLES_INCLUDE_DIR } )
2010-12-04 15:04:37 +00:00
endif ( OPENGLES_FOUND AND KWIN_HAVE_OPENGLES_COMPOSITING )
2010-09-14 19:40:51 +00:00
2008-01-03 15:22:19 +00:00
# for things that are also used by kwin libraries
2011-02-19 08:58:44 +00:00
configure_file ( libkwineffects/kwinconfig.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /libkwineffects/kwinconfig.h )
2008-01-03 15:22:19 +00:00
# for kwin internal things
configure_file ( config-kwin.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /config-kwin.h )
########### global ###############
2007-04-29 17:35:43 +00:00
include_directories (
2011-02-19 08:58:44 +00:00
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / l i b k w i n e f f e c t s
2007-06-22 16:32:06 +00:00
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R }
2011-02-19 08:58:44 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / l i b k w i n e f f e c t s
2011-02-19 08:34:20 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / l i b k d e c o r a t i o n s
2007-04-29 17:35:43 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / e f f e c t s
2009-09-13 11:36:45 +00:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t a b b o x
2008-11-15 15:31:07 +00:00
$ { K D E B A S E _ W O R K S P A C E _ S O U R C E _ D I R } / l i b s / k e p h a l
2010-05-11 20:30:20 +00:00
$ { K D E B A S E _ W O R K S P A C E _ S O U R C E _ D I R } / l i b s / k w o r k s p a c e
2007-04-29 17:35:43 +00:00
)
2011-02-19 08:34:20 +00:00
add_subdirectory ( libkdecorations )
2011-02-19 08:58:44 +00:00
add_subdirectory ( libkwineffects )
2007-06-22 16:32:06 +00:00
add_subdirectory ( killer )
2010-05-13 17:59:34 +00:00
add_subdirectory ( kcmkwin )
2007-06-22 16:32:06 +00:00
add_subdirectory ( clients )
add_subdirectory ( data )
2010-12-04 11:32:50 +00:00
if ( KWIN_HAVE_COMPOSITING )
2008-06-06 11:07:15 +00:00
add_subdirectory ( effects )
2010-12-04 11:32:50 +00:00
endif ( KWIN_HAVE_COMPOSITING )
2008-06-06 11:07:15 +00:00
2007-04-29 17:35:43 +00:00
########### next target ###############
set ( kwin_KDEINIT_SRCS
w o r k s p a c e . c p p
c l i e n t . c p p
2009-11-15 03:24:04 +00:00
c l i e n t g r o u p . c p p
2007-04-29 17:35:43 +00:00
p l a c e m e n t . c p p
a t o m s . c p p
u t i l s . c p p
l a y e r s . c p p
m a i n . c p p
2009-09-13 11:36:45 +00:00
t a b b o x . c p p
t a b b o x / c l i e n t i t e m d e l e g a t e . c p p
t a b b o x / c l i e n t m o d e l . c p p
t a b b o x / d e s k t o p i t e m d e l e g a t e . c p p
t a b b o x / d e s k t o p m o d e l . c p p
t a b b o x / i t e m l a y o u t c o n f i g . c p p
t a b b o x / t a b b o x c o n f i g . c p p
t a b b o x / t a b b o x h a n d l e r . c p p
t a b b o x / t a b b o x v i e w . c p p
2009-04-06 16:09:34 +00:00
d e s k t o p c h a n g e o s d . c p p
2007-04-29 17:35:43 +00:00
o p t i o n s . c p p
2011-04-28 09:16:27 +00:00
o u t l i n e . c p p
2007-04-29 17:35:43 +00:00
p l u g i n s . c p p
e v e n t s . c p p
k i l l w i n d o w . c p p
g e o m e t r y t i p . c p p
2011-03-27 10:33:07 +00:00
s h a d o w . c p p
2007-04-29 17:35:43 +00:00
s m . c p p
g r o u p . c p p
b r i d g e . c p p
m a n a g e . c p p
n o t i f i c a t i o n s . c p p
a c t i v a t i o n . c p p
u s e r a c t i o n s . c p p
g e o m e t r y . c p p
r u l e s . c p p
c o m p o s i t e . c p p
t o p l e v e l . c p p
u n m a n a g e d . c p p
s c e n e . c p p
s c e n e _ b a s i c . c p p
s c e n e _ x r e n d e r . c p p
s c e n e _ o p e n g l . c p p
2010-06-02 20:04:54 +00:00
l a n c z o s f i l t e r . c p p
2007-04-29 17:35:43 +00:00
d e l e t e d . c p p
e f f e c t s . c p p
2007-09-18 13:59:06 +00:00
c o m p o s i t i n g p r e f s . c p p
2009-02-14 09:46:12 +00:00
d e s k t o p l a y o u t . c p p
2009-04-22 17:29:56 +00:00
p a i n t r e d i r e c t o r . c p p
2010-04-25 16:43:14 +00:00
t i l e . c p p
t i l i n g . c p p
t i l i n g l a y o u t . c p p
t i l i n g l a y o u t f a c t o r y . c p p
2010-09-21 14:31:40 +00:00
#load the scripting related functions
s c r i p t i n g / s c r i p t i n g . c p p
s c r i p t i n g / w o r k s p a c e . c p p
s c r i p t i n g / c l i e n t . c p p
s c r i p t i n g / m e t a . c p p
s c r i p t i n g / t o p l e v e l . c p p
s c r i p t i n g / w i n d o w i n f o . c p p
s c r i p t i n g / s _ c l i e n t g r o u p . c p p
s c r i p t i n g / w o r k s p a c e p r o x y . c p p
s c r i p t i n g / c h e l a t e . c p p
s c r i p t i n g / t i m e r . c p p
2010-04-25 16:43:14 +00:00
# tiling layouts
# spiral
#tilinglayouts/spiral/spiralfactory.cpp
t i l i n g l a y o u t s / s p i r a l / s p i r a l . c p p
# columns
#tilinglayouts/columns/columnsfactory.cpp
t i l i n g l a y o u t s / c o l u m n s / c o l u m n s . c p p
# floating
t i l i n g l a y o u t s / f l o a t i n g / f l o a t i n g . c p p
2007-04-29 17:35:43 +00:00
)
qt4_add_dbus_adaptor ( kwin_KDEINIT_SRCS org.kde.KWin.xml workspace.h KWin::Workspace )
2010-06-11 14:26:41 +00:00
qt4_add_dbus_interface ( kwin_KDEINIT_SRCS
$ { K D E B A S E _ W O R K S P A C E _ S O U R C E _ D I R } / k s m s e r v e r / o r g . k d e . K S M S e r v e r I n t e r f a c e . x m l k s m s e r v e r _ i n t e r f a c e )
2010-06-02 20:04:54 +00:00
qt4_add_resources ( kwin_KDEINIT_SRCS resources.qrc )
2007-04-29 17:35:43 +00:00
kde4_add_kdeinit_executable ( kwin ${ kwin_KDEINIT_SRCS } )
2010-05-31 21:24:40 +00:00
target_link_libraries ( kdeinit_kwin ${ KDE4_KDEUI_LIBS } ${ KDE4_PLASMA_LIBS } ${ QT_QTXML_LIBRARY } ${ QT_QTSCRIPT_LIBRARY } kephal kworkspace kdecorations kwineffects ${ X11_LIBRARIES } )
2008-04-25 20:37:59 +00:00
2010-12-04 15:04:37 +00:00
if ( OPENGL_FOUND AND NOT KWIN_HAVE_OPENGLES_COMPOSITING )
2010-02-26 20:47:00 +00:00
add_subdirectory ( opengltest )
2007-04-29 17:35:43 +00:00
target_link_libraries ( kdeinit_kwin ${ OPENGL_gl_LIBRARY } )
# -ldl used by OpenGL code
2007-05-10 12:49:57 +00:00
find_library ( DL_LIBRARY dl )
if ( DL_LIBRARY )
target_link_libraries ( kdeinit_kwin ${ DL_LIBRARY } )
endif ( DL_LIBRARY )
2007-12-17 14:19:41 +00:00
# must be after opengl, to be initialized first by the linker
target_link_libraries ( kdeinit_kwin kwinnvidiahack )
2010-12-04 15:04:37 +00:00
endif ( OPENGL_FOUND AND NOT KWIN_HAVE_OPENGLES_COMPOSITING )
2010-11-28 15:06:46 +00:00
2010-12-04 15:04:37 +00:00
if ( KWIN_HAVE_OPENGLES_COMPOSITING )
2010-11-28 15:06:46 +00:00
target_link_libraries ( kdeinit_kwin ${ OPENGLES_LIBRARIES } ${ OPENGLES_EGL_LIBRARIES } )
2010-12-04 15:04:37 +00:00
endif ( KWIN_HAVE_OPENGLES_COMPOSITING )
2008-04-25 20:37:59 +00:00
2007-04-29 17:35:43 +00:00
if ( X11_Xrandr_FOUND )
target_link_libraries ( kdeinit_kwin ${ X11_Xrandr_LIB } )
endif ( X11_Xrandr_FOUND )
if ( X11_Xcomposite_FOUND )
target_link_libraries ( kdeinit_kwin ${ X11_Xcomposite_LIB } )
endif ( X11_Xcomposite_FOUND )
if ( X11_Xdamage_FOUND )
target_link_libraries ( kdeinit_kwin ${ X11_Xdamage_LIB } )
endif ( X11_Xdamage_FOUND )
if ( X11_Xrender_FOUND )
target_link_libraries ( kdeinit_kwin ${ X11_Xrender_LIB } )
endif ( X11_Xrender_FOUND )
if ( X11_Xfixes_FOUND )
target_link_libraries ( kdeinit_kwin ${ X11_Xfixes_LIB } )
endif ( X11_Xfixes_FOUND )
2008-04-01 16:42:27 +00:00
install ( TARGETS kdeinit_kwin ${ INSTALL_TARGETS_DEFAULT_ARGS } )
2008-04-11 06:52:03 +00:00
install ( TARGETS kwin ${ INSTALL_TARGETS_DEFAULT_ARGS } )
2007-04-29 17:35:43 +00:00
2007-12-17 14:19:41 +00:00
########### next target ###############
set ( kwinnvidiahack_LIB_SRCS
n v i d i a h a c k . c p p )
kde4_add_library ( kwinnvidiahack SHARED ${ kwinnvidiahack_LIB_SRCS } )
set_target_properties ( kwinnvidiahack PROPERTIES VERSION ${ GENERIC_LIB_VERSION } SOVERSION ${ GENERIC_LIB_SOVERSION } )
2010-10-01 12:36:28 +00:00
install ( TARGETS kwinnvidiahack ${ INSTALL_TARGETS_DEFAULT_ARGS } LIBRARY NAMELINK_SKIP )
2007-12-17 14:19:41 +00:00
2007-04-29 17:35:43 +00:00
########### install files ###############
install ( FILES kwin.kcfg DESTINATION ${ KCFG_INSTALL_DIR } )
install ( FILES kwin.notifyrc DESTINATION ${ DATA_INSTALL_DIR } /kwin )
2007-07-23 07:01:14 +00:00
install ( FILES org.kde.KWin.xml DESTINATION ${ DBUS_INTERFACES_INSTALL_DIR } )
2009-09-13 11:36:45 +00:00
install ( FILES tabbox/DefaultTabBoxLayouts.xml DESTINATION ${ DATA_INSTALL_DIR } /kwin )
2007-04-29 17:35:43 +00:00
kde4_install_icons ( ${ ICON_INSTALL_DIR } )