Skip to content

Commit abd715e

Browse files
committed
Meta packages have no subdirectories except doc
1 parent af181ca commit abd715e

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

rosdoc2/verbs/build/builders/index.rst.jinja

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
{% if interface_counts['srv'] > 0 %} Service Definitions <interfaces/service_definitions>{% endif %}
2222
{% if interface_counts['action'] > 0 %} Action Definitions <interfaces/action_definitions>{% endif %}
2323
{% if has_standard_docs %} Standard Documents <standards>{% endif %}
24-
{% if not package.build_depends and package.exec_depends %}
24+
{% if is_meta %}
2525
Dependencies of this META package
2626
---------------------------------
2727
{% for dependency in package.exec_depends %}

rosdoc2/verbs/build/builders/sphinx_builder.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import json
1717
import logging
1818
import os
19+
from pathlib import Path
1920
import shutil
2021
import subprocess
2122

@@ -471,15 +472,31 @@ def build(self, *, doc_build_folder, output_staging_directory):
471472

472473
always_run_doxygen = build_context.always_run_doxygen
473474
has_cpp = build_context.build_type in ['ament_cmake', 'cmake'] or always_run_doxygen
475+
package = self.build_context.package
476+
477+
# Detect meta packages. They have no build_dependencies, do have exec_dependencies,
478+
# and have no subdirectories except for possibly 'doc'.
479+
is_meta = True
480+
if package.build_depends or not package.exec_depends:
481+
is_meta = False
482+
else:
483+
pp = Path(package_xml_directory)
484+
subdirectories = [x for x in pp.iterdir() if x.is_dir()]
485+
for subdirectory in subdirectories:
486+
if subdirectory.name != 'doc':
487+
is_meta = False
488+
continue
489+
474490
self.template_variables.update({
475491
'has_python': has_python,
476492
'has_cpp': has_cpp,
477493
'has_standard_docs': bool(standard_docs),
478494
'has_documentation': bool(doc_directories),
479495
'has_readme': 'readme' in standard_docs,
480496
'interface_counts': interface_counts,
481-
'package': self.build_context.package,
497+
'package': package,
482498
'base_url': base_url,
499+
'is_meta': is_meta or package.is_metapackage(),
483500
})
484501

485502
# Setup rosdoc2 Sphinx file which will include and extend the one in

0 commit comments

Comments
 (0)