Files
qt-migration-legatus/qt5-before/dlbo/Lts/Projects/apps.schema.json
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

130 lines
3.9 KiB
JSON

{
"$schema": "http://json-schema.org/draft/2019-09/schema#",
"$id": "apps.json",
"title": "apps.json Schema",
"description": "Schema for apps.json of Project Plugins - Created by Mike Wille, NLE, 2020-08-27",
"type": "object",
"properties":
{
"Project":
{
"type": "string",
"minLength": 3,
"uniqueItems": true
},
"AVMSkipScreen":
{
"type": "integer",
"description": "The screen number (determined by Qt's screens() method) to not allow a BaseLayout to exist (1 - x), screen 0 is not allowed, as this is the main screen. Otherwise the main screen will be selected randomly.",
"minimum": 1
},
"LoginPlugin": { "$ref": "#/definitions/Plugin" },
"Apps":
{
"type": "array",
"description": "Apps that can be started from this project",
"minItems": 1,
"items":
{
"type": "object",
"properties":
{
"Active":
{
"type": "boolean"
},
"Visible":
{
"type": "boolean",
"description": "If set to true, the app can be visible in the Apps menu and in the App Chooser"
},
"Id":
{
"type": "integer",
"uniqueItems": true,
"minimum": 0
},
"ACLs":
{
"type": "array",
"minItems": 1,
"items":
{
"type": "integer",
"minimum": 0,
"maximum": 999999999
},
"uniqueItems": true
},
"AppName":
{
"type": "string",
"uniqueItems": true,
"minLength": 2
},
"Options":
{
"type": "object",
"description": "Defines how an app behaves and what it consists of",
"properties":
{
"Payloads":
{
"type": "object",
"description": "Plugins of which 'executePayload' is called from before adding actions, creating the BaseLayout, etc.",
"properties":
{
"Plugins": { "$ref": "#/definitions/Plugins" }
},
"required": [ "Plugins" ]
},
"Actions":
{
"type": "object",
"description": "Plugins of which 'getActions' is called from and adds the returned actions to the menu",
"properties":
{
"Plugins": { "$ref": "#/definitions/Plugins" }
},
"required": [ "Plugins" ]
},
"Main":
{
"type": "object",
"description": "Plugins that must be located in the Main Layout Tab. Check your plugin info for the 'main' flag to process it where you create actions or create dialogs - should be only one plugin, otherwise the main tab would be sub-tabbed",
"properties":
{
"Plugins": { "$ref": "#/definitions/Plugins" }
},
"required": [ "Plugins" ]
}
},
"required": [ "Actions" ]
}
},
"additionalProperties": false,
"required": [ "Id", "AppName", "Options" ]
}
}
},
"additionalProperties": false,
"required": [ "Project", "Apps" ],
"definitions":
{
"Plugins":
{
"type": "array",
"items": { "$ref": "#/definitions/Plugin" },
"minItems": 1
},
"Plugin":
{
"type": "string",
"description": "The IIDs of Gui Plugins (excluding 'gui:3:' - see *_gui_plugin.h) to load. Starting with the 3 character parent (service) id, and optionally followed by a dot an an at least 3 characters long Plugin identifier",
"examples": [ "exm", "exm.watch", "opm", "pre.script.edit" ],
"pattern": "^[a-z]{3}\\.[a-z.]{3,}|^[a-z^.]{3,}$"
}
}
}