Commit 135843fa authored by Carlos Garcia Campos's avatar Carlos Garcia Campos Committed by Carlos Garcia Campos

Add gtk-doc support to CMake build

parent e51db61a
......@@ -39,6 +39,7 @@ option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
option(ENABLE_UTILS "Compile poppler command line utils." ON)
option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
option(ENABLE_GLIB "Compile poppler glib wrapper." ON)
option(ENABLE_GTK_DOC "Whether to generate glib API documentation." OFF)
option(ENABLE_QT4 "Compile poppler qt4 wrapper." ON)
option(ENABLE_QT5 "Compile poppler qt5 wrapper." ON)
set(ENABLE_LIBOPENJPEG "auto" CACHE STRING "Use libopenjpeg for JPX streams. Possible values: auto, openjpeg1, openjpeg2, unmaintained, none. 'auto' prefers openjpeg2 over openjpeg1 if both are available. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no JPX decoder at all. Default: auto")
......@@ -779,8 +780,8 @@ show_end_message_yesno("qt4 wrapper" ENABLE_QT4)
show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
show_end_message_yesno(" introspection" INTROSPECTION_FOUND)
show_end_message_yesno(" gtk-doc" ENABLE_GTK_DOC)
show_end_message_yesno("cpp wrapper" ENABLE_CPP)
show_end_message("use gtk-doc" "not supported with this CMake build system")
show_end_message_yesno("use libjpeg" ENABLE_LIBJPEG)
show_end_message_yesno("use libpng" ENABLE_LIBPNG)
show_end_message_yesno("use libtiff" ENABLE_LIBTIFF)
......@@ -839,5 +840,6 @@ add_custom_target(dist
COMMAND git log --stat | fmt --split-only > ${CMAKE_BINARY_DIR}/ChangeLog
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,'
COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,'
COMMAND xz -9 ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
......@@ -134,3 +134,7 @@ if (HAVE_INTROSPECTION)
gir_add_introspections(INTROSPECTION_GIRS)
endif ()
if(ENABLE_GTK_DOC)
add_subdirectory(reference)
endif()
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/glib-docs-build.stamp
DEPENDS poppler-glib
COMMAND ${CMAKE_SOURCE_DIR}/make-glib-api-docs --src-dir=${CMAKE_SOURCE_DIR} --build-dir=${CMAKE_BINARY_DIR}
COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/glib-docs-build.stamp
)
add_custom_target(glib-docs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/glib-docs-build.stamp)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
DESTINATION "${SHARE_INSTALL_DIR}/gtk-doc/html/poppler"
)
This diff is collapsed.
#!/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)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment