diff options
author | Olivier Duchateau <duchateau.olivier@gmail.com> | 2013-09-22 17:09:12 +0200 |
---|---|---|
committer | Christian Dywan <christian.dywan@canonical.com> | 2013-09-22 17:09:12 +0200 |
commit | d707f7a24abf4697f6e53d21d795fcfbc10f8dbe (patch) | |
tree | 2e441232d41d2f8a5ce507197a9cb753fbb11931 /cmake | |
parent | 70e19eba63a96433790d389faf27d10fb63b6af2 (diff) | |
download | midori-d707f7a24abf4697f6e53d21d795fcfbc10f8dbe.tar.gz |
Add USE_APIDOCS to build API docs with CMake
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/GtkDoc.cmake | 61 |
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 () |