~dbarth/compiz/reworked-fix-744104

« back to all changes in this revision

Viewing changes to unity/unity_window_decorator/src/CMakeLists.txt

  • Committer: David Barth
  • Date: 2011-04-05 20:20:54 UTC
  • Revision ID: david.barth@canonical.com-20110405202054-fnh0y5t2s228mf4k
re-integrate the unity-window-decorator, for real this time

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function (compiz_install_gconf_schema _src _dst)
 
2
    pkg_check_modules (GCONF gconf-2.0)
 
3
    find_program (GCONFTOOL_EXECUTABLE gconftool-2)
 
4
    mark_as_advanced (FORCE GCONFTOOL_EXECUTABLE)
 
5
 
 
6
    if (GCONFTOOL_EXECUTABLE AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
 
7
        install (CODE "
 
8
                if (\"\$ENV{USER}\" STREQUAL \"root\")
 
9
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
10
                        ARGS \"--get-default-source\"
 
11
                        OUTPUT_VARIABLE ENV{GCONF_CONFIG_SOURCE})
 
12
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
13
                        ARGS \"--makefile-install-rule ${_src} > /dev/null\")
 
14
                else (\"\$ENV{USER}\" STREQUAL \"root\")
 
15
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
16
                        ARGS \"--install-schema-file=${_src} > /dev/null\")
 
17
                endif (\"\$ENV{USER}\" STREQUAL \"root\")
 
18
                ")
 
19
    endif ()
 
20
    install (
 
21
        FILES "${_src}"
 
22
        DESTINATION "${COMPIZ_DESTDIR}${_dst}"
 
23
    )
 
24
endfunction ()
 
25
 
 
26
set (USE_GCONF_UNITY_WINDOW_DECORATOR 1 CACHE BOOL "Install GConf schemas for Unity Window Decorator")
 
27
 
 
28
if (BUILD_UNITY)
 
29
 
 
30
    pkg_check_modules (UNITY_WINDOW_DECORATOR
 
31
        gconf-2.0
 
32
        xrender>=0.8.4
 
33
        gtk+-2.0>=2.18.0
 
34
        libwnck-1.0
 
35
        pangocairo
 
36
    )
 
37
    if (UNITY_WINDOW_DECORATOR_FOUND)
 
38
        include (CheckFunctionExists)
 
39
        set (CMAKE_REQUIRED_FLAGS ${UNITY_WINDOW_DECORATOR_CFLAGS})
 
40
        set (CMAKE_REQUIRED_LIBRARIES ${UNITY_WINDOW_DECORATOR_LIBRARIES})
 
41
        list (FIND CMAKE_REQUIRED_FLAGS "-D_REENTRANT" REENTRANT_INDEX)
 
42
        if (REENTRANT_INDEX)
 
43
          list (REMOVE_AT CMAKE_REQUIRED_FLAGS REENTRANT_INDEX)
 
44
          list (APPEND CMAKE_REQUIRED_FLAGS "-D_REENTRANT=1")
 
45
        endif (REENTRANT_INDEX)
 
46
        check_function_exists (wnck_window_has_name HAVE_WNCK_WINDOW_HAS_NAME)
 
47
        set (CMAKE_REQUIRED_FLAGS "")
 
48
        set (CMAKE_REQUIRED_LIBRARIES "")
 
49
 
 
50
        compiz_pkg_check_modules (HAVE_LIBWNCK_2_18_1 libwnck-1.0>=2.18.1)
 
51
        compiz_pkg_check_modules (HAVE_LIBWNCK_2_19_4 libwnck-1.0>=2.19.4)
 
52
 
 
53
        if (BUILD_METACITY)
 
54
            pkg_check_modules (METACITY libmetacity-private)
 
55
            if (METACITY_FOUND)
 
56
                compiz_pkg_check_modules (HAVE_METACITY_2_15_21 libmetacity-private>=2.15.21)
 
57
                compiz_pkg_check_modules (HAVE_METACITY_2_17_0 libmetacity-private>=2.17.0)
 
58
                compiz_pkg_check_modules (HAVE_METACITY_2_23_2 libmetacity-private>=2.23.2)
 
59
            else (METACITY_FOUND)
 
60
                compiz_set (USE_METACITY 0)
 
61
            endif (METACITY_FOUND)
 
62
        endif (BUILD_METACITY)
 
63
 
 
64
        if (COMPIZ_BUILD_WITH_RPATH)
 
65
            set (CMAKE_INSTALL_RPATH ${libdir})
 
66
        endif (COMPIZ_BUILD_WITH_RPATH)
 
67
 
 
68
        configure_file (
 
69
            ${CMAKE_CURRENT_SOURCE_DIR}/config.h.gtk.in
 
70
            ${CMAKE_CURRENT_BINARY_DIR}/config.h
 
71
        )
 
72
 
 
73
        include_directories (
 
74
        ${compiz_SOURCE_DIR}/include
 
75
            ${CMAKE_CURRENT_BINARY_DIR}
 
76
            ${UNITY_WINDOW_DECORATOR_INCLUDE_DIRS}
 
77
            ${METACITY_INCLUDE_DIRS}
 
78
            ${GCONF_INCLUDE_DIRS}
 
79
            ${DBUS_GLIB_INCLUDE_DIRS}
 
80
        )
 
81
 
 
82
        add_definitions (
 
83
            -DHAVE_CONFIG_H
 
84
            -DALL_LINGUAS=\"${ALL_LINGUAS}\"
 
85
            -DLOCALEDIR=\\\"${datadir}/locale\\\"
 
86
        )
 
87
 
 
88
        link_directories (
 
89
            ${UNITY_WINDOW_DECORATOR_LIBRARY_DIRS}
 
90
            ${COMPIZ_LINK_DIRS}
 
91
        )
 
92
 
 
93
        if (USE_GCONF_UNITY_WINDOW_DECORATOR)
 
94
 
 
95
            if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
96
                set (SCHEMADIR "${CMAKE_INSTALL_PREFIX}/share/gconf/schemas")
 
97
            else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
98
                set (SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
 
99
            endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
100
 
 
101
            set (gwd_schema ${CMAKE_CURRENT_BINARY_DIR}/gwd.schemas)
 
102
 
 
103
            compiz_translate_xml (
 
104
                ${CMAKE_CURRENT_SOURCE_DIR}/gwd.schemas.in
 
105
                ${gwd_schema}
 
106
            )
 
107
 
 
108
            compiz_install_gconf_schema (${CMAKE_CURRENT_BINARY_DIR}/gwd.schemas ${SCHEMADIR})
 
109
 
 
110
        endif (USE_GCONF_UNITY_WINDOW_DECORATOR)
 
111
 
 
112
        add_executable (unity-window-decorator
 
113
                        gtk-window-decorator.c
 
114
                        blurprops.c
 
115
                        decorprops.c
 
116
                        cairo.c
 
117
                        gdk.c
 
118
                        switcher.c
 
119
                        metacity.c
 
120
                        events.c
 
121
                        forcequit.c
 
122
                        actionmenu.c
 
123
                        settings.c
 
124
                        util.c
 
125
                        style.c
 
126
                        wnck.c
 
127
                        decorator.c
 
128
                        ${gwd_schema}
 
129
        )
 
130
 
 
131
        if (USE_METACITY)
 
132
            set (metacitylibs ${METACITY_LIBRARIES})
 
133
        endif (USE_METACITY)
 
134
 
 
135
        set_target_properties (
 
136
            unity-window-decorator PROPERTIES
 
137
            INSTALL_RPATH_USE_LINK_PATH 0
 
138
        )
 
139
 
 
140
        target_link_libraries (unity-window-decorator
 
141
                                decoration
 
142
                                ${UNITY_WINDOW_DECORATOR_LIBRARIES}
 
143
                                ${GCONF_LIBRARIES}
 
144
                                ${DBUS_GLIB_LIBRARIES}
 
145
                                ${metacitylibs}
 
146
        )
 
147
 
 
148
        install (
 
149
            TARGETS unity-window-decorator
 
150
            DESTINATION ${COMPIZ_DESTDIR}${exec_prefix}
 
151
            RUNTIME DESTINATION bin
 
152
        )
 
153
 
 
154
    else (UNITY_WINDOW_DECORATOR_FOUND)
 
155
        set (USE_UNITY 0)
 
156
    endif (UNITY_WINDOW_DECORATOR_FOUND)
 
157
 
 
158
endif (BUILD_UNITY)
 
159
 
 
160
 
 
161