~ubuntu-branches/ubuntu/utopic/kde-workspace/utopic-proposed

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# the factory macros cause errors
kde4_no_enable_final(kwineffects)

# Uncomment to have the test effects built as well
#add_subdirectory( _test )

# Adds effect plugin with given name. Sources are given after the name
macro( KWIN4_ADD_EFFECT name )
    kde4_add_plugin( kwin4_effect_${name} ${ARGN} )
    target_link_libraries( kwin4_effect_${name} kwineffects ${KDE4_KDEUI_LIBS} kephal ${KDE4_PLASMA_LIBS} ${X11_Xfixes_LIB} ${X11_Xcursor_LIB})
    if (X11_Xfixes_FOUND)
        target_link_libraries(kwin4_effect_${name} ${X11_Xfixes_LIB})
    endif (X11_Xfixes_FOUND)
    install( TARGETS kwin4_effect_${name} DESTINATION ${PLUGIN_INSTALL_DIR} )
endmacro( KWIN4_ADD_EFFECT )

macro( KWIN4_ADD_EFFECT_CONFIG name )
    set( kwin4_effect_ui ) # Initially empty
    set( kwin4_effect_src ) # Initially empty

    foreach( file ${ARGN} )
        if( file MATCHES \\.ui )
            set( kwin4_effect_ui ${kwin4_effect_ui} ${file} )
        else( file MATCHES \\.ui )
            set( kwin4_effect_src ${kwin4_effect_src} ${file} )
        endif( file MATCHES \\.ui )
    endforeach( file )

    kde4_add_ui_files( kwin4_effect_src ${kwin4_effect_ui} )
    kde4_add_plugin( kcm_kwin4_effect_${name} ${kwin4_effect_src} )
    target_link_libraries( kcm_kwin4_effect_${name} kwineffects ${KDE4_KIO_LIBS} ${KDE4_KDEUI_LIBS} kephal )
    install( TARGETS kcm_kwin4_effect_${name} DESTINATION ${PLUGIN_INSTALL_DIR} )
endmacro( KWIN4_ADD_EFFECT_CONFIG )

macro( KWIN4_EFFECT_LINK_XRENDER name )
    if( KWIN_HAVE_XRENDER_COMPOSITING )
        target_link_libraries( kwin4_effect_${name} ${X11_Xrender_LIB} ${X11_LIBRARIES} kephal )
    endif( KWIN_HAVE_XRENDER_COMPOSITING )
endmacro( KWIN4_EFFECT_LINK_XRENDER )

# Make sure we can see our libraries
include_directories(
    ${KDEBASE_WORKSPACE_SOURCE_DIR}/kwin/lib
    )

# Install the KWin/Effect service type
install( FILES kwineffect.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )

# Create initial variables
set( kwin4_effect_builtins_sources )
if( NOT KWIN_MOBILE_EFFECTS )
    set( kwin4_effect_builtins_config_sources configs_builtins.cpp )
endif( NOT KWIN_MOBILE_EFFECTS )
set( kwin4_effect_include_directories )

###############################################################################
# Built-in effects go here

# Common effects
include( dialogparent/CMakeLists.txt )
include( fade/CMakeLists.txt )
include( login/CMakeLists.txt )
include( outline/CMakeLists.txt )
include( presentwindows/CMakeLists.txt )
include( slidingpopups/CMakeLists.txt )
include( taskbarthumbnail/CMakeLists.txt )

# Common effects only relevant to desktop
if( NOT KWIN_MOBILE_EFFECTS )
    include( boxswitch/CMakeLists.txt )
    include( dashboard/CMakeLists.txt )
    include( desktopgrid/CMakeLists.txt )
    include( diminactive/CMakeLists.txt )
    include( dimscreen/CMakeLists.txt )
    include( fadedesktop/CMakeLists.txt )
    include( fallapart/CMakeLists.txt )
    include( highlightwindow/CMakeLists.txt )
    include( magiclamp/CMakeLists.txt )
    include( translucency/CMakeLists.txt )
    include( minimizeanimation/CMakeLists.txt )
    include( resize/CMakeLists.txt )
    include( scalein/CMakeLists.txt )
    include( showfps/CMakeLists.txt )
    include( showpaint/CMakeLists.txt )
    include( slide/CMakeLists.txt )
    include( slideback/CMakeLists.txt )
    include( thumbnailaside/CMakeLists.txt )
    include( windowgeometry/CMakeLists.txt )
    include( zoom/CMakeLists.txt )

    if( NOT KWIN_HAVE_OPENGLES_COMPOSITING )
    include( logout/CMakeLists.txt )
    endif( NOT KWIN_HAVE_OPENGLES_COMPOSITING )
endif( NOT KWIN_MOBILE_EFFECTS )

# OpenGL-specific effects
if( KWIN_HAVE_OPENGL_COMPOSITING )
    include( blur/CMakeLists.txt )
    include( screenshot/CMakeLists.txt )
    # OpenGL-specific effects for desktop
    if( NOT KWIN_MOBILE_EFFECTS )
        include( coverswitch/CMakeLists.txt )
        include( cube/CMakeLists.txt )
        include( explosion/CMakeLists.txt )
        include( flipswitch/CMakeLists.txt )
        include( glide/CMakeLists.txt )
        include( invert/CMakeLists.txt )
        include( lookingglass/CMakeLists.txt )
        include( magnifier/CMakeLists.txt )
        include( mousemark/CMakeLists.txt )
        include( sheet/CMakeLists.txt )
        include( snaphelper/CMakeLists.txt )
        include( startupfeedback/CMakeLists.txt )
        include( trackmouse/CMakeLists.txt )
        include( wobblywindows/CMakeLists.txt )
    endif( NOT KWIN_MOBILE_EFFECTS )
endif( KWIN_HAVE_OPENGL_COMPOSITING )

###############################################################################

# Add the builtins plugin
KWIN4_ADD_EFFECT( builtins ${kwin4_effect_builtins_sources} )
if( NOT KWIN_MOBILE_EFFECTS )
    KWIN4_ADD_EFFECT_CONFIG( builtins ${kwin4_effect_builtins_config_sources} )
endif( NOT KWIN_MOBILE_EFFECTS )
KWIN4_EFFECT_LINK_XRENDER( builtins )

# Install global data files
install( FILES
    _data/circle-edgy.png
    _data/circle.png
    DESTINATION ${DATA_INSTALL_DIR}/kwin )