3
# Macros for building Midori API documentation.
4
# Copyright (C) 2013 Olivier Duchateau
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)
11
if (GTKDOC_SCAN_BIN AND GTKDOC_MKTMPL_BIN AND GTKDOC_MKDB_BIN
12
AND GTKDOC_MKHTML_BIN)
14
set (GTKDOC_FOUND TRUE)
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}")
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}")
32
add_custom_target ("gtkdoc-docbook_${module}" ALL
33
${GTKDOC_MKDB_BIN} --module=${module}
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}")
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}")
49
endmacro (gtkdoc_build module)
52
file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${module}/html")
53
gtkdoc_build (${module})
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}"
59
PATTERN "index.sgml" EXCLUDE)
60
endmacro (gtkdoc module)