diff options
Diffstat (limited to 'cmake/modules/GtkDoc.cmake')
-rw-r--r-- | cmake/modules/GtkDoc.cmake | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/cmake/modules/GtkDoc.cmake b/cmake/modules/GtkDoc.cmake deleted file mode 100644 index e82ee0a19..000000000 --- a/cmake/modules/GtkDoc.cmake +++ /dev/null @@ -1,145 +0,0 @@ -# GtkDoc.cmake -# -# Macros to support develper documentation build from sources with gtk-doc. -# -# add_gtkdoc(_module _namespace _deprecated_guards _srcdirsvar _depsvar _ignoreheadersvar) -# Adds rules to build developer documentation using gtk-doc for some part. -# Arguments: -# _module - the module name, like 'camel'; it expects ${_part}-docs.sgml.in in the CMAKE_CURRENT_SOURCE_DIR -# _namespace - namespace for symbols -# _deprecated_guards - define name, which guards deprecated symbols -# _srcdirsvar - variable with dirs where the source files are located -# _depsvar - a variable with dependencies (targets) -# _ignoreheadersvar - a variable with a set of header files to ignore -# -# It also adds custom target gtkdoc-rebuild-${_module}-sgml to rebuild the sgml.in -# file based on the current sources. - -include(PrintableOptions) - -add_printable_option(ENABLE_GTK_DOC "Use gtk-doc to build documentation" OFF) - -if(NOT ENABLE_GTK_DOC) - return() -endif(NOT ENABLE_GTK_DOC) - -find_program(GTKDOC_SCAN gtkdoc-scan) -find_program(GTKDOC_MKDB gtkdoc-mkdb) -find_program(GTKDOC_MKHTML gtkdoc-mkhtml) -find_program(GTKDOC_FIXXREF gtkdoc-fixxref) - -if(NOT (GTKDOC_SCAN AND GTKDOC_MKDB AND GTKDOC_MKHTML AND GTKDOC_FIXXREF)) - message(FATAL_ERROR "Cannot find all gtk-doc binaries, install them or use -DENABLE_GTK_DOC=OFF instead") - return() -endif() - -if(NOT TARGET gtkdocs) - add_custom_target(gtkdocs ALL) -endif(NOT TARGET gtkdocs) - -if(NOT TARGET gtkdoc-rebuild-sgmls) - add_custom_target(gtkdoc-rebuild-sgmls) -endif(NOT TARGET gtkdoc-rebuild-sgmls) - -macro(add_gtkdoc _module _namespace _deprecated_guards _srcdirsvar _depsvar _ignoreheadersvar) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${_module}-docs.sgml.in - ${CMAKE_CURRENT_BINARY_DIR}/${_module}-docs.sgml - @ONLY - ) - - set(OUTPUT_DOCDIR ${SHARE_INSTALL_PREFIX}/gtk-doc/html/${_module}) - - set(_filedeps) - set(_srcdirs) - foreach(_srcdir ${${_srcdirsvar}}) - set(_srcdirs ${_srcdirs} --source-dir="${_srcdir}") - file(GLOB _files ${_srcdir}/*.h* ${_srcdir}/*.c*) - list(APPEND _filedeps ${_files}) - endforeach(_srcdir) - - set(_mkhtml_prefix "") - if(APPLE) - set(_mkhtml_prefix "${CMAKE_COMMAND} -E env XML_CATALOG_FILES=\"/usr/local/etc/xml/catalog\"") - endif(APPLE) - - add_custom_command(OUTPUT html/index.html - COMMAND ${GTKDOC_SCAN} - --module=${_module} - --deprecated-guards="${_deprecated_guards}" - --ignore-headers="${${_ignoreheadersvar}}" - --rebuild-sections - --rebuild-types - ${_srcdirs} - - COMMAND ${GTKDOC_MKDB} - --module=${_module} - --name-space=${_namespace} - --main-sgml-file="${CMAKE_CURRENT_BINARY_DIR}/${_module}-docs.sgml" - --sgml-mode - --output-format=xml - ${_srcdirs} - - COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/html" - - COMMAND ${CMAKE_COMMAND} -E chdir "${CMAKE_CURRENT_BINARY_DIR}/html" ${_mkhtml_prefix} ${GTKDOC_MKHTML} --path=.. ${_module} ../${_module}-docs.sgml - - COMMAND ${GTKDOC_FIXXREF} - --module=${_module} - --module-dir=html - --extra-dir=.. - --html-dir="${OUTPUT_DOCDIR}" - - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_module}-docs.sgml" - ${_filedeps} - COMMENT "Generating ${_module} documentation" - ) - - add_custom_target(gtkdoc-${_module} - DEPENDS html/index.html - ) - - if(${_depsvar}) - add_dependencies(gtkdoc-${_module} ${${_depsvar}}) - endif(${_depsvar}) - - add_dependencies(gtkdocs gtkdoc-${_module}) - - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ - DESTINATION ${OUTPUT_DOCDIR} - ) - - # *************************************** - # sgml.in file rebuild, unconditional - # *************************************** - add_custom_target(gtkdoc-rebuild-${_module}-sgml - COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/tmp" - COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/tmp" - - COMMAND ${CMAKE_COMMAND} -E chdir "${CMAKE_CURRENT_BINARY_DIR}/tmp" - ${GTKDOC_SCAN} - --module=${_module} - --deprecated-guards="${_deprecated_guards}" - --ignore-headers="${_ignore_headers}" - --rebuild-sections - --rebuild-types - ${_srcdirs} - - COMMAND ${CMAKE_COMMAND} -E chdir "${CMAKE_CURRENT_BINARY_DIR}/tmp" - ${GTKDOC_MKDB} - --module=${_module} - --name-space=${_namespace} - --main-sgml-file="${CMAKE_CURRENT_BINARY_DIR}/tmp/${_module}-docs.sgml" - --sgml-mode - --output-format=xml - ${_srcdirs} - - COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/tmp/${_module}-docs.sgml ${CMAKE_CURRENT_SOURCE_DIR}/${_module}-docs.sgml.in - - COMMAND ${CMAKE_COMMAND} -E echo "File '${CMAKE_CURRENT_SOURCE_DIR}/${_module}-docs.sgml.in' overwritten, make sure you replace generated strings with proper content before committing." - ) - - add_dependencies(gtkdoc-rebuild-sgmls gtkdoc-rebuild-${_module}-sgml) - -endmacro(add_gtkdoc) |