40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
Implement a Qt6 replacement for the legacy Qt5/Grantlee5 CodeGen parser and integrate it into the Qt6 build flow.
|
|
|
|
Context:
|
|
- Legacy parser A (Qt5 + Grantlee5):
|
|
`./qt-migration-legatus/qt5-before/qt5-legatus-legacy/Lts/Common/CodeGen`
|
|
- Replacement parser B (Qt6 + KTextTemplate):
|
|
`./qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/CodeGen`
|
|
- Docker build entry:
|
|
`./app/Dockerfile`
|
|
- Relevant macros:
|
|
- `./qt-migration-legatus/qt5-before/qt5-legacy-legatus/cmake/MacroCodeGenIdl.cmake`
|
|
- `./qt-migration-legatus/qt6-after/qt6-migrated-legatus/cmake/MacroCodeGenIdl.cmake`
|
|
|
|
Goals:
|
|
1. Analyze how A is built and invoked in the Qt5 flow.
|
|
2. Make B build reproducibly via `./app/Dockerfile` with Qt6 + KTextTemplate.
|
|
3. Find all relevant `*grantlee*` input files and test B against all of them.
|
|
4. Fix/extend B only as needed to support real repository inputs.
|
|
5. Integrate B into the Qt6 codegen/build flow based on how A is invoked.
|
|
6. Update the relevant CMake/macro wiring.
|
|
7. Preserve existing Qt6 migration work.
|
|
|
|
Requirements:
|
|
- Use Docker for building B.
|
|
- Use Docker to create and remove folders/files
|
|
- Inspect real call sites before changing integration.
|
|
- Keep changes small and reviewable.
|
|
- Touch Qt5-side files only if needed for analysis/comparison/minimal build clarity.
|
|
- If Grantlee behavior cannot be matched exactly in KTextTemplate, implement the best practical transitional solution and document remaining gaps.
|
|
- `./qt-migration-legatus/qt5-before/qt5-legacy-legatus` is read-only
|
|
|
|
Done when:
|
|
- B builds successfully through `./app/Dockerfile`
|
|
- all relevant `*grantlee*` inputs were tested with B
|
|
- Qt6 build flow uses B instead of Grantlee5 dependency
|
|
- macro/CMake integration is updated
|
|
- remaining incompatibilities are documented
|
|
- provide a concise summary of changed files, test results, and open gaps
|
|
- commit and push in `./qt-migration-legatus/qt6-after/qt6-migrated-legatus` after user feedback
|