Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / workspace / kwin / CMakeLists.txt
blob319c76ba11a3d992014d50f60965cf7484b31b72
1 ########### configure tests ###############
3 # KWIN_HAVE_COMPOSITING - whether any compositing support is available
4 if( X11_Xcomposite_FOUND AND X11_Xdamage_FOUND )
5     set( KWIN_HAVE_COMPOSITING 1 )
6 endif( X11_Xcomposite_FOUND AND X11_Xdamage_FOUND )
8 # KWIN_HAVE_OPENGL_COMPOSITING - whether OpenGL-based compositing support is available
9 if( KWIN_HAVE_COMPOSITING AND OPENGL_FOUND )
10     set( KWIN_HAVE_OPENGL_COMPOSITING 1 )
11 endif( KWIN_HAVE_COMPOSITING AND OPENGL_FOUND )
13 # KWIN_HAVE_XRENDER_COMPOSITING - whether XRender-based compositing support is available
14 if( KWIN_HAVE_COMPOSITING AND X11_Xrender_FOUND AND X11_Xfixes_FOUND )
15     set( KWIN_HAVE_XRENDER_COMPOSITING 1 )
16 endif( KWIN_HAVE_COMPOSITING AND X11_Xrender_FOUND AND X11_Xfixes_FOUND )
18 # safety
19 if( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
20     # ok
21 else( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
22     set( KWIN_HAVE_COMPOSITING ) # unset
23 endif( KWIN_HAVE_OPENGL_COMPOSITING OR KWIN_HAVE_XRENDER_COMPOSITING )
25 macro_log_feature(KWIN_HAVE_COMPOSITING "Compositing support" "XComposite and XDamage extensions and OpenGL or XRender with XFixes are required for KWin compositing support" "http://www.x.org/")
27 macro_bool_to_01( OPENGL_FOUND KWIN_HAVE_OPENGL )
29 # for things that are also used by kwin libraries
30 configure_file(lib/kwinconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/lib/kwinconfig.h )
31 # for kwin internal things
32 configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h )
35 ########### global ###############
37 include_directories(
38     ${CMAKE_CURRENT_BINARY_DIR}/lib
39     ${CMAKE_CURRENT_BINARY_DIR}
40     ${CMAKE_CURRENT_SOURCE_DIR}/lib
41     ${CMAKE_CURRENT_SOURCE_DIR}/effects
42     )
45 add_subdirectory( lib ) 
46 add_subdirectory( killer )
47 add_subdirectory( kcmkwin )
48 add_subdirectory( clients )
49 add_subdirectory( effects )
50 add_subdirectory( data )
52 ########### next target ###############
54 set(kwin_KDEINIT_SRCS
55    workspace.cpp 
56    client.cpp 
57    placement.cpp 
58    atoms.cpp 
59    utils.cpp 
60    layers.cpp 
61    main.cpp 
62    popupinfo.cpp 
63    tabbox.cpp 
64    options.cpp 
65    plugins.cpp 
66    events.cpp 
67    killwindow.cpp 
68    geometrytip.cpp 
69    sm.cpp 
70    group.cpp 
71    bridge.cpp 
72    manage.cpp 
73    notifications.cpp 
74    activation.cpp 
75    useractions.cpp 
76    geometry.cpp 
77    rules.cpp
78    composite.cpp
79    toplevel.cpp
80    unmanaged.cpp
81    scene.cpp
82    scene_basic.cpp
83    scene_xrender.cpp
84    scene_opengl.cpp
85    deleted.cpp
86    effects.cpp
87    compositingprefs.cpp
88    )
90 qt4_add_dbus_adaptor( kwin_KDEINIT_SRCS org.kde.KWin.xml workspace.h KWin::Workspace )
94 kde4_add_kdeinit_executable( kwin ${kwin_KDEINIT_SRCS})
96 target_link_libraries(kdeinit_kwin ${KDE4_KDEUI_LIBS} kdecorations kwineffects ${X11_LIBRARIES})
97 if(OPENGL_FOUND)
98   target_link_libraries(kdeinit_kwin ${OPENGL_gl_LIBRARY})
99   # -ldl used by OpenGL code
100   find_library(DL_LIBRARY dl)
101   if (DL_LIBRARY)
102     target_link_libraries(kdeinit_kwin ${DL_LIBRARY})
103   endif(DL_LIBRARY)
104   # must be after opengl, to be initialized first by the linker
105   target_link_libraries(kdeinit_kwin kwinnvidiahack)
106 endif(OPENGL_FOUND)
107 if (X11_Xrandr_FOUND)
108   target_link_libraries(kdeinit_kwin ${X11_Xrandr_LIB})
109 endif (X11_Xrandr_FOUND)
110 if (X11_Xcomposite_FOUND)
111   target_link_libraries(kdeinit_kwin ${X11_Xcomposite_LIB})
112 endif (X11_Xcomposite_FOUND)
113 if (X11_Xdamage_FOUND)
114   target_link_libraries(kdeinit_kwin ${X11_Xdamage_LIB})
115 endif (X11_Xdamage_FOUND)
116 if (X11_Xrender_FOUND)
117   target_link_libraries(kdeinit_kwin ${X11_Xrender_LIB})
118 endif (X11_Xrender_FOUND)
119 if (X11_Xfixes_FOUND)
120   target_link_libraries(kdeinit_kwin ${X11_Xfixes_LIB})
121 endif (X11_Xfixes_FOUND)
123 install(TARGETS kdeinit_kwin  DESTINATION ${LIB_INSTALL_DIR} )
125 target_link_libraries( kwin kdeinit_kwin )
126 install(TARGETS kwin DESTINATION ${BIN_INSTALL_DIR})
129 ########### next target ###############
131 set( kwinnvidiahack_LIB_SRCS 
132     nvidiahack.cpp )
135 kde4_add_library(kwinnvidiahack SHARED ${kwinnvidiahack_LIB_SRCS})
137 set_target_properties(kwinnvidiahack PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION}  )
138 install(TARGETS kwinnvidiahack  DESTINATION ${LIB_INSTALL_DIR} )
140 ########### install files ###############
142 install( FILES kwin.kcfg  DESTINATION  ${KCFG_INSTALL_DIR} )
143 install( FILES kwin.notifyrc  DESTINATION  ${DATA_INSTALL_DIR}/kwin )
144 install( FILES org.kde.KWin.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} )
146 kde4_install_icons( ${ICON_INSTALL_DIR} )