Files
qt-migration-legatus/qt5-before/dlbo/Lts/Services/skeleton/generate_service_stub.sh
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

111 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
#
# @RDE_HEADER@
# $Id$
# $HeadURL$
# $Author$
#
svc_name_abbr=""
svc_name_long=""
usage()
{
echo "usage: $0 -l <SvcName long> -s <SvcName short>"
echo " -l <SvcName long> : ServiceName in CamelCase "
echo " -s <SvcName short>: Abbreviation of ServiceName with 3 letters"
}
while getopts "s:l:" opt "$@"; do
case $opt in
l)
svc_name_long=$OPTARG
;;
s)
svc_name_abbr=$OPTARG
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 1
;;
:)
echo "Option -$OPTARG requires an argument."
usage
exit 1
;;
esac
done
if [ -z $svc_name_long ]; then
echo "Parameter -l is required"
usage
exit 1
fi
if [ -z $svc_name_abbr ]; then
echo "Parameter -s is required"
usage
exit 1
fi
echo "ServiceName (long): ${svc_name_long} "
echo "ServiceName (Abbr): ${svc_name_abbr} "
svc_lower=${svc_name_abbr,,}
svc_upper=${svc_name_abbr^^}
svc_cc=${svc_lower~}
echo "svc lower (Abbr): ${svc_lower} "
echo "svc upper (Abbr): ${svc_upper} "
echo "svc CamelCase (Abbr): ${svc_cc} "
# copy skeleton to SvcDirectory
svc_dir=${svc_name_long}
if [ -d ../${svc_dir} ]; then
echo "Directory ${svc_dir} already exists. Remove it and restart the script"
exit 2
rm -r ${svc_dir}
fi
cp -r ./base ../${svc_dir}
echo "Copied files to ${svc_dir}."
cd ../${svc_dir}
# mv files with xxx_* to svc_lower_*
#for i in find . -name 'xxx_*' -exec ls {} \;
# Todo: sed for renaming? xxx -> ${svc_lower}, wherever it occurs
for old_file in `find . -name 'xxx_*' `; do
new_file="${svc_lower}${old_file:5}"
echo "-> Rename file ${old_file} to ${new_file}"
mv ${old_file} ./${new_file}
done
mv ./log4cxx_xxx.props ./log4cxx_${svc_lower}.props
# search & replace XXX/Xxx/xxx/XxxXxxXxx
for file in `find . -type f -name '*' `; do
echo "-> Replace all Xxx/xxx/XXX and namespace in file ${file}"
sed -i "s/XxxXxxXxx/${svc_name_long}/g" ${file}
sed -i "s/XXX/${svc_upper}/g" ${file}
sed -i "s/Xxx/${svc_cc}/g" ${file}
sed -i "s/xxx/${svc_lower}/g" ${file}
done
pwd=`pwd`
# echo what to do next:
echo "------------------------"
echo "Next steps:"
echo "------------------------"
echo "=> Copy xml service file (${svc_lower}_service.xml) from EA into '${svc_dir}'"
echo " cp ${svc_lower}_service.xml ${pwd}/"
echo ""
echo "=> Include '${svc_dir}' in CMakeLists.txt (in folder 'Services') by adding the following line:"
echo " ADD_SUBDIRECTORY(${svc_name_long})"
echo "------------------------"