doc: make PDF documentation optional

While building any documentation requires xsltproc, only the PDF
documentation requires fop, which is dependency-heavy, and not always
available (e.g. it is not included in RHEL).  This allows the HTML
documentation to be built while skipping the PDFs.
This commit is contained in:
Yaakov Selkowitz 2024-11-04 22:55:18 -05:00
parent df46458bee
commit 37b416c152
2 changed files with 31 additions and 29 deletions

View File

@ -56,35 +56,37 @@ custom_target(
)
fop = custom_target(
input: xml,
output: name + '.fop',
command: [
prog_xsltproc,
'-o', '@OUTPUT@',
'--nonet',
'--xinclude',
'--stringparam', 'generate.toc', 'book toc',
'--stringparam', 'section.autolabel', '1',
'--stringparam', 'section.label.includes.component.label', '1',
'--stringparam', 'toc.max.depth', toc_max_depth,
pdf_stylesheet,
'@INPUT@',
],
)
if prog_fop.found()
fop = custom_target(
input: xml,
output: name + '.fop',
command: [
prog_xsltproc,
'-o', '@OUTPUT@',
'--nonet',
'--xinclude',
'--stringparam', 'generate.toc', 'book toc',
'--stringparam', 'section.autolabel', '1',
'--stringparam', 'section.label.includes.component.label', '1',
'--stringparam', 'toc.max.depth', toc_max_depth,
pdf_stylesheet,
'@INPUT@',
],
)
custom_target(
input: fop,
output: name + '.pdf',
command: [
prog_fop,
'@INPUT@',
'@OUTPUT@',
],
install: true,
install_dir: pdfdir,
install_tag: 'doc',
)
custom_target(
input: fop,
output: name + '.pdf',
command: [
prog_fop,
'@INPUT@',
'@OUTPUT@',
],
install: true,
install_dir: pdfdir,
install_tag: 'doc',
)
endif
subdir('html')

View File

@ -502,7 +502,7 @@ if enable_docs
endif
prog_fop = find_program(
'fop',
required: feature_docs,
required: false,
disabler: true,
)