summaryrefslogtreecommitdiff
path: root/make-glib-api-docs
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2017-09-20 19:38:14 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2017-09-21 20:06:46 +0200
commit135843fa8398364e0559c2b0b96f9be4a44572c5 (patch)
tree32d71ebaf6bef87a717d9fa9ab5439c45a179dc1 /make-glib-api-docs
parente51db61a33cdbe6307f048b65912a85f6cd1ec5b (diff)
Add gtk-doc support to CMake build
Diffstat (limited to 'make-glib-api-docs')
-rwxr-xr-xmake-glib-api-docs66
1 files changed, 66 insertions, 0 deletions
diff --git a/make-glib-api-docs b/make-glib-api-docs
new file mode 100755
index 00000000..6fbe4494
--- /dev/null
+++ b/make-glib-api-docs
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2017 Carlos Garcia Campos <carlosgc@gnome.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+import argparse
+import logging
+import os
+from gtkdoc import PkgConfigGTKDoc
+
+def configure_logging(verbose):
+ level = logging.DEBUG if verbose else logging.INFO
+ logger = logging.getLogger('gtkdoc')
+ logger.setLevel(level)
+ handler = logging.StreamHandler()
+ handler.setLevel(level)
+ logger.addHandler(handler)
+ if level == logging.DEBUG:
+ handler.setFormatter(logging.Formatter('[%(asctime)s] %(message)s'))
+ else:
+ handler.setFormatter(logging.Formatter('%(message)s'))
+
+
+parser = argparse.ArgumentParser(description='Make poppler GLib API documentation.')
+parser.add_argument('-v', '--verbose', action='store_true', default = False,
+ help='Whether or not to run in verbose mode.')
+parser.add_argument('--skip-html', action='store_true',
+ help='Whether or not to skip HTML generation, which can be slow.')
+parser.add_argument('-s', '--src-dir', action='store', default='.', dest='src_dir',
+ help='The source directory')
+parser.add_argument('-b', '--build-dir', action='store', default='build', dest='build_dir',
+ help='The build directory')
+args = parser.parse_args()
+configure_logging(args.verbose)
+
+pkgconfig_file = os.path.join(args.build_dir, 'poppler-glib.pc')
+pkgconfig_path = os.environ.get("PKG_CONFIG_PATH")
+os.environ['PKG_CONFIG_PATH'] = args.build_dir
+if pkgconfig_path:
+ os.environ['PKG_CONFIG_PATH'] += ':' + pkgconfig_path
+
+gtkdoc = PkgConfigGTKDoc(pkgconfig_file, {
+ 'library_path': os.path.join(args.build_dir, 'glib'),
+ 'module_name': 'poppler',
+ 'doc_dir': os.path.join(args.src_dir, 'glib', 'reference'),
+ 'output_dir': os.path.join(args.build_dir, 'glib', 'reference'),
+ 'main_sgml_file': 'poppler-docs.sgml',
+ 'source_dirs': [os.path.join(args.src_dir, 'glib')],
+ 'cflags': '-I%s' % os.path.join(args.src_dir, 'glib'),
+ 'ignored_files': ['poppler-private.h', 'poppler-input-stream.h', 'poppler-cached-file-loader.h', 'demo']
+})
+
+gtkdoc.generate(not args.skip_html)