10.7.0 Qt3D package issues with cmake

Hi,

Did the requirements for Qt5 change with 10.7.0 relative to 10.6.2?

Installing 10.7.0 I get warnings in cmake that Qt53DCore;Qt53DExtras;Qt53DRender are missing and it aborts make -j4 at “[0%] Automatic MOC for target G4OpenGL”

Re-Installing 10.6.2 to double check the pc setup I don’t receive the errors and the installation completes fine. This is with the exact same cmake flags on the same computer.

All the packages for reference can be seen in the output of ldconfig -p

I’m running Centos 7.8

Best regards,

Alex Leatherland

What warnings were printed at CMake time, and what errors were printed by make?

It may be just a a question of going back to your Qt installation and making sure those components are installed.

The warning printed was:

–Disabling Geant4 Qt3D Driver, missing Qt5 packages: Qt53DCore;Qt53DExtras;Qt53DRender

AutoMoc: Error: /geant4.10.07-source/source/visualisation/OpenGL/src/G4OpenGLQtExportDialog.cc
The file includes the moc file “moc_G4OpenGLQtExportDialog.cpp”, but could not find the header “G4OpenGLQtExportDialog{.h,.hh,.h++,.hpp,.hxx,.in,.txx}” in /geant4.10.07-source/source/visualisation/OpenGL/src/

make[2]: *** [source/CMakeFiles/G4OpenGL_autogen] Error 1
make[1]: *** [source/CMakeFiles/G4OpenGL_autogen.dir/all] Error 2
make: *** [all] Error 2

checking with ldconfig -p | grep Qt53D and I can see the lib*.so files for each of these

visualisation flags I use are
GEANT4_USE_RAYTRACER_X11=ON
GEANT4_USE_OPENGL=ON
GEANT4_USE_QT=ON

all the shared library objects for the Qt53D packages claimed as missing are in the default /lib64 folder

Thanks! As the Qt3D libraries are there, are the headers also installed, i.e. the qt5-qt3d-devel rpm (I think that’s the correct one for CentOS7) if using Qt5 from the system?

That said, I’m not sure missing Qt3D is the cause of the error. The automoc error is coming from an unrelated module. Could you run:

$ make -j1 VERBOSE=1

and post the detailed output and compile commands this should print print that generate the moc/error please?

Hi all,

I see the same CMake output and I do have both libraries and headers installed. This is on CentOS7.

/Simon

Could you please post the exact output from CMake and the build please (and is this Geant4 10.7.1 rather than 10.7.0)?

This Geant4 10.7.p01 on CentOS 7 with devtoolset-8.

# cmake3 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_XM=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_SYSTEM_CLHEP=OFF -DGEANT4_BUILD_MULTITHREADED=ON -DCMAKE_INSTALL_PREFIX=../ ../src/geant4.${GEANT4_VERSION}
-- The C compiler identification is GNU 8.3.1
-- The CXX compiler identification is GNU 8.3.1
-- Check for working C compiler: /opt/rh/devtoolset-8/root/usr/bin/cc
-- Check for working C compiler: /opt/rh/devtoolset-8/root/usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/rh/devtoolset-8/root/usr/bin/c++
-- Check for working CXX compiler: /opt/rh/devtoolset-8/root/usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_TLS
-- Performing Test HAVE_TLS - Success
-- Found EXPAT: /usr/lib64/libexpat.so (found version "2.1.0") 
-- Found XercesC: /usr/lib64/libxerces-c.so (found version "3.1.1") 
-- Disabling Geant4 Qt3D driver, missing Qt5 packages: Qt53DCore;Qt53DExtras;Qt53DRender
-- Found OpenGL: /usr/lib64/libOpenGL.so   
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found Motif: /usr/lib64/libXm.so  
-- Configuring download of missing dataset G4NDL (4.6)
-- Configuring download of missing dataset G4EMLOW (7.13)
-- Configuring download of missing dataset PhotonEvaporation (5.7)
-- Configuring download of missing dataset RadioactiveDecay (5.6)
-- Configuring download of missing dataset G4PARTICLEXS (3.1.1)
-- Configuring download of missing dataset G4PII (1.3)
-- Configuring download of missing dataset RealSurface (2.2)
-- Configuring download of missing dataset G4SAIDDATA (2.0)
-- Configuring download of missing dataset G4ABLA (3.1)
-- Configuring download of missing dataset G4INCL (1.0)
-- Configuring download of missing dataset G4ENSDFSTATE (2.3)
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- The following Geant4 features are enabled:
GEANT4_BUILD_CXXSTD: Compiling against C++ Standard '11'
GEANT4_BUILD_MULTITHREADED: Build multithread enabled libraries
GEANT4_BUILD_TLS_MODEL: Building with TLS model 'initial-exec'
GEANT4_USE_SYSTEM_EXPAT: Using system EXPAT library
GEANT4_USE_GDML: Building Geant4 with GDML support
GEANT4_USE_QT: Build Geant4 with Qt support
GEANT4_USE_XM: Build Geant4 with Xm Support
GEANT4_USE_OPENGL_X11: Build Geant4 OpenGL driver with X11 support

-- Configuring done
-- Generating done
-- Build files have been written to: /opt/geant4/build

Not sure what the problem is. If you install Qt and set `GEANT4_USE_QT=ON, you should be able to get the Qt3D driver without problem.

The CMake check for Qt53D relies on the associated Qt53D..Config.cmake files being present, as shown in this line:

-- Disabling Geant4 Qt3D driver, missing Qt5 packages: Qt53DCore;Qt53DExtras;Qt53DRender

As Qt3D is only searched/enabled if CMake is 3.9 or better, and the initially found Qt is 5.15 or newer, I’m assuming that this is the case. Where is Qt installed on your system and are theQt53D{Core,Extras,Render}Config.cmake files present?

May I continue on the discussion? I have issues with this exact line with the Qt5 drivers

Let’s continue discussion here: GEANT4 and Qt5 Drivers - #6 by bmorgan