Skip to content

Build & generator cleanup: drop Qt5 wrapper fallbacks, switch CI to Qt 6.10, normalize macOS includes, add qmake toggles, and regenerate wrappers in CI#313

Merged
usiems merged 14 commits intoMeVisLab:masterfrom
hjmjohnson:remove-old-generated-code
Sep 30, 2025
Merged

Build & generator cleanup: drop Qt5 wrapper fallbacks, switch CI to Qt 6.10, normalize macOS includes, add qmake toggles, and regenerate wrappers in CI#313
usiems merged 14 commits intoMeVisLab:masterfrom
hjmjohnson:remove-old-generated-code

Conversation

@hjmjohnson
Copy link
Copy Markdown
Contributor

@hjmjohnson hjmjohnson commented Sep 26, 2025

This PR modernizes PythonQt’s wrapper generation & build pipeline and aligns CI with Qt 6.10. It removes legacy, checked-in Qt5 wrapper directories, relies on explicit/generated paths at build time, normalizes macOS includes to bare Qt headers, adds qmake toggles for targeted builds, and updates CI to first generate wrappers then build without the generator. It also excludes a new std::string_view operator introduced in Qt 6.10 that is not yet supported by the generator.

Summary

  • Add CONFIG+=generator_only (build just the wrapper generator).

  • Add CONFIG+=exclude_generator (build everything except the generator).

  • CI

  • Switch "latest" pipeline from Qt 6.9 -> Qt 6.10 (workaround missing Updates.xml.sha256 for 6.9.3).

  • Restructure jobs to:

    1. build generator,
    2. run pythonqt_generator,
    3. build without the generator and run tests.
  • On macOS, generate wrappers for both Debug and Release.

  • Repository housekeeping

  • Remove stale example wrapper trees:

    • generated_cpp_50, generated_cpp_53, generated_cpp_54, generated_cpp_56, generated_cpp_511
    • Keep generated_cpp_515 as the canonical example.

How to build now

Preferred: generate wrappers into ../generated_cpp (relative to the build) or point qmake at an absolute path.

# Option A: generate to ../generated_cpp
qmake CONFIG+=generator_only
make -C generator
./generator/pythonqt_generator  # emits to ../generated_cpp by default

# Option B: use a custom location
qmake PYTHONQT_GENERATED_PATH=/abs/path/to/generated_cpp

Then build without the generator:

qmake CONFIG+=exclude_generator
make -j$(nproc)

If wrappers are missing, the build will fail early with a message listing searched locations and how to generate them.

Notes

  • Removed fallbacks: Projects that relied on the repository’s Qt5 wrapper directories must re-generate wrappers for their Qt version.
  • Qt 6.10: CI now targets 6.10. Local builds with older Qt versions should still work if wrappers are generated for that version.
  • macOS: Header normalization only affects generated include lines; no behavior change at runtime.
  • Temporarily excluded API: The Qt 6.10 std::string_view operator is skipped in the typesystem until binding support is implemented.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants