Skip to content
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

build: Migrate to Qt 6 #949

Open
7 of 13 tasks
csett86 opened this issue May 22, 2023 · 16 comments
Open
7 of 13 tasks

build: Migrate to Qt 6 #949

csett86 opened this issue May 22, 2023 · 16 comments
Labels

Comments

@csett86
Copy link
Collaborator

csett86 commented May 22, 2023

Continuing from #941 (comment)

Tasks before qt6 branch is ready for develop and a weekly release

@DSCaskey
Copy link
Contributor

Fix .val opening under windows

Is this in addition to vit and vst's or is it supposed to be vst?

@csett86
Copy link
Collaborator Author

csett86 commented May 22, 2023

Fix .val opening under windows

Is this in addition to vit and vst's or is it supposed to be vst?

It was meant to be .vst and .val. the .vit work fine from my testing with seamlyme.

@DSCaskey
Copy link
Contributor

Arrrggggg. So apparently there's a bug in 6.5.0 with Windeployqt and writing the translations (which is fixed in the not yet available 6.5.1?) ... so I'm assuming Seamly2D is hanging looking for the translation files? So.... I can try building with 6.4.3 - otherwise I'm back to reinstalling 6.2.x.

@DSCaskey
Copy link
Contributor

Nope. Built with 6.4.3... translations are there, but same result - app just hangs.

@csett86
Copy link
Collaborator Author

csett86 commented May 22, 2023

My suggestion: Lets try to get it to work with 6.2.4 (msvc) first, thats at least where I can get it working on mac and the app at least launches on windows, even if it cannot open patterns and multisize measurements.

@DSCaskey
Copy link
Contributor

DSCaskey commented May 26, 2023

Yea! Finally figured out why the Qt6 builds were not working for me - sort of. For the heck of it I downloaded an artifact from the Qt6 branch figuring if it was working for others it should work for me? Nope. Same issue I had with my 6.4.3 and 6.5.0 local builds. So just for the heck of it I renamed the settings file so the Seamly2D app would start with clean settings. BINGO! It works.

Now to figure out why / where in the settings it's causing an issue with the Qt6 builds. One problem though that remains, even though I upgraded my laptop to Windows 11 thinking it would fix the issue - is I can't run the 64 bit debugger in Creator. It produces an error to the effect the Oleaut32.dll library is not registered. That's why I always did 32 bit builds with Qt5. Well now that Qt6 is 64 bit only it's a real problem not being able to track down bugs such as whatever is going on with the settings.

BTW... I also installed Qt6 6.2.4. I'm not sure why, but it appears the audio, mediaservice, and printsupport plugins are not in the 6.4.3 and 6.5.0 kits, but are in 6.2.4? Which is why I installed it, thinking maybe those missing plugins were the issue.

@0f22fd5950630
Copy link

And using Qt6 Version 6.2.4 would it make easier for us ubuntu-Users, because this is the version in ubuntu 22.04.

@csett86 csett86 added the Qt6 label Jun 19, 2023
@Martin-Nyaga
Copy link

Hi @csett86, @DSCaskey, I would like to understand if there any remaining issues around compiling Seamly2D/Me on qt6 on Windows that we can help to address?

Meanwhile, we are trying to find some time to properly debug what is going on with opening files. It seems to work fine on the Linux build, but not on Windows.

@csett86
Copy link
Collaborator Author

csett86 commented Jul 31, 2023

I would suggest to get the opening of files working first, only then we can see what else all fails still with Qt6. Once the files open, getting the unit tests to work should also be in reach.

From my point of view the xerces code bloat is still the biggest sticking point from my perspective, as it complicates the build across platforms (like mingw build no longer working), so finding there an elegant solution, that would be awesome!

@hr-98
Copy link

hr-98 commented Aug 1, 2023

Yes, fixing the file opening on Windows is on my to-do list. I'm still not sure why it's only broken on Windows.

About the code bloat, I didn't have a better idea on how to do this. Apache don't offer any binary distributions for it. If you have a better idea on how to do this, let me know.
Mingw won't work like this, since I compiled the library with msvc. For Mingw we would need to make another compiled version of Xerces made with Mingw I think.
We could just remove Xerces from the repo to remove the code bloat and make everyone themselves responsible for figuring out how to compile Xerces and build Seamly with it.

@csett86
Copy link
Collaborator Author

csett86 commented Aug 3, 2023

Your comment made me think: Yes, apache no longer offers a binary distribution for it, but we could do that instead. I played around with a little github actions, and this is what I got so far: https://github.com/csett86/xerces-c/actions/runs/5743459223

The structure of the zip files is not yet cleaned up, but idea would be: Provide these with a github release, and then fetching them on demand as part of the build pipeline and providing instructions how to download and extract them manually. What do you think @DSCaskey?

@hr-98
Copy link

hr-98 commented Aug 8, 2023

@csett86 I think some of the things on the list can be considered done now, could you please update the list?

  • Fix windows build with msvc
  • Fix .val opening under windows
  • Fix .vst opening under windows
  • Fix vst opening

@csett86
Copy link
Collaborator Author

csett86 commented Aug 8, 2023

I'll test the windows topics later today and would close them once the PR is merged.

On the xerces I continued the path and now have a prerelease ready: https://github.com/csett86/xerces-c/releases/tag/v3.2.4

As the binaries and includes are not that big, I am also inclined to vendor them for mac and windows in the Seamly repo and then link statically to them. Then we can also continue to support mingw and msvc in parallel

What are your thoughts, @DSCaskey @hr-98

@DSCaskey
Copy link
Contributor

DSCaskey commented Aug 8, 2023 via email

@csett86
Copy link
Collaborator Author

csett86 commented Aug 9, 2023

There is one more bigger open item before we are ready to merge qt6 into develop: Fixing the unit tests.
As they run under linux, this should be good to debug for you as well, @hr-98

You can run all of them via

make check

But also selectively any of the tests manually by running the test binary in the respective test folder.

From what I have seen only the src/test/Seamly2DTest is currently failing for some locale combinations, so I guess start with that :)

@csett86
Copy link
Collaborator Author

csett86 commented Aug 9, 2023

As the binaries and includes are not that big, I am also inclined to
vendor them for mac and windows in the Seamly repo and then link statically to them. Then we can also continue to support mingw and msvc in parallel

Sounds good to me. Also to be consistent with the rest of the libs, would it make sense to put the xerces lib in "libs" instead of "extern" outside of "src". BTW... I just had surgery to fix a broken hip, so it will be a few weeks before I can work on building anything at home.

Good idea with moving xerces to libs folder to have consistency, taken on board directly in #1011

As this seems an agreed way forward, I would cleanup the xerces binary repo and move it to the FashionFreedom github org so that is close to Seamly (instead of my personal account), cut a proper binary release and then incorporate the resulting binaries into the PR and clean that up as well.

All the best with your recovery @DSCaskey please take your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants