[patched-9] Port to Qt6, update for C++17/20, and improve compiler/platform support
A summary of all changes from mevislab/master to the current HEAD (slicer-2025-06-13-a2687828):
- Qt6 Porting: Updated code to support Qt6, including replacing deprecated QVariant::Type with QMetaType and adding version checks for Qt5/Qt6 compatibility.
- C++17/20 Modernization: Refactored code to use modern C++ features as required by newer Qt versions (e.g., constexpr, noexcept, alignas, etc.).
- Compiler Detection Updates: Enhanced and updated compiler detection macros in qcompilerdetection.h for better support of recent compilers and platforms.
- Warning and Attribute Macros: Improved handling of compiler warnings and attributes, including support for new C++ attributes like [[nodiscard]], [[maybe_unused]], and [[deprecated]].
- Platform and Feature Checks: Added or updated macros for platform-specific and feature-specific checks, ensuring better cross-platform compatibility.
- General Maintenance: Bug fixes, code cleanup, and improved documentation/comments throughout the codebase.
These changes collectively modernize the codebase, improve compatibility with recent Qt and C++ standards, and enhance maintainability.
@hjmjohnson I suspect all the merge conflicts here arise from @jcfr ’s own CMake implementation compared to the other developer that issued a CMake infrastructure PR. As well as @jcfr’s back porting of many commits from the upstream to the CTK patched-9 branch.
Thanks @hjmjohnson :pray: , this positioned ourselves well. I will know work on consolidating the changes :rocket:
@jcfr, Please let me know when this branch can be deleted.
@jcfr Abandoning this PR. PythonQt was updated from other efforts.