[gimp] devel-docs, meson: g-ir-doc option to generate introspected API docs.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] devel-docs, meson: g-ir-doc option to generate introspected API docs.
- Date: Fri, 29 Jan 2021 15:54:15 +0000 (UTC)
commit eae3d47e32ed48d38ecf1e0c4412076319fa967d
Author: Jehan <jehan girinstud io>
Date: Fri Jan 29 16:51:47 2021 +0100
devel-docs, meson: g-ir-doc option to generate introspected API docs.
Similar to the --enable-g-ir-doc option I just added on autotools. Also
separate this option from gtk-doc as it is unrelated (not everything
under devel-docs is related to gtk-doc!).
devel-docs/g-ir-docs/meson.build | 202 +++++++++++++++++++--------------------
devel-docs/meson.build | 29 +++---
meson.build | 16 ++--
meson_options.txt | 1 +
4 files changed, 127 insertions(+), 121 deletions(-)
---
diff --git a/devel-docs/g-ir-docs/meson.build b/devel-docs/g-ir-docs/meson.build
index d54f0af0d9..b84553b682 100644
--- a/devel-docs/g-ir-docs/meson.build
+++ b/devel-docs/g-ir-docs/meson.build
@@ -1,110 +1,110 @@
-if gir_doc_tool.found() and yelp_build.found()
+# XXX meson does not allow building into subdir:
+# https://github.com/mesonbuild/meson/issues/2320
+# Otherwise I could use '-o', '@OUTDIR@' into following commands if
+# the `output` was subdir-able.
+gir_docs_dir = custom_target('g-ir-docs-dir',
+ depends: [ libgimp_gir, libgimpui_gir ],
+ input: [ ],
+ output: [ 'html-dirs' ],
+ command: [
+ 'mkdir', '-p',
+ '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
+ '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
+ '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
+ '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version
+ ],
+ build_by_default: true)
- # XXX meson does not allow building into subdir:
- # https://github.com/mesonbuild/meson/issues/2320
- # Otherwise I could use '-o', '@OUTDIR@' into following commands if
- # the `output` was subdir-able.
- gir_docs_dir = custom_target('g-ir-docs-dir',
- depends: [ libgimp_gir, libgimpui_gir ],
- input: [ ],
- output: [ 'html-dirs' ],
- command: [
- 'mkdir', '-p',
- '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
- '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version
- ],
- build_by_default: false)
+# XXX `output` is bogus. g-ir-doc-tool produces a lot of output,
+# basically one page per public symbol, which is more than 1000 so
+# it's not usable. Since custom_target() requires an 'output', I could
+# just set one output such as 'index.page` as a trick, but since we
+# have another issue on subdir anyway (cf. above), I use some bogus
+# file instead. The fact the bogus file is not even created does not
+# even seem to be a problem for meson.
+# Moreover I realized that the targets listed by ninja are only the
+# output files (not the target name), so I basically ends up using
+# this field to create understandable names).
+gir_docs_python = custom_target('g-ir-Gimp-python-pages',
+ depends: [ gir_docs_dir, libgimp_gir ],
+ input: [ libgimp_gir[0] ],
+ output: [ 'Gimp-python-pages' ],
+ command: [
+ gir_doc_tool,
+ '-I', prefix / 'share/gir-1.0/',
+ '-I', meson.build_root() / 'libgimp',
+ '--language=Python',
+ '-o', '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
+ '@INPUT@'
+ ],
+ build_by_default: true)
- # XXX `output` is bogus. g-ir-doc-tool produces a lot of output,
- # basically one page per public symbol, which is more than 1000 so
- # it's not usable. Since custom_target() requires an 'output', I could
- # just set one output such as 'index.page` as a trick, but since we
- # have another issue on subdir anyway (cf. above), I use some bogus
- # file instead. The fact the bogus file is not even created does not
- # even seem to be a problem for meson.
- # Moreover I realized that the targets listed by ninja are only the
- # output files (not the target name), so I basically ends up using
- # this field to create understandable names).
- gir_docs_python = custom_target('g-ir-Gimp-python-pages',
- depends: [ gir_docs_dir, libgimp_gir ],
- input: [ libgimp_gir[0] ],
- output: [ 'Gimp-python-pages' ],
- command: [
- gir_doc_tool,
- '-I', prefix / 'share/gir-1.0/',
- '-I', meson.build_root() / 'libgimp',
- '--language=Python',
- '-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
- '@INPUT@'
- ],
- build_by_default: false)
+## Gimp Module ##
- ## Gimp Module ##
+gir_cache_python = custom_target('g-ir-Gimp-python-cache',
+ input: [ gir_docs_python ],
+ output: [ 'Gimp-python-cache' ],
+ command: [
+ yelp_build, 'cache',
+ '-o', '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version + '/index.cache',
+ '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
+ ],
+ build_by_default: true)
- gir_cache_python = custom_target('g-ir-Gimp-python-cache',
- input: [ gir_docs_python ],
- output: [ 'Gimp-python-cache' ],
- command: [
- yelp_build, 'cache',
- '-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version + '/index.cache',
- '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
- ],
- build_by_default: false)
+gir_html_python = custom_target('g-ir-Gimp-python-html',
+ input: [ gir_cache_python ],
+ output: [ 'Gimp-python-html' ],
+ # TODO: `output` needs to be complete for installation to work. So
+ # we need to figure out how to install the generated files (listing
+ # all of them is a crazy idea, but maybe we can generate the
+ # expected list somehow? Maybe even using the .def file which is
+ # already an exhaustive listing would be a good idea?
+ # Also where should we install exactly?
+ #install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/Gimp',
+ #install: true,
+ command: [
+ 'yelp-build', 'html',
+ '-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
+ '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
+ ],
+ build_by_default: true)
- gir_html_python = custom_target('g-ir-Gimp-python-html',
- input: [ gir_cache_python ],
- output: [ 'Gimp-python-html' ],
- # TODO: `output` needs to be complete for installation to work. So
- # we need to figure out how to install the generated files (listing
- # all of them is a crazy idea, but maybe we can generate the
- # expected list somehow? Maybe even using the .def file which is
- # already an exhaustive listing would be a good idea?
- # Also where should we install exactly?
- #install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/Gimp',
- #install: true,
- command: [
- 'yelp-build', 'html',
- '-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
- '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
- ])
+## GimpUi module ##
- ## GimpUi module ##
+gir_docs_python = custom_target('g-ir-GimpUi-python-pages',
+ depends: [ gir_docs_dir, libgimpui_gir ],
+ input: [ libgimpui_gir[0] ],
+ output: [ 'GimpUi-python-pages' ],
+ command: [
+ gir_doc_tool,
+ '-I', prefix / 'share/gir-1.0/',
+ '-I', meson.build_root() / 'libgimp',
+ '--language=Python',
+ '-o', '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
+ '@INPUT@'
+ ],
+ build_by_default: true)
- gir_docs_python = custom_target('g-ir-GimpUi-python-pages',
- depends: [ gir_docs_dir, libgimpui_gir ],
- input: [ libgimpui_gir[0] ],
- output: [ 'GimpUi-python-pages' ],
- command: [
- gir_doc_tool,
- '-I', prefix / 'share/gir-1.0/',
- '-I', meson.build_root() / 'libgimp',
- '--language=Python',
- '-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
- '@INPUT@'
- ],
- build_by_default: false)
+gir_cache_python = custom_target('g-ir-GimpUi-python-cache',
+ input: [ gir_docs_python ],
+ output: [ 'GimpUi-python-cache' ],
+ command: [
+ yelp_build, 'cache',
+ '-o', '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version + '/index.cache',
+ '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
+ ],
+ build_by_default: true)
- gir_cache_python = custom_target('g-ir-GimpUi-python-cache',
- input: [ gir_docs_python ],
- output: [ 'GimpUi-python-cache' ],
- command: [
- yelp_build, 'cache',
- '-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version + '/index.cache',
- '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
- ],
- build_by_default: false)
+gir_html_python = custom_target('g-ir-GimpUi-python-html',
+ input: [ gir_cache_python ],
+ output: [ 'GimpUi-python-html' ],
+ #install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/GimpUi',
+ #install: true,
+ command: [
+ 'yelp-build', 'html',
+ '-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
+ '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
+ ],
+ build_by_default: true)
- gir_html_python = custom_target('g-ir-GimpUi-python-html',
- input: [ gir_cache_python ],
- output: [ 'GimpUi-python-html' ],
- #install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/GimpUi',
- #install: true,
- command: [
- 'yelp-build', 'html',
- '-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
- '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
- ])
-
- ## TODO: a unit test using yelp-check would be useful.
-
-endif
+## TODO: a unit test using yelp-check would be useful.
diff --git a/devel-docs/meson.build b/devel-docs/meson.build
index f6d944291d..48919e76c6 100644
--- a/devel-docs/meson.build
+++ b/devel-docs/meson.build
@@ -17,17 +17,22 @@ mkdb_args_common = [
]
-if get_option('gtk-doc-app')
- subdir('app')
+if get_option('gtk-doc')
+ if get_option('gtk-doc-app')
+ subdir('app')
+ endif
+
+ subdir('libgimp')
+ subdir('libgimpbase')
+ subdir('libgimpcolor')
+ subdir('libgimpconfig')
+ subdir('libgimpmath')
+ subdir('libgimpmodule')
+ subdir('libgimpthumb')
+ subdir('libgimpwidgets')
+ subdir('tools')
endif
-subdir('libgimp')
-subdir('libgimpbase')
-subdir('libgimpcolor')
-subdir('libgimpconfig')
-subdir('libgimpmath')
-subdir('libgimpmodule')
-subdir('libgimpthumb')
-subdir('libgimpwidgets')
-subdir('tools')
-subdir('g-ir-docs')
+if get_option('g-ir-doc')
+ subdir('g-ir-docs')
+endif
diff --git a/meson.build b/meson.build
index ce635ce858..4ca630274d 100644
--- a/meson.build
+++ b/meson.build
@@ -1012,10 +1012,10 @@ desktop_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: get_option('appdata-test'))
# Check for doc generation tools
-have_gtk_doc = get_option('gtk-doc')
-
-gir_doc_tool = find_program('g-ir-doc-tool', required: false)
-yelp_build = find_program('yelp-build', required: false)
+if get_option('g-ir-doc')
+ gir_doc_tool = find_program('g-ir-doc-tool', required: true)
+ yelp_build = find_program('yelp-build', required: true)
+endif
# Check for vector icons
have_vector_icons = get_option('vec-icons')
@@ -1657,10 +1657,7 @@ subdir('app-tools')
# Docs
subdir('docs')
-if have_gtk_doc
- subdir('devel-docs')
-endif
-
+subdir('devel-docs')
pkgconfig.generate(libgimp,
@@ -1803,6 +1800,9 @@ final_message = [
''' Use xvfb-run @0@'''.format(xvfb_run.found()),
''' Test appdata @0@'''.format(appstream_util.found()),
'',
+'''Documentation:''',
+''' GObject Introspection: @0@'''.format(get_option('g-ir-doc')),
+'',
'''Bug report URL: @0@'''.format(bug_report_url),
]
diff --git a/meson_options.txt b/meson_options.txt
index 33bdd1aa6b..7b6ad78045 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -51,6 +51,7 @@ option('headless-tests', type: 'feature', value: 'auto', description: 'Use xv
option('gtk-doc', type: 'boolean', value: true, description: 'Build developer documentation')
option('gtk-doc-app', type: 'boolean', value: false, description: 'Build developer documentation for
app')
+option('g-ir-doc', type: 'boolean', value: false, description: 'Build developer documentation for
introspected API')
option('linux-input', type: 'feature', value: 'auto', description: 'Linux input event controller
module')
option('vec-icons', type: 'boolean', value: true, description: 'Use vector icons rather than
raster ones')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]