summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorOlivier Duchateau <duchateau.olivier@gmail.com>2013-09-22 17:09:12 +0200
committerChristian Dywan <christian.dywan@canonical.com>2013-09-22 17:09:12 +0200
commitd707f7a24abf4697f6e53d21d795fcfbc10f8dbe (patch)
tree2e441232d41d2f8a5ce507197a9cb753fbb11931 /cmake
parent70e19eba63a96433790d389faf27d10fb63b6af2 (diff)
downloadmidori-d707f7a24abf4697f6e53d21d795fcfbc10f8dbe.tar.gz
Add USE_APIDOCS to build API docs with CMake
Diffstat (limited to 'cmake')
-rw-r--r--cmake/GtkDoc.cmake61
1 files changed, 61 insertions, 0 deletions
diff --git a/cmake/GtkDoc.cmake b/cmake/GtkDoc.cmake
new file mode 100644
index 00000000..21e5cd58
--- /dev/null
+++ b/cmake/GtkDoc.cmake
@@ -0,0 +1,61 @@
+# GtkDoc.cmake
+#
+# Macros for building Midori API documentation.
+# Copyright (C) 2013 Olivier Duchateau
+
+find_program (GTKDOC_SCAN_BIN gtkdoc-scan)
+find_program (GTKDOC_MKDB_BIN gtkdoc-mkdb)
+find_program (GTKDOC_MKHTML_BIN gtkdoc-mkhtml)
+find_program (GTKDOC_MKTMPL_BIN gtkdoc-mktmpl)
+
+if (GTKDOC_SCAN_BIN AND GTKDOC_MKTMPL_BIN AND GTKDOC_MKDB_BIN
+ AND GTKDOC_MKHTML_BIN)
+
+ set (GTKDOC_FOUND TRUE)
+
+ macro (gtkdoc_build module)
+ add_custom_target ("gtkdoc-scan_${module}" ALL
+ ${GTKDOC_SCAN_BIN} --module=${module}
+ --source-dir="../../${module}"
+ --output-dir="${module}"
+ --rebuild-sections --rebuild-types
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+
+ add_custom_target ("gtkdoc-tmpl_${module}" ALL
+ ${GTKDOC_MKTMPL_BIN} --module=${module}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${module}")
+
+ add_custom_target ("gtkdoc-docbook_${module}" ALL
+ ${GTKDOC_MKDB_BIN} --module=${module}
+ --source-dir="."
+ --output-dir="xml"
+ --source-suffixes=c,h --output-format=xml
+ --default-includes=${module}/${module}.h
+ --sgml-mode --main-sgml-file=${module}.sgml
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${module}")
+
+ add_dependencies ("gtkdoc-docbook_${module}"
+ "gtkdoc-tmpl_${module}"
+ "gtkdoc-scan_${module}")
+
+ # Keep this target alone, otherwise build fails
+ add_custom_target ("gtkdoc-html_${module}" ALL
+ ${GTKDOC_MKHTML_BIN} ${module}
+ "../${module}.sgml"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${module}/html")
+
+ add_dependencies ("gtkdoc-html_${module}"
+ "gtkdoc-docbook_${module}")
+ endmacro (gtkdoc_build module)
+
+ macro (gtkdoc module)
+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${module}/html")
+ gtkdoc_build (${module})
+
+ set (DOC_DIR "html/midori-${MIDORI_MAJOR_VERSION}-${MIDORI_MINOR_VERSION}")
+ install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${module}/html/"
+ DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/${DOC_DIR}/${module}"
+ PATTERN "html/*"
+ PATTERN "index.sgml" EXCLUDE)
+ endmacro (gtkdoc module)
+endif ()