Compare commits

...
Author SHA1 Message Date
berrux-dev 78253c60f4 added DB 2026-10-06 19:02:40 +02:00
berrux-dev 1e07bf76ba Add ddsview topic-type-plugin deps (39 *TopicTypePlugin.so) to GROUP6
Runtime-loaded via LtsPluginLoader, not CMake link deps of ddsview; without them its Data/Function topic lists are empty in a group-only build.
2026-10-05 19:44:37 +02:00
2 changed files with 94 additions and 10 deletions

No files matched your search

@@ -958,6 +958,48 @@ GROUP6_TARGETS=(
tDataSampleReceiver
DateTimeSyncer
ddsview
# ddsview runtime topic-type plugins (39 *TopicTypePlugin.so). Not CMake link deps of
# ddsview (loaded at runtime via LtsPluginLoader), so `make ddsview` alone skips them and
# ddsview shows empty Data/Function topic lists. Built here alongside ddsview.
aesTopicTypePlugin
almTopicTypePlugin
asmTopicTypePlugin
avmTopicTypePlugin
bldTopicTypePlugin
cesTopicTypePlugin
cmoTopicTypePlugin
codTopicTypePlugin
coreTopicTypePlugin
eemTopicTypePlugin
escTopicTypePlugin
esmTopicTypePlugin
evlTopicTypePlugin
exmTopicTypePlugin
flmTopicTypePlugin
fltTopicTypePlugin
gimTopicTypePlugin
gnaTopicTypePlugin
ismTopicTypePlugin
mdmTopicTypePlugin
mrkTopicTypePlugin
msgTopicTypePlugin
nmeTopicTypePlugin
nomTopicTypePlugin
obdTopicTypePlugin
opmTopicTypePlugin
oscTopicTypePlugin
ossTopicTypePlugin
pdmTopicTypePlugin
ppmTopicTypePlugin
preTopicTypePlugin
repTopicTypePlugin
scmTopicTypePlugin
somTopicTypePlugin
srpTopicTypePlugin
tabTopicTypePlugin
tabocTopicTypePlugin
tgtTopicTypePlugin
whgTopicTypePlugin
displayPanelSimulator
LicenceEditor
localDomainFinder
@@ -1174,6 +1216,45 @@ run_build_group() {
fi
}
# Ensure a local PostgreSQL DB is available for the DB tools (dbUpdate, dbAdministration, ...).
# Checks whether the server is pre-installed (baked into the image); if not, installs
# postgresql-18. Then maps EXCDBS01/EXCADB01 -> 127.0.0.1 and starts the cluster, seeding
# the roles (postgres, ctc_sv) + databases (lts_ets_pro, dbAdmin) the tools connect with.
# Entirely non-fatal: a DB problem must never abort the build.
ensure_database() {
log_info "Checking for a pre-installed PostgreSQL server..."
if ls /usr/lib/postgresql/*/bin/postgres >/dev/null 2>&1; then
log_info "PostgreSQL server already installed - skipping apt install"
else
log_info "PostgreSQL server not found - installing postgresql-18"
apt-get update -qq || true
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq postgresql-18 >/dev/null 2>&1 || true
fi
# Map the app's DB hostnames to the local server + start the cluster (idempotent).
grep -qE 'EXCDBS01' /etc/hosts || echo '127.0.0.1 EXCDBS01 EXCADB01' >> /etc/hosts
pg_ctlcluster 18 main start >/dev/null 2>&1 || true
sleep 1
# Ensure the roles + databases the DB tools use (idempotent; login password is 'postgres').
su postgres -c "psql -c \"ALTER USER postgres PASSWORD 'postgres'\"" >/dev/null 2>&1 || true
if ! su postgres -c "psql -tAc \"SELECT 1 FROM pg_roles WHERE rolname='ctc_sv'\"" 2>/dev/null | grep -q 1; then
su postgres -c "psql -c \"CREATE ROLE ctc_sv LOGIN PASSWORD 'postgres' CREATEDB\"" >/dev/null 2>&1 || true
fi
if ! su postgres -c "psql -tAc \"SELECT 1 FROM pg_database WHERE datname='lts_ets_pro'\"" 2>/dev/null | grep -q 1; then
su postgres -c "createdb -O postgres lts_ets_pro" >/dev/null 2>&1 || true
fi
if ! su postgres -c "psql -tAc \"SELECT 1 FROM pg_database WHERE datname='dbAdmin'\"" 2>/dev/null | grep -q 1; then
su postgres -c "createdb -O postgres dbAdmin" >/dev/null 2>&1 || true
fi
if pg_isready -h 127.0.0.1 -p 5432 >/dev/null 2>&1; then
log_info "PostgreSQL ready on 127.0.0.1:5432 (roles postgres/ctc_sv, dbs lts_ets_pro/dbAdmin)"
else
log_info "WARNING: PostgreSQL not ready on 127.0.0.1:5432 (DB tools may not connect; install may have failed)"
fi
}
if [[ "${USE_PREBUILT_IMAGE}" == "ON" ]]; then
log_info "Using prebuilt Docker image - skipping apt-get install and Qt6 package installation"
else
@@ -1186,6 +1267,9 @@ else
install_qt6_packages
fi
# Ensure the local PostgreSQL DB (dbUpdate / dbAdministration, ...) is available before the build.
ensure_database
export RTI_LICENSE_FILE=/workspace/rti_license.dat
export QT_QPA_PLATFORM=offscreen
@@ -101,34 +101,34 @@ if(BUILD_TESTING)
endif()
# Exclude LTS Tools tests when corresponding targets aren't available
if(NOT TARGET DBAdministration)
if(NOT TARGET dbAdministration)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DBAdministration\\.cpp")
endif()
if(NOT TARGET DBOperatorSettingsRemover)
if(NOT TARGET SettingsRemover)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DBOperatorSettingsRemover\\.cpp")
endif()
if(NOT TARGET DBUpdate)
if(NOT TARGET dbUpdate)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DBUpdate\\.cpp")
endif()
if(NOT TARGET DataSampleGenerator)
if(NOT TARGET tDataSampleGenerator)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DataSampleGenerator\\.cpp")
endif()
if(NOT TARGET DataSampleReceiver)
if(NOT TARGET tDataSampleReceiver)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DataSampleReceiver\\.cpp")
endif()
if(NOT TARGET DateTimeSyncer)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DateTimeSyncer\\.cpp")
endif()
if(NOT TARGET DdsView)
if(NOT TARGET ddsview)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DdsView\\.cpp")
endif()
if(NOT TARGET DotMatrixDisplay)
if(NOT TARGET displayPanelSimulator)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_DotMatrixDisplay\\.cpp")
endif()
if(NOT TARGET LicenceEditor)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_LicenceEditor\\.cpp")
endif()
if(NOT TARGET LocalDomainFinder)
if(NOT TARGET localDomainFinder)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_LocalDomainFinder\\.cpp")
endif()
if(NOT TARGET LogViewer)
@@ -160,10 +160,10 @@ if(BUILD_TESTING)
if(NOT TARGET ProjectSettingsEditor)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_ProjectSettingsEditor\\.cpp")
endif()
if(NOT TARGET QLedLine)
if(NOT TARGET qledline)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_QLedLine\\.cpp")
endif()
if(NOT TARGET QLedMatrix)
if(NOT TARGET qledmatrix)
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_QLedMatrix\\.cpp")
endif()
# Group 9 (R,S,T,V,W) exclusions