mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 17:59:37 +00:00
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!).
This commit is contained in:
parent
4b39217181
commit
eae3d47e32
4 changed files with 127 additions and 121 deletions
|
@ -1,31 +1,31 @@
|
||||||
if gir_doc_tool.found() and yelp_build.found()
|
# XXX meson does not allow building into subdir:
|
||||||
|
# https://github.com/mesonbuild/meson/issues/2320
|
||||||
# XXX meson does not allow building into subdir:
|
# Otherwise I could use '-o', '@OUTDIR@' into following commands if
|
||||||
# https://github.com/mesonbuild/meson/issues/2320
|
# the `output` was subdir-able.
|
||||||
# Otherwise I could use '-o', '@OUTDIR@' into following commands if
|
gir_docs_dir = custom_target('g-ir-docs-dir',
|
||||||
# the `output` was subdir-able.
|
|
||||||
gir_docs_dir = custom_target('g-ir-docs-dir',
|
|
||||||
depends: [ libgimp_gir, libgimpui_gir ],
|
depends: [ libgimp_gir, libgimpui_gir ],
|
||||||
input: [ ],
|
input: [ ],
|
||||||
output: [ 'html-dirs' ],
|
output: [ 'html-dirs' ],
|
||||||
command: [
|
command: [
|
||||||
'mkdir', '-p',
|
'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/GimpUi-' + gimp_api_version,
|
||||||
'@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version
|
'@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version
|
||||||
],
|
],
|
||||||
build_by_default: false)
|
build_by_default: true)
|
||||||
|
|
||||||
# XXX `output` is bogus. g-ir-doc-tool produces a lot of output,
|
# 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
|
# basically one page per public symbol, which is more than 1000 so
|
||||||
# it's not usable. Since custom_target() requires an 'output', I could
|
# 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
|
# 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
|
# 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
|
# file instead. The fact the bogus file is not even created does not
|
||||||
# even seem to be a problem for meson.
|
# even seem to be a problem for meson.
|
||||||
# Moreover I realized that the targets listed by ninja are only the
|
# Moreover I realized that the targets listed by ninja are only the
|
||||||
# output files (not the target name), so I basically ends up using
|
# output files (not the target name), so I basically ends up using
|
||||||
# this field to create understandable names).
|
# this field to create understandable names).
|
||||||
gir_docs_python = custom_target('g-ir-Gimp-python-pages',
|
gir_docs_python = custom_target('g-ir-Gimp-python-pages',
|
||||||
depends: [ gir_docs_dir, libgimp_gir ],
|
depends: [ gir_docs_dir, libgimp_gir ],
|
||||||
input: [ libgimp_gir[0] ],
|
input: [ libgimp_gir[0] ],
|
||||||
output: [ 'Gimp-python-pages' ],
|
output: [ 'Gimp-python-pages' ],
|
||||||
|
@ -34,24 +34,24 @@ if gir_doc_tool.found() and yelp_build.found()
|
||||||
'-I', prefix / 'share/gir-1.0/',
|
'-I', prefix / 'share/gir-1.0/',
|
||||||
'-I', meson.build_root() / 'libgimp',
|
'-I', meson.build_root() / 'libgimp',
|
||||||
'--language=Python',
|
'--language=Python',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
|
'-o', '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
|
||||||
'@INPUT@'
|
'@INPUT@'
|
||||||
],
|
],
|
||||||
build_by_default: false)
|
build_by_default: true)
|
||||||
|
|
||||||
## Gimp Module ##
|
## Gimp Module ##
|
||||||
|
|
||||||
gir_cache_python = custom_target('g-ir-Gimp-python-cache',
|
gir_cache_python = custom_target('g-ir-Gimp-python-cache',
|
||||||
input: [ gir_docs_python ],
|
input: [ gir_docs_python ],
|
||||||
output: [ 'Gimp-python-cache' ],
|
output: [ 'Gimp-python-cache' ],
|
||||||
command: [
|
command: [
|
||||||
yelp_build, 'cache',
|
yelp_build, 'cache',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version + '/index.cache',
|
'-o', '@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version + '/index.cache',
|
||||||
'@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
|
'@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
|
||||||
],
|
],
|
||||||
build_by_default: false)
|
build_by_default: true)
|
||||||
|
|
||||||
gir_html_python = custom_target('g-ir-Gimp-python-html',
|
gir_html_python = custom_target('g-ir-Gimp-python-html',
|
||||||
input: [ gir_cache_python ],
|
input: [ gir_cache_python ],
|
||||||
output: [ 'Gimp-python-html' ],
|
output: [ 'Gimp-python-html' ],
|
||||||
# TODO: `output` needs to be complete for installation to work. So
|
# TODO: `output` needs to be complete for installation to work. So
|
||||||
|
@ -65,12 +65,13 @@ if gir_doc_tool.found() and yelp_build.found()
|
||||||
command: [
|
command: [
|
||||||
'yelp-build', 'html',
|
'yelp-build', 'html',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
|
'-o', '@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
|
||||||
'@OUTDIR@' + '/html/Python/Gimp-' + gimp_api_version,
|
'@OUTDIR@' + '/pages/Python/Gimp-' + gimp_api_version,
|
||||||
])
|
],
|
||||||
|
build_by_default: true)
|
||||||
|
|
||||||
## GimpUi module ##
|
## GimpUi module ##
|
||||||
|
|
||||||
gir_docs_python = custom_target('g-ir-GimpUi-python-pages',
|
gir_docs_python = custom_target('g-ir-GimpUi-python-pages',
|
||||||
depends: [ gir_docs_dir, libgimpui_gir ],
|
depends: [ gir_docs_dir, libgimpui_gir ],
|
||||||
input: [ libgimpui_gir[0] ],
|
input: [ libgimpui_gir[0] ],
|
||||||
output: [ 'GimpUi-python-pages' ],
|
output: [ 'GimpUi-python-pages' ],
|
||||||
|
@ -79,22 +80,22 @@ if gir_doc_tool.found() and yelp_build.found()
|
||||||
'-I', prefix / 'share/gir-1.0/',
|
'-I', prefix / 'share/gir-1.0/',
|
||||||
'-I', meson.build_root() / 'libgimp',
|
'-I', meson.build_root() / 'libgimp',
|
||||||
'--language=Python',
|
'--language=Python',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
|
'-o', '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
|
||||||
'@INPUT@'
|
'@INPUT@'
|
||||||
],
|
],
|
||||||
build_by_default: false)
|
build_by_default: true)
|
||||||
|
|
||||||
gir_cache_python = custom_target('g-ir-GimpUi-python-cache',
|
gir_cache_python = custom_target('g-ir-GimpUi-python-cache',
|
||||||
input: [ gir_docs_python ],
|
input: [ gir_docs_python ],
|
||||||
output: [ 'GimpUi-python-cache' ],
|
output: [ 'GimpUi-python-cache' ],
|
||||||
command: [
|
command: [
|
||||||
yelp_build, 'cache',
|
yelp_build, 'cache',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version + '/index.cache',
|
'-o', '@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version + '/index.cache',
|
||||||
'@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
|
'@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
|
||||||
],
|
],
|
||||||
build_by_default: false)
|
build_by_default: true)
|
||||||
|
|
||||||
gir_html_python = custom_target('g-ir-GimpUi-python-html',
|
gir_html_python = custom_target('g-ir-GimpUi-python-html',
|
||||||
input: [ gir_cache_python ],
|
input: [ gir_cache_python ],
|
||||||
output: [ 'GimpUi-python-html' ],
|
output: [ 'GimpUi-python-html' ],
|
||||||
#install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/GimpUi',
|
#install_dir: prefix / gimpdatadir / 'g-ir-docs/html/Python/GimpUi',
|
||||||
|
@ -102,9 +103,8 @@ if gir_doc_tool.found() and yelp_build.found()
|
||||||
command: [
|
command: [
|
||||||
'yelp-build', 'html',
|
'yelp-build', 'html',
|
||||||
'-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
|
'-o', '@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
|
||||||
'@OUTDIR@' + '/html/Python/GimpUi-' + gimp_api_version,
|
'@OUTDIR@' + '/pages/Python/GimpUi-' + gimp_api_version,
|
||||||
])
|
],
|
||||||
|
build_by_default: true)
|
||||||
|
|
||||||
## TODO: a unit test using yelp-check would be useful.
|
## TODO: a unit test using yelp-check would be useful.
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
|
@ -17,17 +17,22 @@ mkdb_args_common = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
if get_option('gtk-doc-app')
|
if get_option('gtk-doc')
|
||||||
|
if get_option('gtk-doc-app')
|
||||||
subdir('app')
|
subdir('app')
|
||||||
|
endif
|
||||||
|
|
||||||
|
subdir('libgimp')
|
||||||
|
subdir('libgimpbase')
|
||||||
|
subdir('libgimpcolor')
|
||||||
|
subdir('libgimpconfig')
|
||||||
|
subdir('libgimpmath')
|
||||||
|
subdir('libgimpmodule')
|
||||||
|
subdir('libgimpthumb')
|
||||||
|
subdir('libgimpwidgets')
|
||||||
|
subdir('tools')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdir('libgimp')
|
if get_option('g-ir-doc')
|
||||||
subdir('libgimpbase')
|
subdir('g-ir-docs')
|
||||||
subdir('libgimpcolor')
|
endif
|
||||||
subdir('libgimpconfig')
|
|
||||||
subdir('libgimpmath')
|
|
||||||
subdir('libgimpmodule')
|
|
||||||
subdir('libgimpthumb')
|
|
||||||
subdir('libgimpwidgets')
|
|
||||||
subdir('tools')
|
|
||||||
subdir('g-ir-docs')
|
|
||||||
|
|
16
meson.build
16
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'))
|
appstream_util = find_program('appstream-util', required: get_option('appdata-test'))
|
||||||
|
|
||||||
# Check for doc generation tools
|
# Check for doc generation tools
|
||||||
have_gtk_doc = get_option('gtk-doc')
|
if get_option('g-ir-doc')
|
||||||
|
gir_doc_tool = find_program('g-ir-doc-tool', required: true)
|
||||||
gir_doc_tool = find_program('g-ir-doc-tool', required: false)
|
yelp_build = find_program('yelp-build', required: true)
|
||||||
yelp_build = find_program('yelp-build', required: false)
|
endif
|
||||||
|
|
||||||
# Check for vector icons
|
# Check for vector icons
|
||||||
have_vector_icons = get_option('vec-icons')
|
have_vector_icons = get_option('vec-icons')
|
||||||
|
@ -1657,10 +1657,7 @@ subdir('app-tools')
|
||||||
|
|
||||||
# Docs
|
# Docs
|
||||||
subdir('docs')
|
subdir('docs')
|
||||||
if have_gtk_doc
|
subdir('devel-docs')
|
||||||
subdir('devel-docs')
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pkgconfig.generate(libgimp,
|
pkgconfig.generate(libgimp,
|
||||||
|
@ -1803,6 +1800,9 @@ final_message = [
|
||||||
''' Use xvfb-run @0@'''.format(xvfb_run.found()),
|
''' Use xvfb-run @0@'''.format(xvfb_run.found()),
|
||||||
''' Test appdata @0@'''.format(appstream_util.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),
|
'''Bug report URL: @0@'''.format(bug_report_url),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -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', type: 'boolean', value: true, description: 'Build developer documentation')
|
||||||
option('gtk-doc-app', type: 'boolean', value: false, description: 'Build developer documentation for app')
|
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('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')
|
option('vec-icons', type: 'boolean', value: true, description: 'Use vector icons rather than raster ones')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue