-
-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to Qt6. #16
Update to Qt6. #16
Conversation
@agatti I took the liberty of creating this PR for you, I don't know if you want to continue the work, or if you know what remains to be done? |
Well, there are a couple more things that need to be done but it should be pretty much enough for the time being. I've just checked things out and rebuilt it to make sure I didn't miss anything. Basically what's left is:
Makefile builds work. I have no idea if this fails on other platforms or how to fix this right now - at least there are fallbacks.
I doubt an Now, I haven't checked things on Linux/BSD or Windows as I only have an M1 mac here. Can you please update the CI environment with the latest Qt6 and see if this works? I am willing to update the branch to get to a working set of builds on those platforms. I don't remember if I also fixed Qt5 code that was deprecated in Qt6, but again, that's something that can be done at a later stage if I didn't get around to it. All I know is that macOS's clang does complain a fair bit on non-Qt code, so there's enough to be busy for a bit :) |
Thanks for those precisions, it's already a great work! I'll try to update the CI, and if you are ok I'll ping you back when it's done 😉 |
I updated the CI to use the Qt 6.2 version. It's on the |
Need a manual approval to start the first batch of CI tasks... |
This is interesting. I've updated Catch2 on my source tree and tests actually pass on my machine [1]. I'll spin up a linux virtual machine somewhere and see why tests fail. I also have a workaround for the translations build issue, although it's rather nasty (if win32 ... else ... endif). Now, I'm using qt 6.3.1 - I'll see if I can downgrade to 6.2.4 on the mac to see if it fails on my machine. [1]:
|
@DorianBDev the windows build fails due to a missing component of the installer framework ("/bin/windeployqt.exe: No such file or directory"). Can you please check whether that is present in the installation or if an additional PATH variable entry must be set to make windeployqt.exe available to the command line? With this we are at least at build parity on all three platforms, now onto getting the image loading issue with Qt 6.2... |
Ok, I created an aarch64 linux VM with Ubuntu 22.04 and Qt6 6.2.4. After changing the C++ standard from 11 to 17, it just built fine and ran tests too [1]. I'll try on x86_64 soon. [1]
I'm tempted to say that it's a matter on how and where the binaries are run. Both on the mac and on the arm linux vm I manually load |
Hi! Thanks for these updates, next week will be a busy one for me, but I'll try to take a look at the CI as soon as possible. I'll also try to build on amd64 Linux and perhaps Windows |
Ok I know why it fails on Linux (and not on all install): since Degate use many image format (and uses Qt underlying image loader), we need the special package called "qt6-image-formats-plugins" (or "qt6-imageformats" on Arch). Before installing the package, tests were failing, and after installing this specific package, all went fine. A simple update of the CI should fix the issue 😉 |
We can know it's the source of the problem when we get any "Degate/src/Core/Image/ImageReader.h:125] can't read size of **" error message |
Excellent! So, just to avoid cluttering the changeset, I'll later open a few separate PRs with changes here that have nothing to do with Qt6 (Catch2 update, Arm changes). So, once they're in I'll rebase the whole lot on the new HEAD and squash the set into something cleaner. |
Rebasing took care of Catch2 updates, so if the whole lot is ok with you I'll squash and force push for you to merge. |
Had been there any progress with that? |
Unfortunately not, I just ran a new CI pass to see what remains to do. By rereading the PR and the commits, I don't think there is so much left to consider merging & releasing a Qt6 Degate's beta version. |
The CI needs an update, it seems to be broken... |
If this gets merged I can start sending PRs for removing Boost :) Qt provides pretty much everything Boost brings to the table and more, after all. Speaking of Qt, there are also a few more UI/Geometry classes that can be removed in favour of using Qt's equivalents (Line, Point, Circle, file operation helpers, etc.)... |
Yes I totally agree, Boost removal and core cleanup are in the roadmap since I moved from GTK to Qt. I'll fix the CI during the week and maybe finish the PR (quite a busy week here) |
* Updated CI to Qt6. * Fixed the CI for Qt6. * Started switching to Qt6. (#16) Co-authored-by: Alessandro Gatti <a.gatti@frob.it> * Updated the CI for Qt6. * Updated the Linux CI for Qt6. * Updated the Windows & MacOS CI for Qt6. * Possibly fixed a new bug introduced by Qt6 on OpenGL objects cleanup. * Fixed more bugs with OpenGL (due to Qt6 port). * Updated deploy CI. * Updated deploy CI for mac and linux. * Tried to fix linux deploy CI job. --------- Co-authored-by: Alessandro Gatti <a.gatti@frob.it>
Description
Thanks to @agatti, a first step was done to update Degate to use Qt6.
Affected area(s)
Changes type
Proposed changes