
Apparently g-ir-doc-tool does not support other language than C, Python and gjs right now (in particular neither Lua nor Vala bindings).
115 lines
4.4 KiB
Meson
115 lines
4.4 KiB
Meson
foreach lang : [ 'python', 'gjs' ]
|
|
|
|
# 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-' + lang + '-dir',
|
|
depends: [ libgimp_gir, libgimpui_gir ],
|
|
input: [ ],
|
|
output: [ 'gir-' + lang + '-dirs' ],
|
|
command: [
|
|
'mkdir', '-p',
|
|
'@OUTDIR@' + '/pages/' + lang + '/GimpUi-' + gimp_api_version,
|
|
'@OUTDIR@' + '/pages/' + lang + '/Gimp-' + gimp_api_version,
|
|
'@OUTDIR@' + '/html/' + lang + '/GimpUi-' + gimp_api_version,
|
|
'@OUTDIR@' + '/html/' + lang + '/Gimp-' + gimp_api_version
|
|
],
|
|
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_pages = custom_target('g-ir-Gimp-' + lang + '-pages',
|
|
depends: [ gir_docs_dir, libgimp_gir ],
|
|
input: [ libgimp_gir[0] ],
|
|
output: [ 'Gimp-' + lang + '-pages' ],
|
|
command: [
|
|
gir_doc_tool,
|
|
'-I', prefix / 'share/gir-1.0/',
|
|
'-I', meson.build_root() / 'libgimp',
|
|
'--language=' + lang,
|
|
'-o', '@OUTDIR@' + '/pages/' + lang + '/Gimp-' + gimp_api_version,
|
|
'@INPUT@'
|
|
],
|
|
build_by_default: true)
|
|
|
|
## Gimp Module ##
|
|
|
|
gir_docs_cache = custom_target('g-ir-Gimp-' + lang + '-cache',
|
|
input: [ gir_docs_pages ],
|
|
output: [ 'Gimp-' + lang + '-cache' ],
|
|
command: [
|
|
yelp_build, 'cache',
|
|
'-o', '@OUTDIR@' + '/pages/' + lang + '/Gimp-' + gimp_api_version + '/index.cache',
|
|
'@OUTDIR@' + '/pages/' + lang + '/Gimp-' + gimp_api_version,
|
|
],
|
|
build_by_default: true)
|
|
|
|
gir_docs_html = custom_target('g-ir-Gimp-' + lang + '-html',
|
|
input: [ gir_docs_cache ],
|
|
output: [ 'Gimp-' + lang + '-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/' + lang + '/Gimp',
|
|
#install: true,
|
|
command: [
|
|
'yelp-build', 'html',
|
|
'-o', '@OUTDIR@' + '/html/' + lang + '/Gimp-' + gimp_api_version,
|
|
'@OUTDIR@' + '/pages/' + lang + '/Gimp-' + gimp_api_version,
|
|
],
|
|
build_by_default: true)
|
|
|
|
## GimpUi module ##
|
|
|
|
gir_ui_docs_pages = custom_target('g-ir-GimpUi-' + lang + '-pages',
|
|
depends: [ gir_docs_dir, libgimpui_gir ],
|
|
input: [ libgimpui_gir[0] ],
|
|
output: [ 'GimpUi-' + lang + '-pages' ],
|
|
command: [
|
|
gir_doc_tool,
|
|
'-I', prefix / 'share/gir-1.0/',
|
|
'-I', meson.build_root() / 'libgimp',
|
|
'--language=' + lang,
|
|
'-o', '@OUTDIR@' + '/pages/' + lang + '/GimpUi-' + gimp_api_version,
|
|
'@INPUT@'
|
|
],
|
|
build_by_default: true)
|
|
|
|
gir_ui_docs_cache = custom_target('g-ir-GimpUi-' + lang + '-cache',
|
|
input: [ gir_ui_docs_pages ],
|
|
output: [ 'GimpUi-' + lang + '-cache' ],
|
|
command: [
|
|
yelp_build, 'cache',
|
|
'-o', '@OUTDIR@' + '/pages/' + lang + '/GimpUi-' + gimp_api_version + '/index.cache',
|
|
'@OUTDIR@' + '/pages/' + lang + '/GimpUi-' + gimp_api_version,
|
|
],
|
|
build_by_default: true)
|
|
|
|
gir_ui_docs_html = custom_target('g-ir-GimpUi-' + lang + '-html',
|
|
input: [ gir_ui_docs_cache ],
|
|
output: [ 'GimpUi-' + lang + '-html' ],
|
|
#install_dir: prefix / gimpdatadir / 'g-ir-docs/html/' + lang + '/GimpUi',
|
|
#install: true,
|
|
command: [
|
|
'yelp-build', 'html',
|
|
'-o', '@OUTDIR@' + '/html/' + lang + '/GimpUi-' + gimp_api_version,
|
|
'@OUTDIR@' + '/pages/' + lang + '/GimpUi-' + gimp_api_version,
|
|
],
|
|
build_by_default: true)
|
|
|
|
endforeach
|
|
|
|
## TODO: a unit test using yelp-check would be useful.
|