Close Schusstafel + KDChart plugin floors: cesPluginGeoPairing/OreOnlineReportsGuiPlugin in GROUP12 (presence-gated), image bakes KDChart
DDS member fixes (GeoPairing, OnlineReports charts/dialogs); FindKDChart/FindSchusstafel find-module wiring
This commit is contained in:
9 files changed
+160
-45
No files matched your search
@@ -680,6 +680,31 @@ RUN apt-get install -y -qq libkdreports-dev 2>/dev/null || \
|
||||
# includes resolve through the default /usr/local/include search path.
|
||||
RUN ln -sfn KDReports-qt6 /usr/local/include/KDReports
|
||||
|
||||
# KDChart (KDAB, MIT) from source: FindKDChart RETURN()s without it, which skips
|
||||
# OreOnlineReportsGuiPlugin (app requirement iid ore.onlinereports). The legacy
|
||||
# env had a KDChart 2.6.0 Qt5 RPM; the Qt6 build needs a Qt6-compatible release.
|
||||
# Pinned to the verified kdchart-3.0.0 tag (KDChart_QT6=true; needs the
|
||||
# Gui/Widgets/PrintSupport/Svg Qt6 components above). ECM
|
||||
# (extra-cmake-modules) is required: KDChart plain-include()s ECMGeneratePriFile
|
||||
# for Qt > 6.2 and never find_package(ECM)s.
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y -qq extra-cmake-modules && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
git clone --depth 1 --branch kdchart-3.0.0 https://github.com/KDAB/KDChart.git /tmp/KDChart && \
|
||||
cmake -S /tmp/KDChart -B /tmp/KDChart/build \
|
||||
-DKDChart_QT6=true -DKDChart_EXAMPLES=false -DKDChart_TESTS=false -DKDChart_DOCS=false \
|
||||
-DCMAKE_PREFIX_PATH=${QT_BASE_DIR}/${QT_VERSION}/${QT_ARCH_DIR} \
|
||||
-DCMAKE_MODULE_PATH=/usr/share/ECM/modules \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local && \
|
||||
cmake --build /tmp/KDChart/build -j$(nproc) && \
|
||||
cmake --install /tmp/KDChart/build && \
|
||||
ldconfig && \
|
||||
rm -rf /tmp/KDChart
|
||||
|
||||
# KDChart's Qt6 build installs headers under KDChart-qt6 (same -qt6 suffix
|
||||
# pattern as KDReports); legacy sources include the <KDChart/...> prefix.
|
||||
RUN ln -sfn KDChart-qt6 /usr/local/include/KDChart
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
EOF
|
||||
|
||||
@@ -1185,7 +1210,14 @@ GROUP11_TARGETS=(
|
||||
# without these the app reports "App Requirements check failed" at startup.
|
||||
# Plugin outputs land in build4/lib, the directory the loader scans.
|
||||
# Excluded (environmental floors, not migration regressions):
|
||||
# cesPluginGeoPairing - needs the external Schusstafel.h header (missing)
|
||||
# cesPluginGeoPairing - needs the external Schusstafel package (prebuilt
|
||||
# Schusstafel.h + libSchusstafel.so) at
|
||||
# external/Schusstafel (see resolve_schusstafel); it is
|
||||
# built when the package is present
|
||||
# OreOnlineReportsGuiPlugin - needs KDChart (open-source, KDAB) under
|
||||
# /usr/local; built from github.com/KDAB/KDChart tag
|
||||
# kdchart-3.0.0 with -DKDChart_QT6=true (see
|
||||
# resolve_kdchart), built when present
|
||||
# BldInfoGuiPlugin - links BuildingViewerCommon (dtEntity/OSG SDK absent)
|
||||
# BdvViewerGuiPlugin - links BuildingViewerCommon (same floor; CMake skips its
|
||||
# subdirectory when BuildingViewerCommon is not built)
|
||||
@@ -1297,6 +1329,7 @@ GROUP12_TARGETS=(
|
||||
OpmLoginGuiPlugin
|
||||
OpmOverviewGuiPlugin
|
||||
OpmSettingsGuiPlugin
|
||||
OreOnlineReportsGuiPlugin
|
||||
OscDataPlugin
|
||||
OscParticipantInfoGuiPlugin
|
||||
OscSystemGuiPlugin
|
||||
@@ -1381,6 +1414,7 @@ GROUP12_TARGETS=(
|
||||
cesPluginCES_NBC
|
||||
cesPluginCesBuildings
|
||||
cesPluginExplosions
|
||||
cesPluginGeoPairing
|
||||
cesPluginMineAreas
|
||||
cesPluginMineLayingArtillery
|
||||
cesPluginParticipantBuildings
|
||||
@@ -1528,6 +1562,7 @@ BUILD_AAR="${BUILD_AAR:-ON}"
|
||||
BUILD_RTI="${BUILD_RTI:-ON}"
|
||||
BUILD_GRANTLEE="${BUILD_GRANTLEE:-ON}"
|
||||
BUILD_ARCGIS="${BUILD_ARCGIS:-OFF}"
|
||||
WITH_SCHUSSTAFEL="${WITH_SCHUSSTAFEL:-ON}"
|
||||
BUILD_GROUP1="${BUILD_GROUP1:-ON}"
|
||||
BUILD_GROUP2="${BUILD_GROUP2:-ON}"
|
||||
BUILD_GROUP3="${BUILD_GROUP3:-ON}"
|
||||
@@ -1679,6 +1714,43 @@ resolve_xmlpatterns() {
|
||||
|
||||
resolve_xmlpatterns
|
||||
|
||||
# Schusstafel is a prebuilt external package (Schusstafel.h +
|
||||
# libSchusstafel.so) provided at external/Schusstafel, mirroring the ArcGIS
|
||||
# symlink pattern. cesPluginGeoPairing #includes Schusstafel.h unconditionally,
|
||||
# so without the package WITH_SCHUSSTAFEL stays OFF and the target is dropped
|
||||
# from Group 12 (environmental floor, not a migration regression).
|
||||
resolve_schusstafel() {
|
||||
WITH_SCHUSSTAFEL_EFFECTIVE="${WITH_SCHUSSTAFEL}"
|
||||
if [[ "${WITH_SCHUSSTAFEL_EFFECTIVE}" == "ON" ]]; then
|
||||
if ls /workspace/external/Schusstafel/Schusstafel.h >/dev/null 2>&1; then
|
||||
log_info "Schusstafel present at /workspace/external/Schusstafel - cesPluginGeoPairing will be built"
|
||||
else
|
||||
log_warn "Schusstafel not present at /workspace/external/Schusstafel - keeping WITH_SCHUSSTAFEL OFF (cesPluginGeoPairing stays unbuilt)"
|
||||
WITH_SCHUSSTAFEL_EFFECTIVE=OFF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# KDChart (KDAB, MIT) is an open-source Qt charts extension, installed under
|
||||
# /usr/local (header KDChart/kdchart_export.h + libkdchart.so; FindKDChart
|
||||
# searches /usr/local by default). The legacy env had a KDChart 2.6.0 Qt5 RPM;
|
||||
# the Qt6 build needs a Qt6-compatible release (e.g. github.com/KDAB/KDChart
|
||||
# tag kdchart-3.0.0 with -DKDChart_QT6=true). OreOnlineReportsGuiPlugin's
|
||||
# CMake RETURN()s when KDChart is absent, so without it the plugin (iid
|
||||
# ore.onlinereports) stays unbuilt - environmental floor.
|
||||
resolve_kdchart() {
|
||||
KDCHART_PRESENT=OFF
|
||||
if [[ -f /usr/local/include/KDChart/kdchart_export.h ]]; then
|
||||
KDCHART_PRESENT=ON
|
||||
log_info "KDChart present at /usr/local - OreOnlineReportsGuiPlugin will be built"
|
||||
else
|
||||
log_warn "KDChart not present at /usr/local - OreOnlineReportsGuiPlugin stays unbuilt (legacy KDChart 2.6.0 was a Qt5 RPM; build a Qt6-compatible release from source to close this floor)"
|
||||
fi
|
||||
}
|
||||
|
||||
resolve_schusstafel
|
||||
resolve_kdchart
|
||||
|
||||
cd /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus
|
||||
|
||||
rm -rf build4
|
||||
@@ -1704,6 +1776,7 @@ cmake .. \
|
||||
-DBUILD_PLUGINS_PARTICIPANT_ORG_CHART="${BUILD_WEBENGINE_PLUGINS}" \
|
||||
-DBUILD_PLUGINS_MSDL="${BUILD_XMLPATTERNS_EFFECTIVE}" \
|
||||
-DBUILD_PLUGINS_SAAB="${BUILD_XMLPATTERNS_EFFECTIVE}" \
|
||||
-DWITH_SCHUSSTAFEL="${WITH_SCHUSSTAFEL_EFFECTIVE}" \
|
||||
${CMAKE_BUILD_FLAGS:-} \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
@@ -1722,6 +1795,30 @@ read -r -a GROUP10_ARRAY <<< "${GROUP10_TARGETS}"
|
||||
read -r -a GROUP11_ARRAY <<< "${GROUP11_TARGETS}"
|
||||
read -r -a GROUP12_ARRAY <<< "${GROUP12_TARGETS}"
|
||||
|
||||
# cesPluginGeoPairing #includes Schusstafel.h unconditionally - drop it from
|
||||
# Group 12 when the Schusstafel package is unavailable (environmental floor).
|
||||
if [[ "${WITH_SCHUSSTAFEL_EFFECTIVE}" != "ON" ]]; then
|
||||
_GROUP12_ARRAY=()
|
||||
for _t in "${GROUP12_ARRAY[@]}"; do
|
||||
if [[ "${_t}" != "cesPluginGeoPairing" ]]; then
|
||||
_GROUP12_ARRAY+=("${_t}")
|
||||
fi
|
||||
done
|
||||
GROUP12_ARRAY=("${_GROUP12_ARRAY[@]}")
|
||||
fi
|
||||
|
||||
# OreOnlineReportsGuiPlugin RETURN()s at configure when KDChart is absent -
|
||||
# drop it from Group 12 in that case (environmental floor, see resolve_kdchart).
|
||||
if [[ "${KDCHART_PRESENT}" != "ON" ]]; then
|
||||
_GROUP12_ARRAY=()
|
||||
for _t in "${GROUP12_ARRAY[@]}"; do
|
||||
if [[ "${_t}" != "OreOnlineReportsGuiPlugin" ]]; then
|
||||
_GROUP12_ARRAY+=("${_t}")
|
||||
fi
|
||||
done
|
||||
GROUP12_ARRAY=("${_GROUP12_ARRAY[@]}")
|
||||
fi
|
||||
|
||||
if [[ "${TESTS_ONLY}" != "ON" ]]; then
|
||||
if [[ "${BUILD_VIEWER_ONLY}" == "ON" ]]; then
|
||||
log_info "BUILD_VIEWER_ONLY enabled - skipping Groups 1-4, building only Viewer module targets"
|
||||
|
||||
Reference in new issue
Block a user