@@ -129,25 +129,22 @@ def parse_command_line(argv):
129
129
130
130
def get_depmods (vinca_conf , pkg_name ):
131
131
depmods = vinca_conf ["depmods" ].get (pkg_name , {})
132
- rm_deps , add_deps = {"build" : set (), "run" : set ()}, {"build" : set (), "run" : set ()}
133
-
134
- if depmods .get ("remove" ):
135
- for el in depmods ["remove" ]:
136
- if type (el ) is str :
137
- rm_deps ["build" ].add (el )
138
- rm_deps ["run" ].add (el )
139
- elif type (el ) == dict :
140
- rm_deps ["build" ] = set (el .get ("build" , []))
141
- rm_deps ["run" ] = set (el .get ("run" , []))
142
-
143
- if depmods .get ("add" ):
144
- for el in depmods ["add" ]:
145
- if type (el ) is str :
146
- add_deps ["build" ].add (el )
147
- add_deps ["run" ].add (el )
148
- elif type (el ) == dict :
149
- add_deps ["build" ] = set (el .get ("build" , []))
150
- add_deps ["run" ] = set (el .get ("run" , []))
132
+ rm_deps , add_deps = {"build" : [], "host" : [], "run" : []}, {"build" : [], "host" : [], "run" : []}
133
+
134
+ for dep_type in ["build" , "host" , "run" ]:
135
+ if depmods .get ("remove_" + dep_type ):
136
+ for el in depmods ["remove_" + dep_type ]:
137
+ if isinstance (el , dict ):
138
+ rm_deps [dep_type ].append (dict (el ))
139
+ else :
140
+ rm_deps [dep_type ].append (el )
141
+
142
+ if depmods .get ("add_" + dep_type ):
143
+ for el in depmods ["add_" + dep_type ]:
144
+ if isinstance (el , dict ):
145
+ add_deps [dep_type ].append (dict (el ))
146
+ else :
147
+ add_deps [dep_type ].append (el )
151
148
152
149
return rm_deps , add_deps
153
150
@@ -225,23 +222,6 @@ def generate_output(pkg_shortname, vinca_conf, distro, version):
225
222
"build" : {"script" : "" },
226
223
}
227
224
228
- if pkg_shortname == "eigenpy" or pkg_shortname .replace ("-" , "_" ) == "slam_toolbox" :
229
- output ["requirements" ]["build" ] += ["pkg-config" ]
230
- if pkg_shortname .replace ("-" , "_" ) == "ur_client_library" :
231
- output ["requirements" ]["host" ] += ["ros-noetic-catkin" ]
232
- if pkg_shortname .replace ("-" , "_" ) == "mqtt_bridge" :
233
- output ["requirements" ]["run" ] += ["inject" , "msgpack-python" , "paho-mqtt" , "pymongo" ]
234
- if pkg_shortname .replace ("-" , "_" ) == "sainsmart_relay_usb" or pkg_shortname .replace ("-" , "_" ) == "kobuki_ftdi" or pkg_shortname .replace ("-" , "_" ) == "sick_tim" or pkg_shortname == "mrpt2" :
235
- output ["requirements" ]["build" ] += [{"sel(linux)" : "{{ cdt('libudev') }}" }, {"sel(linux)" : "{{ cdt('libudev-devel') }}" }]
236
- if pkg_shortname == "mrpt2" :
237
- output ["requirements" ]["host" ] += ["tinyxml2" , "boost-cpp" , "jsoncpp" , "gtest" , "boost" , "libdc1394" , "xorg-libxcomposite" , "ros-noetic-octomap" , "libftdi" ]
238
- output ["requirements" ]["run" ] += ["tinyxml2" , "boost-cpp" , "jsoncpp" , "gtest" , "boost" , "libdc1394" , "xorg-libxcomposite" , "ros-noetic-octomap" , "libftdi" ]
239
- output ["requirements" ]["build" ] += [{"sel(linux)" : "{{ cdt('libxcomposite-devel') }}" }]
240
- if pkg_shortname .replace ("-" , "_" ) == "jsk_recognition_utils" :
241
- output ["requirements" ]["host" ] += ["glew" ]
242
- output ["requirements" ]["run" ] += ["glew" ]
243
-
244
-
245
225
pkg = catkin_pkg .package .parse_package_string (
246
226
distro .get_release_package_xml (pkg_shortname )
247
227
)
@@ -287,7 +267,6 @@ def generate_output(pkg_shortname, vinca_conf, distro, version):
287
267
build_deps += pkg .buildtool_export_depends
288
268
build_deps += pkg .test_depends
289
269
build_deps = [d .name for d in build_deps if d .evaluated_condition ]
290
- build_deps = (set (build_deps ) - rm_deps ["build" ]) | add_deps ["build" ]
291
270
292
271
for dep in build_deps :
293
272
if dep in ["REQUIRE_OPENGL" , "REQUIRE_GL" ]:
@@ -305,7 +284,6 @@ def generate_output(pkg_shortname, vinca_conf, distro, version):
305
284
run_deps += pkg .build_export_depends
306
285
run_deps += pkg .buildtool_export_depends
307
286
run_deps = [d .name for d in run_deps if d .evaluated_condition ]
308
- run_deps = (set (run_deps ) - rm_deps ["run" ]) | add_deps ["run" ]
309
287
310
288
for dep in run_deps :
311
289
if dep in ["REQUIRE_OPENGL" , "REQUIRE_GL" ]:
@@ -318,8 +296,12 @@ def generate_output(pkg_shortname, vinca_conf, distro, version):
318
296
continue
319
297
output ["requirements" ]["run" ].extend (resolved_dep )
320
298
321
- output ["requirements" ]["run" ] = list (set (output ["requirements" ]["run" ]))
322
- output ["requirements" ]["host" ] = list (set (output ["requirements" ]["host" ]))
299
+ for dep_type in ["build" , "host" , "run" ]:
300
+ for dep in add_deps [dep_type ]:
301
+ output ["requirements" ][dep_type ].append (dep )
302
+ for dep in rm_deps [dep_type ]:
303
+ output ["requirements" ][dep_type ].remove (dep )
304
+
323
305
output ["requirements" ]["run" ] = sorted (output ["requirements" ]["run" ])
324
306
output ["requirements" ]["host" ] = sorted (output ["requirements" ]["host" ])
325
307
@@ -403,6 +385,12 @@ def generate_output(pkg_shortname, vinca_conf, distro, version):
403
385
{"sel(linux)" : "{{ cdt('libxxf86vm') }}" },
404
386
]
405
387
388
+ # remove duplicates
389
+ for dep_type in ["build" , "host" , "run" ]:
390
+ tmp_nonduplicate = []
391
+ [tmp_nonduplicate .append (x ) for x in output ["requirements" ][dep_type ] if x not in tmp_nonduplicate ]
392
+ output ["requirements" ][dep_type ] = tmp_nonduplicate
393
+
406
394
return output
407
395
408
396
0 commit comments