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