Opened 9 years ago
Last modified 6 years ago
#50424 new enhancement
geant4: careful review of Qt5
Reported by: | mojca (Mojca Miklavec) | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), mkae (Marko Käning) | |
Port: | geant4 |
Description
I might need some help with "cleaning up" the Qt support in Geant4.
In particular:
- figure out which Qt5 components are needed
- figure out which versions of geant4 support Qt5 at all (and potentially remove the variant from older versions)
- potentially rename
+qt
into+qt4
and makeqt
an obsolete variant? - make sure that Geant's
stdlib
is the same as Qt'sstdlib
- provide a reasonable default (
qt4
vsqt5
) based on the- geant4 version
- OS version
- default stdlib
Attachments (2)
Change History (6)
comment:1 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Attachment: | Portfile.diff added |
---|
Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Attachment: | patch-choose_qt.diff added |
---|
comment:2 Changed 9 years ago by mojca (Mojca Miklavec)
Thank a lot for these patches. So GEANT4_FORCE_QT4
was introduced in 4.10.2? Thanks a lot for pointing that out.
I need to fix #50426 first and I will consult the upstream about Qt5 compatibility (version 4.9.6 has problem even with Qt4 without the extra patch, so I'm a bit sceptic about its support for Qt5).
I will try to come up with something about default selection between Qt4 and Qt5 (as discussed in #50321). I'm at least a bit inclined to leave the default at Qt4 for older versions of Geant4 and only switch to Qt5 as default for 4.10.2 (and than only for platforms that support it).
Geant4.10.2 already requires C++11, so defaulting to Qt5 makes some sense even on Lion (with libstdc++ as default).
The issues with C++11 on < 10.9 are getting more and more burning & confusing.
Replying to mojca@…:
Based upon
cmake/Modules/Geant4InterfaceOptions.cmake
, the Qt5 module areAll of which are provided by port:qt5base.
Prior to version 4.10.2, the comments in
cmake/Modules/Geant4InterfaceOptions.cmake
statethat Qt4 is required, but the code itself looks for Qt5 before Qt4.
If the code is to be trusted over the comments, all of the geant4 versions support Qt5.
I am submitting a patch for versions prior to 4.10.2 that will force Qt4 to be used if requested.
It is based on the code already in version 4.10.2.
Attached is a patch that attempts to do this.
As was discussed in #50321, I am not sure what the best solution to this is.
A few minor things I noticed: