1a4e54154Smrgdoc_targets = [] 2a4e54154Smrg 3a4e54154Smrgdocbook2man = find_program('docbook2man', required: get_option('doc-man')) 4a4e54154Smrgdocbook2txt = find_program('docbook2txt', required: get_option('doc-txt')) 5a4e54154Smrgdocbook2pdf = find_program('docbook2pdf', required: get_option('doc-pdf')) 6a4e54154Smrgdocbook2html = find_program('docbook2html', required: get_option('doc-html')) 7a4e54154Smrg 8a4e54154Smrg# docbook is very spammy 9a4e54154Smrgrun_quiet = find_program('run-quiet.py') 10a4e54154Smrg 11a4e54154Smrg# .fncs files 12a4e54154Smrgdoc_funcs_fncs = [ 13a4e54154Smrg 'fcatomic', 14a4e54154Smrg 'fcblanks', 15a4e54154Smrg 'fccache', 16a4e54154Smrg 'fccharset', 17a4e54154Smrg 'fcconfig', 18a4e54154Smrg 'fcconstant', 19a4e54154Smrg 'fcdircache', 20a4e54154Smrg 'fcfile', 21a4e54154Smrg 'fcfontset', 22a4e54154Smrg 'fcformat', 23a4e54154Smrg 'fcfreetype', 24a4e54154Smrg 'fcinit', 25a4e54154Smrg 'fclangset', 26a4e54154Smrg 'fcmatrix', 27a4e54154Smrg 'fcobjectset', 28a4e54154Smrg 'fcobjecttype', 29a4e54154Smrg 'fcpattern', 30a4e54154Smrg 'fcrange', 31a4e54154Smrg 'fcstring', 32a4e54154Smrg 'fcstrset', 33a4e54154Smrg 'fcvalue', 34a4e54154Smrg 'fcweight', 35a4e54154Smrg] 36a4e54154Smrg 37a4e54154Smrgfncs_files = [] 38a4e54154Smrgforeach f : doc_funcs_fncs 39a4e54154Smrg fncs_files += files('@0@.fncs'.format(f)) 40a4e54154Smrgendforeach 41a4e54154Smrg 42a4e54154Smrgman_pages = [] 43a4e54154Smrg 44a4e54154Smrgextract_man_list = find_program('extract-man-list.py') 45a4e54154Smrgman_list = run_command(extract_man_list, fncs_files, check: true).stdout().split() 46a4e54154Smrg 47a4e54154Smrgforeach m : man_list 48a4e54154Smrg man_pages += ['@0@.3'.format(m)] 49a4e54154Smrgendforeach 50a4e54154Smrg 51a4e54154Smrg# Generate sgml pages for funcs 52a4e54154Smrgedit_sgml = find_program('edit-sgml.py') 53a4e54154Smrg 54a4e54154Smrg# copy into build directory, it includes generated files from build directory 55a4e54154Smrgfontconfig_devel_sgml = configure_file(output: 'fontconfig-devel.sgml', 56a4e54154Smrg input: 'fontconfig-devel.sgml', 57a4e54154Smrg copy: true) 58a4e54154Smrg 59a4e54154Smrgfontconfig_user_sgml = configure_file(output: 'fontconfig-user.sgml', 60a4e54154Smrg input: 'fontconfig-user.sgml', 61a4e54154Smrg copy: true) 62a4e54154Smrg 63a4e54154Smrgversion_conf = configuration_data() 64a4e54154Smrgversion_conf.set('VERSION', meson.project_version()) 65a4e54154Smrg 66a4e54154Smrgconfigure_file(output: 'version.sgml', 67a4e54154Smrg input: 'version.sgml.in', 68a4e54154Smrg configuration: version_conf) 69a4e54154Smrg 70a4e54154Smrgconfdir_conf = configuration_data() 71a4e54154Smrgconfdir_conf.set('BASECONFIGDIR', fc_configdir) 72a4e54154Smrg 73a4e54154Smrgconfdir_sgml = configure_file(output: 'confdir.sgml', 74a4e54154Smrg input: 'confdir.sgml.in', 75a4e54154Smrg configuration: confdir_conf) 76a4e54154Smrg 77a4e54154Smrgfuncs_sgml = [] 78a4e54154Smrg 79a4e54154Smrgforeach f : doc_funcs_fncs 80a4e54154Smrg funcs_sgml += [custom_target('@0@.sgml'.format(f), 81a4e54154Smrg input: [files('func.sgml'), files('@0@.fncs'.format(f))], 82a4e54154Smrg output: '@0@.sgml'.format(f), 83a4e54154Smrg command: [edit_sgml, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], 84a4e54154Smrg install: false)] 85a4e54154Smrgendforeach 86a4e54154Smrg 87a4e54154Smrgif docbook2man.found() 88a4e54154Smrg doc_targets += ['man'] 89a4e54154Smrg 90a4e54154Smrg custom_target('devel-man', 91a4e54154Smrg input: [fontconfig_devel_sgml, funcs_sgml], 92a4e54154Smrg output: man_pages, 93a4e54154Smrg command: [run_quiet, docbook2man, '@INPUT0@', '--output', '@OUTDIR@'], 94a4e54154Smrg build_by_default: true, 95a4e54154Smrg install_dir: get_option('mandir') / 'man3', 96a4e54154Smrg install: true) 97a4e54154Smrg 98a4e54154Smrg # fonts.conf(5) 99a4e54154Smrg custom_target('fonts-conf-5-man-page', 100a4e54154Smrg input: [fontconfig_user_sgml], 101a4e54154Smrg output: 'fonts-conf.5', 102a4e54154Smrg command: [run_quiet, docbook2man, '@INPUT0@', '--output', '@OUTDIR@'], 103a4e54154Smrg install_dir: get_option('mandir') / 'man5', 104a4e54154Smrg build_by_default: true, 105a4e54154Smrg install: true) 106a4e54154Smrg 107a4e54154Smrg # Generate man pages for tools 108a4e54154Smrg foreach t : tools_man_pages 109a4e54154Smrg # docbook2man doesn't seem to have a --quiet option unfortunately 110a4e54154Smrg custom_target('@0@-man-page'.format(t), 111a4e54154Smrg input: '../@0@/@0@.sgml'.format(t), 112a4e54154Smrg output: '@0@.1'.format(t), 113a4e54154Smrg command: [run_quiet, docbook2man, '@INPUT@', '--output', '@OUTDIR@'], 114a4e54154Smrg install_dir: get_option('mandir') / 'man1', 115a4e54154Smrg install: true) 116a4e54154Smrg endforeach 117a4e54154Smrgendif 118a4e54154Smrg 119a4e54154Smrgif docbook2pdf.found() 120a4e54154Smrg doc_targets += ['PDF'] 121a4e54154Smrg 122a4e54154Smrg custom_target('devel-pdf', 123a4e54154Smrg input: [fontconfig_devel_sgml, funcs_sgml], 124a4e54154Smrg output: 'fontconfig-devel.pdf', 125a4e54154Smrg command: [run_quiet, docbook2pdf, '@INPUT0@', '--output', '@OUTDIR@'], 126a4e54154Smrg build_by_default: true, 127a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 128a4e54154Smrg install: true) 129a4e54154Smrg 130a4e54154Smrg custom_target('user-pdf', 131a4e54154Smrg input: [fontconfig_user_sgml, funcs_sgml], 132a4e54154Smrg output: 'fontconfig-user.pdf', 133a4e54154Smrg command: [run_quiet, docbook2pdf, '@INPUT0@', '--output', '@OUTDIR@'], 134a4e54154Smrg build_by_default: true, 135a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 136a4e54154Smrg install: true) 137a4e54154Smrgendif 138a4e54154Smrg 139a4e54154Smrgif docbook2txt.found() 140a4e54154Smrg doc_targets += ['Text'] 141a4e54154Smrg 142a4e54154Smrg custom_target('devel-txt', 143a4e54154Smrg input: [fontconfig_devel_sgml, funcs_sgml], 144a4e54154Smrg output: 'fontconfig-devel.txt', 145a4e54154Smrg command: [run_quiet, docbook2txt, '@INPUT0@', '--output', '@OUTDIR@'], 146a4e54154Smrg build_by_default: true, 147a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 148a4e54154Smrg install: true) 149a4e54154Smrg 150a4e54154Smrg custom_target('user-txt', 151a4e54154Smrg input: [fontconfig_user_sgml, funcs_sgml], 152a4e54154Smrg output: 'fontconfig-user.txt', 153a4e54154Smrg command: [run_quiet, docbook2txt, '@INPUT0@', '--output', '@OUTDIR@'], 154a4e54154Smrg build_by_default: true, 155a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 156a4e54154Smrg install: true) 157a4e54154Smrgendif 158a4e54154Smrg 159a4e54154Smrgif docbook2html.found() 160a4e54154Smrg doc_targets += ['HTML'] 161a4e54154Smrg 162a4e54154Smrg custom_target('devel-html', 163a4e54154Smrg input: [fontconfig_devel_sgml, funcs_sgml], 164a4e54154Smrg output: 'fontconfig-devel.html', 165a4e54154Smrg command: [run_quiet, docbook2html, '--nochunks', '@INPUT0@', '--output', '@OUTDIR@'], 166a4e54154Smrg build_by_default: true, 167a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 168a4e54154Smrg install: true) 169a4e54154Smrg 170a4e54154Smrg custom_target('user-html', 171a4e54154Smrg input: [fontconfig_user_sgml, funcs_sgml], 172a4e54154Smrg output: 'fontconfig-user.html', 173a4e54154Smrg command: [run_quiet, docbook2html, '--nochunks', '@INPUT0@', '--output', '@OUTDIR@'], 174a4e54154Smrg build_by_default: true, 175a4e54154Smrg install_dir: get_option('datadir') / 'doc' / 'fontconfig', 176a4e54154Smrg install: true) 177a4e54154Smrgendif 178