From a6db7de731c00ae313d27b72434359f3130ff3e3 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:24:42 +0200 Subject: [PATCH] Update types regeneration script homing path (#5093) (#5107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: JesusPoderoso (cherry picked from commit 47cb38c33cd0b6ee8f2acb7bf0f6397af26be921) # Conflicts: # utils/scripts/update_generated_code_from_idl.sh Co-authored-by: Jesús Poderoso <120394830+JesusPoderoso@users.noreply.github.com> --- .../scripts/update_generated_code_from_idl.sh | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100755 utils/scripts/update_generated_code_from_idl.sh diff --git a/utils/scripts/update_generated_code_from_idl.sh b/utils/scripts/update_generated_code_from_idl.sh new file mode 100755 index 00000000000..f06e8444124 --- /dev/null +++ b/utils/scripts/update_generated_code_from_idl.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +files_to_exclude=( + './include/fastrtps/types/*' + ) + +files_needing_typeobject=( + './examples/cpp/dds/ContentFilteredTopicExample/HelloWorld.idl' + './test/unittest/dynamic_types/idl/Basic.idl' + './test/unittest/dynamic_types/idl/new_features_4_2.idl' + './test/unittest/dynamic_types/idl/Test.idl' + './test/unittest/xtypes/idl/Types.idl' + './test/unittest/xtypes/idl/WideEnum.idl' + './test/xtypes/idl/Types.idl' + ) + +files_needing_case_sensitive=( + './test/unittest/dynamic_types/idl/new_features_4_2.idl' + ) + +files_needing_output_dir=( + './include/fastdds/statistics/types.idl|../../../src/cpp/statistics/types' + ) + + +yellow='\E[1;33m' +textreset='\E[1;0m' + +current_dir=$(git rev-parse --show-toplevel) + +if [[ ! "$(pwd -P)" -ef "$current_dir" ]]; then + echo -e "${red}This script must be executed in the repository root directory.${textreset}" + exit -1 +fi + +if [[ -z "$(which fastddsgen)" ]]; then + echo "Cannot find fastddsgen. Please, include it in PATH environment variable" + exit -1 +fi + +readarray -d '' idl_files < <(find . -iname \*.idl -print0) + +for del in ${files_to_exclude[@]} +do + idl_files=("${idl_files[@]/$del}") +done + +idl_files=(${idl_files[@]/$files_to_exclude}) + +ret_value=0 + +for idl_file in "${idl_files[@]}"; do + idl_dir=$(dirname "$idl_file") + file_from_gen=$(basename "$idl_file") + + echo -e "Processing ${yellow}$idl_file${textreset}" + + cd "${idl_dir}" + + # Detect if needs type_object. + [[ ${files_needing_typeobject[*]} =~ $idl_file ]] && to_arg='-typeobject' || to_arg='' + + # Detect if needs case sensitive. + [[ ${files_needing_case_sensitive[*]} =~ $idl_file ]] && cs_arg='-cs' || cs_arg='' + + # Detect if needs output directory. + od_arg="" + for od_entry in ${files_needing_output_dir[@]}; do + if [[ $od_entry = $idl_file\|* ]]; then + od_entry_split=(${od_entry//\|/ }) + od_arg="-d ${od_entry_split[1]}" + break + fi + done + + fastddsgen -replace $to_arg $cs_arg $od_arg "$file_from_gen" + + if [[ $? != 0 ]]; then + ret_value=-1 + fi + + cd - +done + +cd utils/scripts + +exit $ret_value