~midori/midori/trunk

« back to all changes in this revision

Viewing changes to cmake/GtkDoc.cmake

  • Committer: André Stösel
  • Date: 2013-09-28 14:13:22 UTC
  • mfrom: (6419 midori)
  • mto: This revision was merged to the branch mainline in revision 6427.
  • Revision ID: andre@stoesel.de-20130928141322-8g2nadq5gnm30gkh
merge lp:midori

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# GtkDoc.cmake
 
2
#
 
3
# Macros for building Midori API documentation.
 
4
# Copyright (C) 2013 Olivier Duchateau
 
5
 
 
6
find_program (GTKDOC_SCAN_BIN gtkdoc-scan)
 
7
find_program (GTKDOC_MKDB_BIN gtkdoc-mkdb)
 
8
find_program (GTKDOC_MKHTML_BIN gtkdoc-mkhtml)
 
9
find_program (GTKDOC_MKTMPL_BIN gtkdoc-mktmpl)
 
10
 
 
11
if (GTKDOC_SCAN_BIN AND GTKDOC_MKTMPL_BIN AND GTKDOC_MKDB_BIN
 
12
        AND GTKDOC_MKHTML_BIN)
 
13
 
 
14
    set (GTKDOC_FOUND TRUE)
 
15
 
 
16
    macro (gtkdoc_build module)
 
17
        message("gtkdoc: module ${module}")
 
18
        # file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}")
 
19
        add_custom_target ("gtkdoc-scan_${module}" ALL
 
20
            ${GTKDOC_SCAN_BIN} --module=${module}
 
21
                --source-dir="${CMAKE_SOURCE_DIR}/${module}"
 
22
                --output-dir="${CMAKE_CURRENT_BINARY_DIR}/${module}"
 
23
                --rebuild-sections --rebuild-types
 
24
                WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
 
25
 
 
26
        add_custom_target ("gtkdoc-tmpl_${module}" ALL
 
27
            ${GTKDOC_MKTMPL_BIN} --module=${module}
 
28
            --output-dir="${CMAKE_CURRENT_BINARY_DIR}"
 
29
            WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}"
 
30
            DEPENDS "gtkdoc-scan_${module}")
 
31
 
 
32
        add_custom_target ("gtkdoc-docbook_${module}" ALL
 
33
            ${GTKDOC_MKDB_BIN} --module=${module}
 
34
                --output-dir="xml"
 
35
                --source-dir="${CMAKE_SOURCE_DIR}/${module}"
 
36
                --source-suffixes=c,h --output-format=xml
 
37
                --default-includes=${module}/${module}.h
 
38
                --sgml-mode --main-sgml-file=${module}.sgml
 
39
            WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}"
 
40
            DEPENDS "gtkdoc-tmpl_${module}")
 
41
 
 
42
        # Keep this target alone, otherwise build fails
 
43
        add_custom_target ("gtkdoc-html_${module}" ALL
 
44
            ${GTKDOC_MKHTML_BIN} ${module}
 
45
            "${CMAKE_CURRENT_BINARY_DIR}/${module}/${module}.sgml"
 
46
            WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}/html"
 
47
            DEPENDS "gtkdoc-docbook_${module}")
 
48
 
 
49
    endmacro (gtkdoc_build module)
 
50
 
 
51
    macro (gtkdoc module)
 
52
        file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}/html")
 
53
        gtkdoc_build (${module})
 
54
 
 
55
        set (DOC_DIR "html/midori-${MIDORI_MAJOR_VERSION}-${MIDORI_MINOR_VERSION}")
 
56
        install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}/html/"
 
57
            DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/${DOC_DIR}/${module}"
 
58
            PATTERN "html/*"
 
59
            PATTERN "index.sgml" EXCLUDE)
 
60
    endmacro (gtkdoc module)
 
61
endif ()