Rewrite the build README without excluded-module sections

Scope is now described only as what the release build contains
(TetraIF, Z/src, Lts/Common, TrainingAreaBase). All steps (image,
compile, tests, DEB packaging, Jenkins) kept and refreshed; the
license note is reduced to 'no license file is required'.
This commit is contained in:
berrux-dev committed 2026-10-14 20:40:05 +02:00
1 parent a17b431669
commit 676ae05335
1 file changed
+26 -21
+26 -21
View File
@@ -1,30 +1,31 @@
# qt6-migrated-legatus — compile and run (step by step)
# qt6-migrated-legatus — build and run, step by step
Build guide for the Qt6-migrated legatus tree on the release
**validation-scope** branch. Everything runs inside a prebuilt Docker
image; the host only needs Docker.
## Scope and layout
## Scope
The release scope built by `new_docker_build.sh` is:
What `new_docker_build.sh` builds and packages:
| Area | Contents |
|---|---|
| `TetraIF/` | `CoPrtCnv`, `LogView`, `PrtCnv` (+ `unit-test/` — see below) |
| `TetraIF/` | `CoPrtCnv`, `LogView`, `PrtCnv` (+ `unit-test/` — see Step 3) |
| `Z/src/` | NGL application/core library stack (NGLLogger, nglcoreapplication, …) |
| `Lts/Common/` | LTS common libraries (LtsCoordTrans, LtsLicence, …) |
| `Lts/Proxies/TrainingAreaBase` | built as a dependency of TetraIF |
| `Lts/Common/` | LTS common libraries (LtsCoordTrans, LtsLicence, LtsUtils, …) |
| `Lts/Proxies/TrainingAreaBase` | `tabTelegrams` library, built as a TetraIF dependency |
Useful entries at the tree root:
Entries at the tree root:
- `new_docker_build.sh` — the build driver (image build, compile, ctest, DEB packaging)
- `new_docker_build.sh` — build driver (image build, compile, ctest, DEB packaging)
- `Dockerfile` — recipe of the prebuilt build image (Ubuntu 26.04 + Qt 6.10.2 + deps)
- `rpmbuild/make_rpm_ubuntu26.py` — in-tree DEB package producer (self-contained)
- `jenkins-ci-rme/` — in-tree copy of the Jenkins CI flow (see its own `README.md`)
- `build4/` — build tree, created by the driver (git-ignored scratch area)
Toolchain inside the image: **Ubuntu 26.04, GCC 15.2.0, Qt 6.10.2**
(`/opt/Qt/6.10.2/gcc_64`), C++17, Release build.
(`/opt/Qt/6.10.2/gcc_64`), C++17, Release build. No license file is
required.
## Prerequisites
@@ -35,14 +36,12 @@ Toolchain inside the image: **Ubuntu 26.04, GCC 15.2.0, Qt 6.10.2**
`new_docker_build.sh` invokes Docker, so running the driver as-is
satisfies this.
No license file is required: the RTI Connext DDS modules (the only
consumers of an RTI license) are not part of the release scope and are
never compiled on this branch.
`new_docker_build.sh` resolves the pipeline root from its own location
(override with the exported `MIGRATE_PIPELINE_ROOT` or the `.envrc` in
this directory).
The driver resolves the pipeline root from its own location (override
with the exported `MIGRATE_PIPELINE_ROOT` or the `.envrc` in this
directory).
All commands below are run **from this directory** (`qt6-migrated-legatus/`).
All commands below are run **from this directory**
(`qt6-migrated-legatus/`).
## Step 1 — Build the prebuilt Docker image (once)
@@ -70,7 +69,7 @@ To remove it later:
What the driver does inside the container:
1. `rm -rf build4 && mkdir build4 && cd build4` (fresh build tree)
2. Configure with CMake — the mandatory flags:
2. Configure with CMake:
```bash
cmake .. \
@@ -84,7 +83,7 @@ What the driver does inside the container:
(`RELEASE_BUILD=ON` selects the release scope; everything else is at
its CMake default.)
3. `make -j8` the release-scope targets (TetraIF modules, Z stack,
Lts/Common libs, all test executables — the list is
Lts/Common libraries, all test executables — the list is
`RELEASE_BUILD_TARGETS` in `new_docker_build.sh`).
4. Run **ctest** (see Step 3).
@@ -96,7 +95,13 @@ Output to inspect after the run:
- `build4/lib/` — shared libraries
To rebuild incrementally without a fresh tree, run `make` directly in an
interactive container (Step 4).
interactive container against the existing `build4/`:
```bash
docker run --rm -it -v /path/to/pipeline-root:/workspace legatus-qt6:1.0 \
bash -c 'cd /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/build4 \
&& make -j8'
```
## Step 3 — Run the tests
@@ -145,7 +150,7 @@ ctest --output-on-failure'
Each QtTest binary accepts a single slot name to run just one test,
e.g. `./bin/coprtcnv_unit_test radioTelegramFragmentationRoundtrip`.
### 3.4 TetraIF unit tests (this tree, `TetraIF/unit-test/`)
### 3.4 TetraIF unit tests (`TetraIF/unit-test/`)
| Test | Module covered | Note |
|---|---|---|
@@ -182,7 +187,7 @@ DEBs in `${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/`:
| `qt6-release-sources_*` | release-scope sources |
| `qt6-release-ctest-runtime_*` | test executables under `/usr/lib/ctest/` (incl. the TetraIF unit tests) |
| `qt6-release-ctest-sources_*` | test sources (files with "test" in the name under the release dirs, incl. `TetraIF/unit-test/*.cpp`) |
| `qt6-release-build-pipeline_*` | the in-tree pipeline files (`new_docker_build.sh`, `Dockerfile`, `rpmbuild/`, `jenkins-ci-rme/`) under `/usr/src/pipeline/` |
| `qt6-release-build-pipeline_*` | the in-tree pipeline files (`new_docker_build.sh`, `Dockerfile`, `CMakeLists.txt`, `rpmbuild/`, `jenkins-ci-rme/`) under `/usr/src/pipeline/` |
Verify a package: