@@ -13,6 +13,7 @@ tag_file_modules = [
13
13
' mm-common-libstdc++' ,
14
14
]
15
15
doxygen_tagfiles = ''
16
+ doxygen_tag_targets = []
16
17
docinstall_flags = []
17
18
foreach module : tag_file_modules
18
19
depmod = dependency (module, required : false )
@@ -29,6 +30,14 @@ foreach module : tag_file_modules
29
30
htmlrefdir = depmod.get_variable (pkgconfig : ' htmlrefdir' , default_value : '' )
30
31
endif
31
32
if doxytagfile != ''
33
+ if depmod.type_name() == ' internal'
34
+ # Subprojects must build their tag files before doxygen is called.
35
+ if module.startswith(' mm-common' )
36
+ doxygen_tag_targets += subproject (' mm-common' ).get_variable (' global_tag_file_target' )
37
+ else
38
+ doxygen_tag_targets += subproject (module).get_variable (' global_tag_file_target' )
39
+ endif
40
+ endif
32
41
if htmlrefpub == ''
33
42
htmlrefpub = htmlrefdir
34
43
elif htmlrefdir == ''
@@ -60,7 +69,7 @@ doc_conf_data.set('abs_top_srcdir', project_source_root)
60
69
doc_conf_data.set(' SIGCXX_API_VERSION' , sigcxx_api_version)
61
70
doc_conf_data.set(' DOXYGEN_TAGFILES' , doxygen_tagfiles)
62
71
63
- configure_file (
72
+ doxyfile = configure_file (
64
73
input : ' Doxyfile.in' ,
65
74
output : ' @BASENAME@' ,
66
75
configuration : doc_conf_data,
@@ -96,6 +105,8 @@ tag_file = custom_target('html_and_tag',
96
105
' @OUTPUT@' ,
97
106
' @INPUT@' ,
98
107
],
108
+ depend_files : doxyfile,
109
+ depends : doxygen_tag_targets,
99
110
build_by_default : build_documentation,
100
111
install : true ,
101
112
install_dir : install_reference_docdir,
0 commit comments