microRTPS: generate_microRTPS_bridge: run fastrtsgen only once for all files

Reducing the generation time to a 4th of the time (!!)
This commit is contained in:
TSC21
2021-07-17 18:23:30 +02:00
committed by Nuno Marques
parent a8a56a03a4
commit ffa70ac0fd
+4 -1
View File
@@ -357,13 +357,16 @@ def generate_agent(out_dir):
if ros2_distro and ros2_distro in ['dashing', 'eloquent', 'foxy', 'galactic', 'rolling'] and fastrtpsgen_version >= version.Version("1.0.4"): if ros2_distro and ros2_distro in ['dashing', 'eloquent', 'foxy', 'galactic', 'rolling'] and fastrtpsgen_version >= version.Version("1.0.4"):
gen_ros2_typename = "-typeros2 " gen_ros2_typename = "-typeros2 "
idl_files = []
for idl_file in glob.glob(os.path.join(idl_dir, "*.idl")): for idl_file in glob.glob(os.path.join(idl_dir, "*.idl")):
# Only run the generator for the topics that are actually marked to be # Only run the generator for the topics that are actually marked to be
# used by the bridge # used by the bridge
if os.path.splitext(os.path.basename(idl_file))[0] in classifier.msg_id_map: if os.path.splitext(os.path.basename(idl_file))[0] in classifier.msg_id_map:
idl_files.append(idl_file)
try: try:
ret = subprocess.check_call(fastrtpsgen_path + " -d " + out_dir + ret = subprocess.check_call(fastrtpsgen_path + " -d " + out_dir +
"/fastrtpsgen -example x64Linux2.6gcc " + gen_ros2_typename + fastrtpsgen_include + idl_file, shell=True) "/fastrtpsgen -example x64Linux2.6gcc " + gen_ros2_typename + fastrtpsgen_include + " ".join(str(idl_file) for idl_file in idl_files), shell=True)
except OSError: except OSError:
raise raise