mirror of
https://github.com/postgres/postgres.git
synced 2026-02-17 17:55:04 -05:00
meson: Add target for generating docs images
This adds an 'images' target to the meson build system in order to be able to regenerate the images used in the docs. Author: Nazir Bilal Yavuz <byavuz81@gmail.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reported-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/CAN55FZ0c0Tcjx9=e-YibWGHa1-xmdV63p=THH4YYznz+pYcfig@mail.gmail.com
This commit is contained in:
parent
6736dea14a
commit
4ec0e75afd
3 changed files with 65 additions and 0 deletions
61
doc/src/sgml/images/meson.build
Normal file
61
doc/src/sgml/images/meson.build
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# doc/src/sgml/images/meson.build
|
||||
#
|
||||
# see README in this directory about image handling
|
||||
|
||||
if not xsltproc_bin.found() or not dot.found() or not ditaa.found()
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
image_targets = []
|
||||
|
||||
fixup_svg_xsl = files('fixup-svg.xsl')
|
||||
|
||||
all_files = [
|
||||
'genetic-algorithm.gv',
|
||||
'gin.gv',
|
||||
'pagelayout.txt',
|
||||
'temporal-entities.txt',
|
||||
'temporal-references.txt',
|
||||
]
|
||||
|
||||
foreach file : all_files
|
||||
|
||||
str_split = file.split('.')
|
||||
actual_file_name = str_split[0]
|
||||
extension = str_split[1]
|
||||
cur_file = files(file)
|
||||
tmp_name = '@0@.svg.tmp'.format(file)
|
||||
output_name = '@0@.svg'.format(actual_file_name)
|
||||
|
||||
command = []
|
||||
if extension == 'gv'
|
||||
command = [dot, '-T', 'svg', '-o', '@OUTPUT@', '@INPUT@']
|
||||
elif extension == 'txt'
|
||||
command = [ditaa, '-E', '-S', '--svg', '@INPUT@', '@OUTPUT@']
|
||||
else
|
||||
error('Unknown extension: ".@0@" while generating images'.format(extension))
|
||||
endif
|
||||
|
||||
svg_tmp = custom_target(tmp_name,
|
||||
input: cur_file,
|
||||
output: tmp_name,
|
||||
command: command,
|
||||
)
|
||||
|
||||
current_svg = custom_target(output_name,
|
||||
input: svg_tmp,
|
||||
output: output_name,
|
||||
command: [xsltproc_bin,
|
||||
'--nonet',
|
||||
# Use --novalid to avoid loading SVG DTD if a file specifies it, since
|
||||
# it might not be available locally, and we don't need it.
|
||||
'--novalid',
|
||||
'-o', '@OUTPUT@',
|
||||
fixup_svg_xsl,
|
||||
'@INPUT@']
|
||||
)
|
||||
|
||||
image_targets += current_svg
|
||||
endforeach
|
||||
|
||||
alias_target('images', image_targets)
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
# Copyright (c) 2022-2026, PostgreSQL Global Development Group
|
||||
|
||||
subdir('images')
|
||||
|
||||
docs = []
|
||||
installdocs = []
|
||||
alldocs = []
|
||||
|
|
|
|||
|
|
@ -355,6 +355,8 @@ cp = find_program('cp', required: false, native: true)
|
|||
xmllint_bin = find_program(get_option('XMLLINT'), native: true, required: false)
|
||||
xsltproc_bin = find_program(get_option('XSLTPROC'), native: true, required: false)
|
||||
nm = find_program('nm', required: false, native: true)
|
||||
ditaa = find_program('ditaa', native: true, required: false)
|
||||
dot = find_program('dot', native: true, required: false)
|
||||
|
||||
bison_flags = []
|
||||
if bison.found()
|
||||
|
|
|
|||
Loading…
Reference in a new issue