Import Geant4 11.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2021-12-10 14:46:44 +01:00
committed by Ben Morgan
parent 6399a014b6
commit 80e2389dd8
3932 changed files with 202519 additions and 246221 deletions
+55 -38
View File
@@ -56,33 +56,55 @@ if(GEANT4_USE_INVENTOR_QT)
set(GEANT4_USE_INVENTOR ON)
endif()
# - Qt (may be required by Coin driver)
# - ToolsSG/Xt/X11/Qt/Win
# Though this option has platform differences, we configure here because it can
# trigger the Qt requirement
if(WIN32)
set(_g4_toolssg_backends "OFF" "WIN32")
else()
# TODO: Difference between X11, XT?
set(_g4_toolssg_backends "OFF" "X11" "XT" "QT")
endif()
enum_option(GEANT4_USE_TOOLSSG
DOC "Build Geant4 ToolsSG Visualization Driver with Backend"
VALUES ${_g4_toolssg_backends}
)
geant4_add_feature(GEANT4_USE_TOOLSSG "Build ToolsSG Visualization Driver with backend '${GEANT4_USE_TOOLSSG}'")
foreach(_tsg_backend IN LISTS _g4_toolssg_backends)
set(GEANT4_USE_TOOLSSG_${_tsg_backend}_GLES OFF)
if(_tsg_backend STREQUAL GEANT4_USE_TOOLSSG)
set(GEANT4_USE_TOOLSSG_${_tsg_backend}_GLES ON)
endif()
endforeach()
# - Qt (may be required by Coin/ToolsSG driver)
option(GEANT4_USE_QT "Build Geant4 with Qt support" OFF)
if(GEANT4_USE_INVENTOR_QT AND NOT GEANT4_USE_QT)
if((GEANT4_USE_INVENTOR_QT OR GEANT4_USE_TOOLSSG_QT_GLES) AND NOT GEANT4_USE_QT)
set(GEANT4_USE_QT ON CACHE BOOL "Build Geant4 with Qt support" FORCE)
message(STATUS "Forcing GEANT4_USE_QT to ON, required by GEANT4_USE_INVENTOR_QT")
message(STATUS "Forcing GEANT4_USE_QT to ON, required by Inventor/ToolsSG Driver(s)")
endif()
geant4_add_feature(GEANT4_USE_QT "Build Geant4 with Qt support")
# - Vtk
option(GEANT4_USE_VTK "Build Geant4 with VTK visualisation" OFF)
mark_as_advanced(GEANT4_USE_VTK)
if(GEANT4_USE_VTK)
find_package(VTK 8.2 REQUIRED)
endif()
geant4_add_feature(GEANT4_USE_VTK "Using VTK for visualisation (EXPERIMENTAL)")
# - Unix only
if(UNIX)
# - Client/Server DAWN driver
# mark as advanced because user should know what they're doing here
option(GEANT4_USE_NETWORKDAWN "Build Dawn driver with Client/Server support" OFF)
geant4_add_feature(GEANT4_USE_NETWORKDAWN "Build Dawn driver with Client/Server support")
mark_as_advanced(GEANT4_USE_NETWORKDAWN)
# - Client/Server VRML driver
option(GEANT4_USE_NETWORKVRML "Build VRML driver with Client/Server support" OFF)
geant4_add_feature(GEANT4_USE_NETWORKVRML "Build VRML driver with Client/Server support")
mark_as_advanced(GEANT4_USE_NETWORKVRML)
# - Motif UI/Vis (may be required by Coin Vis driver)
option(GEANT4_USE_XM "Build Geant4 with Motif (X11) support" OFF)
if(GEANT4_USE_INVENTOR AND NOT GEANT4_USE_INVENTOR_QT AND NOT GEANT4_USE_XM)
if((GEANT4_USE_INVENTOR AND NOT GEANT4_USE_INVENTOR_QT)
AND NOT GEANT4_USE_XM)
set(GEANT4_USE_XM ON CACHE BOOL "Build Geant4 with Motif (X11) support" FORCE)
message(STATUS "Forcing GEANT4_USE_XM to ON, required by GEANT4_USE_INVENTOR")
message(STATUS "Forcing GEANT4_USE_XM to ON, required by Inventor driver")
endif()
geant4_add_feature(GEANT4_USE_XM "Build Geant4 with Xm Support")
@@ -94,30 +116,12 @@ if(UNIX)
# RayTracer driver with X11 support
option(GEANT4_USE_RAYTRACER_X11 "Build RayTracer driver with X11 support" OFF)
geant4_add_feature(GEANT4_USE_RAYTRACER_X11 "Build RayTracer driver with X11 support")
# ToolsSG X11/GLES driver
option(GEANT4_USE_TOOLSSG_X11_GLES "Build Geant4 ToolsSG driver with X11/GLES support" OFF)
geant4_add_feature(GEANT4_USE_TOOLSSG_X11_GLES "Build Geant4 ToolsSG driver with X11/GLES support")
# ToolsSG Xt/GLES driver
option(GEANT4_USE_TOOLSSG_XT_GLES "Build Geant4 ToolsSG driver with Xt/GLES support" OFF)
geant4_add_feature(GEANT4_USE_TOOLSSG_XT_GLES "Build Geant4 ToolsSG driver with Xt/GLES support")
# ToolsSG Qt/GLES driver
option(GEANT4_USE_TOOLSSG_QT_GLES "Build Geant4 ToolsSG driver with Qt/GLES support" OFF)
geant4_add_feature(GEANT4_USE_TOOLSSG_QT_GLES "Build Geant4 ToolsSG driver with Qt/GLES support")
endif()
# Windows only
if(WIN32)
option(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support")
geant4_add_feature(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support")
# ToolsSG Windows/GLES driver
option(GEANT4_USE_TOOLSSG_WINDOWS_GLES "Build Geant4 ToolsSG driver with Windows/GLES support" OFF)
geant4_add_feature(GEANT4_USE_TOOLSSG_WINDOWS_GLES "Build Geant4 ToolsSG driver with Windows/GLES support")
endif()
#-----------------------------------------------------------------------
@@ -199,18 +203,29 @@ if(GEANT4_USE_INVENTOR
OR GEANT4_USE_QT
OR GEANT4_USE_OPENGL_X11
OR GEANT4_USE_XM
OR GEANT4_USE_TOOLSSG
OR GEANT4_USE_OPENGL_WIN32)
find_package(OpenGL REQUIRED)
geant4_save_package_variables(OpenGL OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY)
# X11 drivers on macOS need XQuartzGL
if(APPLE AND (GEANT4_USE_INVENTOR_XT OR GEANT4_USE_OPENGL_X11 OR GEANT4_USE_XM))
if(APPLE AND
(GEANT4_USE_INVENTOR_XT
OR GEANT4_USE_OPENGL_X11
OR GEANT4_USE_XM
OR GEANT4_USE_TOOLSSG_X11_GLES
OR GEANT4_USE_TOOLSSG_XT_GLES))
find_package(XQuartzGL REQUIRED)
geant4_save_package_variables(XQuartzGL XQuartzGL_INCLUDE_DIR XQuartzGL_gl_LIBRARY)
endif()
# Enable driver
set(GEANT4_USE_OPENGL ON)
# Enable G4OpenGL driver
if(GEANT4_USE_INVENTOR
OR GEANT4_USE_QT
OR GEANT4_USE_OPENGL_X11
OR GEANT4_USE_OPENGL_WIN32)
set(GEANT4_USE_OPENGL ON)
endif()
endif()
if(UNIX)
@@ -218,7 +233,9 @@ if(UNIX)
if(GEANT4_USE_OPENGL_X11
OR GEANT4_USE_RAYTRACER_X11
OR GEANT4_USE_XM
OR GEANT4_USE_INVENTOR_XT)
OR GEANT4_USE_INVENTOR_XT
OR GEANT4_USE_TOOLSSG_X11_GLES
OR GEANT4_USE_TOOLSSG_XT_GLES)
find_package(X11 REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/G4X11Shim.cmake")