8 from .util
import PKG_PATH, make_executable, roscompile
10 MAINPAGE_S =
r'/\*\*\s+\\mainpage\s+\\htmlinclude manifest.html\s+\\b %s\s+<!--\s+' + \
11 r'Provide an overview of your package.\s+-->\s+-->\s+[^\*]*\*/'
13 RVIZ_CLASS_DEFAULTS = yaml.safe_load(open(PKG_PATH +
'/data/rviz_class_defaults.yaml'))
14 RVIZ_GLOBAL_DEFAULTS = yaml.safe_load(open(PKG_PATH +
'/data/rviz_global_defaults.yaml'))
15 ROBOT_MODEL_LINK_DEFAULTS = {
'Alpha': 1,
'Show Axes':
False,
'Show Trail':
False,
'Value':
True}
20 cfgs = package.dynamic_reconfigs
23 pkg_list = {
'dynamic_reconfigure'}
24 package.manifest.add_packages(pkg_list, pkg_list)
25 package.cmake.section_check(cfgs,
'generate_dynamic_reconfigure_options',
'')
26 package.cmake.section_check(pkg_list,
'find_package',
'COMPONENTS')
34 mainpage_pattern = re.compile(MAINPAGE_S % package.name)
35 for fn
in package.misc_files:
36 if 'mainpage.dox' in fn:
37 full_path = os.path.join(package.root, fn)
38 s = open(full_path).read()
39 if mainpage_pattern.match(s):
46 if not package.is_metapackage():
49 if require_matching_name:
50 parent_path = os.path.abspath(os.path.join(package.root,
'..'))
52 if os.path.split(parent_path)[1] != package.name:
55 if sibling_packages
is None:
56 sibling_packages = get_sibling_packages(package)
58 existing_sub_packages = package.manifest.get_packages(
'run')
59 package.manifest.add_packages(set(), sibling_packages, prefer_depend_tag=
False)
61 if package.manifest.format == 1:
62 pkg_type =
'run_depend'
64 pkg_type =
'exec_depend'
66 package.manifest.remove_dependencies(pkg_type, existing_sub_packages - sibling_packages)
69 package.cmake.section_check([],
'catkin_metapackage', zero_okay=
True)
72 if not package.manifest.is_metapackage():
73 export_tag = package.manifest.get_export_tag()
74 meta_tag = package.manifest.tree.createElement(
'metapackage')
75 package.manifest.insert_new_tag_inside_another(export_tag, meta_tag)
80 package.manifest.changed =
True
81 for config
in package.plugin_configs:
87 for rviz_config
in package.rviz_configs:
88 for config
in rviz_config.get_class_dicts():
89 the_defaults = RVIZ_CLASS_DEFAULTS.get(config[
'Class'], {})
90 if dictionary_subtract(config, the_defaults):
91 rviz_config.changed =
True
94 if config[
'Class'] ==
'rviz_default_plugins/RobotModel':
95 for k, v
in list(config.get(
'Links', {}).items()):
96 if not isinstance(v, dict):
98 if dictionary_subtract(config[
'Links'][k], ROBOT_MODEL_LINK_DEFAULTS):
99 rviz_config.changed =
True
100 if not config[
'Links'][k]:
101 del config[
'Links'][k]
103 if config[
'Class'] ==
'rviz/Camera' and 'Visibility' in config:
104 visibility = config[
'Visibility']
105 for key
in list(visibility.keys()):
107 rviz_config.changed =
True
110 del config[
'Visibility']
111 if dictionary_subtract(rviz_config.contents, RVIZ_GLOBAL_DEFAULTS):
112 rviz_config.changed =
True