Qt6 tracking thread

I wanted to have a thread where we could specifically track and discuss the progress on switching to Qt6, so here we are. This way we have somewhere to list build problems, outstanding blocking issues etc.

I’ve tried to collect together references to known things that need to be done, it would be great if people can leave comments with additions and corrections.

Previous work and discussion

Build status

  • Linux
    • Binary builds successfully
    • AppImage builds successfully via GitHub actions
    • Flatpak builds successfully
  • Windows
    • x86
    • ARM
  • Mac
    • x86
    • ARM
    • Universal

Known issues

(and users who observed/reported/experienced said issue)

  • @matterhorn103 According to terminal output, only formatScripts are checked for, not energy, commands, inputGenerators, or charges scripts
  • @matterhorn103 No menu options for inserting molecules/crystals (presumably both this and the above are to do with Python)

To Do

  • Include Qt:Core5Compat where needed
  • Port QRegExp to QRegularExpression
  • Investigate compilation on ARM Windows when Qt 6.8 is released (3rd October) – @matterhorn103 has a machine to do this on
  • Get the GitHub actions bot to return the Qt6 binaries from the automated tests so that people can test them out on their hardware
  • Change release script/config so that Qt6 builds are included, or take the place of the Qt5 ones
1 Like

It has to be said, a remarkable amount seems to work fine.

@ghutchis I’m keen to work on the remaining stuff where I can and help to push this through, so would be especially good to hear from you what the “easy but tediously time-consuming” things are, because that’s exactly the sort of thing I can take care of. :slight_smile:

As a first thing I’ll try and get the regex stuff moved over, that’s eminently doable for me.

@brockdyer03 Once you’ve got Avogadro successfully compiling on Windows, would you mind giving a build with Qt6 a go sometime? I no longer have admin rights to any x86 Windows machines, sadly.

1 Like

If we get everything moved over to Qt6 as far as compiles, I will happily investigate getting binaries “shipped.”

The main pain point is moving to the new Qt6 deployment mechanism, but it’s a solvable problem.

Is that something I can look at and put time into helping with?

You’ve mentioned the deployment thing before, but I’ve never really understood what the deploy script is, what it does that the CMake files + the GitHub actions don’t already do, and where the current script can be found in the repo.

Having read Qt's CMake deployment API, I guess what you are talking about is running qt_generate_deploy_app_script within the main CMakeLists.txt file?

I guess the key to my lack of understanding is that I don’t understand what system/process is currently handling the things that the Qt6 deployment tools would take over – some brief enlightenment would be much appreciated.

There are various pieces in avogadroapp including cmake/DeployQt5.cmake, avogadro/CMakeLists.txt and avogadro/lastinstall/CMakeLists.txt that fix up the bundles.

The main point is to take bits in the build prefix directory, and put the necessary binaries, libraries, etc. together, setting relative paths, etc. On Mac, this is a bit complicated, since binaries and libraries default to tracking the absolute paths of their dependencies.

1 Like