@@ -12,12 +12,21 @@ tag_file_modules = [
12
12
' mm-common-libstdc++' ,
13
13
]
14
14
doxygen_tagfiles = ''
15
+ doxygen_tag_targets = []
15
16
docinstall_flags = []
16
17
foreach module : tag_file_modules
17
18
depmod = dependency (module, required : false )
18
19
if depmod.found()
19
20
doxytagfile = depmod.get_variable (pkgconfig : ' doxytagfile' , internal : ' doxytagfile' , default_value : '' )
20
21
if doxytagfile != ''
22
+ if depmod.type_name() == ' internal'
23
+ # Subprojects must build their tag files before doxygen is called.
24
+ if module.startswith(' mm-common' )
25
+ doxygen_tag_targets += subproject (' mm-common' ).get_variable (' global_tag_file_target' )
26
+ else
27
+ doxygen_tag_targets += subproject (module).get_variable (' global_tag_file_target' )
28
+ endif
29
+ endif
21
30
htmlrefpub = depmod.get_variable (pkgconfig : ' htmlrefpub' , internal : ' htmlrefpub' , default_value : '' )
22
31
htmlrefdir = depmod.get_variable (pkgconfig : ' htmlrefdir' , internal : ' htmlrefdir' , default_value : '' )
23
32
if htmlrefpub == ''
@@ -51,7 +60,7 @@ doc_conf_data.set('abs_top_srcdir', project_source_root)
51
60
doc_conf_data.set(' LIBXMLXX_MODULE_NAME' , book_name)
52
61
doc_conf_data.set(' DOXYGEN_TAGFILES' , doxygen_tagfiles)
53
62
54
- configure_file (
63
+ doxyfile = configure_file (
55
64
input : ' Doxyfile.in' ,
56
65
output : ' @BASENAME@' ,
57
66
configuration : doc_conf_data,
@@ -87,6 +96,8 @@ tag_file = custom_target('html_and_tag',
87
96
' @OUTPUT@' ,
88
97
' @INPUT@' ,
89
98
],
99
+ depend_files : doxyfile,
100
+ depends : doxygen_tag_targets,
90
101
build_by_default : build_documentation,
91
102
install : true ,
92
103
install_dir : install_reference_docdir,
0 commit comments