~vanvugt/compiz/fix-1097657

« back to all changes in this revision

Viewing changes to cmake/macros.cmake

  • Committer: Dennis kasprzyk
  • Author(s): Dennis Kasprzyk
  • Date: 2008-10-06 17:11:30 UTC
  • Revision ID: git-v1:f235e2a766f344f426c6054b7e69a42b41c79e3b
Initial version of CMake build system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
macro (check_pkg_module _module _var)
 
3
    if (NOT ${_var})
 
4
        pkg_check_modules (_${_var} ${_module})
 
5
        if (_${_var}_FOUND)
 
6
            set (${_var} 1 CACHE INTERNAL "" FORCE)
 
7
        endif (_${_var}_FOUND)
 
8
        set(__pkg_config_checked__${_var} 0 CACHE INTERNAL "" FORCE)
 
9
    endif (NOT ${_var})
 
10
endmacro (check_pkg_module _module)
 
11
 
 
12
macro (translate_xml _src _dst)
 
13
    find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
 
14
    mark_as_advanced (FORCE INTLTOOL_MERGE_EXECUTABLE)
 
15
 
 
16
    if (INTLTOOL_MERGE_EXECUTABLE)
 
17
        add_custom_command (
 
18
            OUTPUT ${_dst}
 
19
            COMMAND ${INTLTOOL_MERGE_EXECUTABLE} -x -u -c
 
20
                    ${CMAKE_BINARY_DIR}/.intltool-merge-cache
 
21
                    ${CMAKE_SOURCE_DIR}/po
 
22
                    ${_src}
 
23
                    ${_dst}
 
24
            DEPENDS ${_src}
 
25
        )
 
26
    else (INTLTOOL_MERGE_EXECUTABLE)
 
27
        add_custom_command (
 
28
            OUTPUT ${_dst}
 
29
            COMMAND cat ${_src} |
 
30
                    sed -e 's;<_;<;g' -e 's;</_;</;g' > 
 
31
                    ${_dst}
 
32
            DEPENDS ${_src}
 
33
        )
 
34
    endif (INTLTOOL_MERGE_EXECUTABLE)
 
35
endmacro (translate_xml)
 
36
 
 
37
macro (translate_desktop_file _src _dst)
 
38
    find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
 
39
    mark_as_advanced (FORCE INTLTOOL_MERGE_EXECUTABLE)
 
40
 
 
41
    if (INTLTOOL_MERGE_EXECUTABLE)
 
42
        add_custom_command (
 
43
            OUTPUT ${_dst}
 
44
            COMMAND ${INTLTOOL_MERGE_EXECUTABLE} -d -u -c
 
45
                    ${CMAKE_BINARY_DIR}/.intltool-merge-cache
 
46
                    ${CMAKE_SOURCE_DIR}/po
 
47
                    ${_src}
 
48
                    ${_dst}
 
49
            DEPENDS ${_src}
 
50
        )
 
51
    else (INTLTOOL_MERGE_EXECUTABLE)
 
52
        add_custom_command (
 
53
            OUTPUT ${_dst}
 
54
            COMMAND cat ${_src} |
 
55
                    sed -e 's;^_;;g' >
 
56
                    ${_dst}
 
57
            DEPENDS ${_src}
 
58
        )
 
59
    endif (INTLTOOL_MERGE_EXECUTABLE)
 
60
endmacro (translate_desktop_file)
 
61
 
 
62
macro (generate_gconf_schema _src _dst)
 
63
    find_program (XSLTPROC_EXECUTABLE xsltproc)
 
64
    mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
 
65
 
 
66
    if (XSLTPROC_EXECUTABLE)
 
67
        add_custom_command (
 
68
            OUTPUT ${_dst}
 
69
            COMMAND ${XSLTPROC_EXECUTABLE}
 
70
                    --param defaultPlugins \"'$(default_plugins)'\"
 
71
                    ${compiz_SOURCE_DIR}/metadata/schemas.xslt
 
72
                    ${_src} >
 
73
                    ${_dst}
 
74
            DEPENDS ${_src}
 
75
        )
 
76
    endif (XSLTPROC_EXECUTABLE)
 
77
endmacro (generate_gconf_schema)
 
78
 
 
79
macro (install_gconf_schema _file)
 
80
 
 
81
    find_program (GCONFTOOL_EXECUTABLE gconftool-2)
 
82
    mark_as_advanced (FORCE GCONFTOOL_EXECUTABLE)
 
83
 
 
84
    if (GCONFTOOL_EXECUTABLE AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
 
85
        install (CODE "
 
86
                if (\"\$ENV{USER}\" STREQUAL \"root\")
 
87
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
88
                        ARGS \"--get-default-source\"
 
89
                        OUTPUT_VARIABLE ENV{GCONF_CONFIG_SOURCE})
 
90
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
91
                        ARGS \"--makefile-install-rule ${_file} > /dev/null\")
 
92
                else (\"\$ENV{USER}\" STREQUAL \"root\")
 
93
                    exec_program (${GCONFTOOL_EXECUTABLE}
 
94
                        ARGS \"--install-schema-file=${_file} > /dev/null\")
 
95
                endif (\"\$ENV{USER}\" STREQUAL \"root\")
 
96
                ")
 
97
    endif (GCONFTOOL_EXECUTABLE AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
 
98
 
 
99
    if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
100
        set (SCHEMADIR "${CMAKE_INSTALL_PREFIX}/share/gconf/schemas")
 
101
    else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
102
        set (SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
 
103
    endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
 
104
 
 
105
    install (
 
106
        FILES ${_file}
 
107
        DESTINATION "${SCHEMADIR}"
 
108
    )
 
109
endmacro (install_gconf_schema)