|
4 | 4 | # sigcxx_api_version, build_documentation, source_h_files,
|
5 | 5 | # built_h_files, install_datadir, python3, doc_reference,
|
6 | 6 | # built_h_file_targets, can_add_dist_script
|
7 |
| -# Output: install_docdir, install_devhelpdir, tag_file |
8 | 7 | # Output: install_docdir, install_devhelpdir, if build_documentation: tag_file
|
9 | 8 |
|
10 | 9 | tag_file_modules = [
|
11 | 10 | 'mm-common-libstdc++',
|
12 | 11 | ]
|
13 | 12 | doxygen_tagfiles = ''
|
| 13 | +doxygen_tag_targets = [] |
14 | 14 | docinstall_flags = []
|
15 | 15 | foreach module : tag_file_modules
|
16 | 16 | depmod = dependency(module, required: false)
|
17 | 17 | if depmod.found()
|
18 | 18 | doxytagfile = depmod.get_variable(pkgconfig: 'doxytagfile', internal: 'doxytagfile', default_value: '')
|
19 | 19 | if doxytagfile != ''
|
| 20 | + if depmod.type_name() == 'internal' |
| 21 | + # Subprojects must build their tag files before doxygen is called. |
| 22 | + if module.startswith('mm-common') |
| 23 | + doxygen_tag_targets += subproject('mm-common').get_variable('global_tag_file_target') |
| 24 | + else |
| 25 | + doxygen_tag_targets += subproject(module).get_variable('global_tag_file_target') |
| 26 | + endif |
| 27 | + endif |
20 | 28 | htmlrefpub = depmod.get_variable(pkgconfig: 'htmlrefpub', internal: 'htmlrefpub', default_value: '')
|
21 | 29 | htmlrefdir = depmod.get_variable(pkgconfig: 'htmlrefdir', internal: 'htmlrefdir', default_value: '')
|
22 | 30 | if htmlrefpub == ''
|
@@ -50,7 +58,7 @@ doc_conf_data.set('abs_top_srcdir', project_source_root)
|
50 | 58 | doc_conf_data.set('SIGCXX_API_VERSION', sigcxx_api_version)
|
51 | 59 | doc_conf_data.set('DOXYGEN_TAGFILES', doxygen_tagfiles)
|
52 | 60 |
|
53 |
| -configure_file( |
| 61 | +doxyfile = configure_file( |
54 | 62 | input: 'Doxyfile.in',
|
55 | 63 | output: '@BASENAME@',
|
56 | 64 | configuration: doc_conf_data,
|
@@ -96,8 +104,9 @@ if built_h_file_targets.length() > 0
|
96 | 104 | blt_h_files,
|
97 | 105 | '@INPUT@',
|
98 | 106 | ],
|
| 107 | + depend_files: doxyfile, |
| 108 | + depends: built_h_file_targets + doxygen_tag_targets, |
99 | 109 | build_by_default: build_documentation,
|
100 |
| - depends: built_h_file_targets, |
101 | 110 | install: true,
|
102 | 111 | install_dir: install_reference_docdir,
|
103 | 112 | )
|
|
112 | 121 | '@OUTPUT@',
|
113 | 122 | '@INPUT@',
|
114 | 123 | ],
|
| 124 | + depend_files: doxyfile, |
| 125 | + depends: doxygen_tag_targets, |
115 | 126 | build_by_default: build_documentation,
|
116 | 127 | install: true,
|
117 | 128 | install_dir: install_reference_docdir,
|
|
0 commit comments