Import Geant4 11.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2025-06-26 09:17:29 +02:00
parent 20a218bbe1
commit a499fb82e9
1941 changed files with 203285 additions and 95593 deletions
+156 -122
View File
@@ -351,7 +351,7 @@ endif
IF NOT DEFINED ${VARIABLE_NAME} (
set \"${VARIABLE_NAME}=${VARIABLE_VALUE}\"
)
"
"
PARENT_SCOPE
)
endif()
@@ -382,13 +382,13 @@ fi
elseif(${SHELL_FAMILY} STREQUAL "cshell")
# Again, this is verbatim so final output is formatted correctly
set(${TEMPLATE_NAME}
"
"
if ( ! \${?${PATH_VARIABLE}} ) then
setenv ${PATH_VARIABLE} ${APPEND_VARIABLE}
else
setenv ${PATH_VARIABLE} ${APPEND_VARIABLE}:\${${PATH_VARIABLE}}
endif
"
"
PARENT_SCOPE
)
# -- cmd.exe block
@@ -434,7 +434,7 @@ if ( ! \${?${PATH_VARIABLE}} ) then
else
setenv ${PATH_VARIABLE} \${${PATH_VARIABLE}}:${APPEND_VARIABLE}
endif
"
"
PARENT_SCOPE
)
# -- cmd.exe block
@@ -907,7 +907,8 @@ file(RELATIVE_PATH
"${CMAKE_INSTALL_FULL_BINDIR}"
"${CMAKE_INSTALL_FULL_DATADIR}"
)
set(TOOLS_FONT_PATH "\"`cd \$geant4_envbindir/${G4ENV_BINDIR_TO_DATADIR}/fonts > /dev/null ; pwd`\"")
set(TOOLS_FONT_PATH "\"`cd \$geant4_envbindir/../share/Geant4/fonts > /dev/null ; pwd`\"")
set(TOOLS_FONT_PATHW "\%geant4_envbindir\%\\..\\share\\Geant4\\fonts")
# list of shells
set(shells_list bourne;cshell)
@@ -955,46 +956,68 @@ foreach(_shell IN LISTS shells_list)
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "# - Builtin CLHEP used")
if(GEANT4_USE_SYSTEM_CLHEP)
# Handle granular vs singular cases
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} IN_LIST _oswithldpath)
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
"${_CLHEP_LIB_DIR}"
)
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
"${_CLHEP_LIB_DIR}"
)
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
# add to PATH on windows
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}/../bin"
REALPATH
)
file(TO_CMAKE_PATH "${_CLHEP_LIB_DIR}" _CLHEP_LIB_DIR)
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
PATH
"${_CLHEP_LIB_DIR}"
)
else()
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "# System CLHEP in use, no configuration required")
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "# System CLHEP in use, no configuration required")
endif()
endif()
# - XercesC
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "# GDML SUPPORT NOT AVAILABLE")
if(GEANT4_USE_GDML)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" DIRECTORY)
get_target_property(_XERCESC_LIB_DIR XercesC::XercesC LOCATION)
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} IN_LIST _oswithldpath)
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
"${_XERCESC_LIB_DIR}"
)
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
"${_XERCESC_LIB_DIR}"
)
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}/../bin"
REALPATH
)
file(TO_CMAKE_PATH "${_XERCESC_LIB_DIR}" _XERCESC_LIB_DIR)
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
PATH
"${_XERCESC_LIB_DIR}"
)
else()
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "# GDML Supported, no configuration of Xerces-C required")
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "# GDML Supported, no configuration of Xerces-C required")
endif()
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIR})
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIR})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
set(_dssetenvcmd "
# - Variables for individual datasets
# Uncomment the line and edit the path to the dataset if installed in not standard location.")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} "$GEANT4_DATA_DIR/${${_ds}_PATH}")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}# ${_dssetenvcmd}\n")
endforeach()
@@ -1003,10 +1026,10 @@ foreach(_shell IN LISTS shells_list)
set(GEANT4_ENV_TOOLS_FONT_PATH "# FREETYPE SUPPORT NOT AVAILABLE")
if(GEANT4_USE_FREETYPE)
_g4tc_append_path(GEANT4_ENV_TOOLS_FONT_PATH
${_shell}
TOOLS_FONT_PATH
"${TOOLS_FONT_PATH}"
)
${_shell}
TOOLS_FONT_PATH
"${TOOLS_FONT_PATH}"
)
endif()
# Configure the file
@@ -1014,107 +1037,118 @@ foreach(_shell IN LISTS shells_list)
${PROJECT_SOURCE_DIR}/cmake/Templates/geant4-env-skeleton.in
${PROJECT_BINARY_DIR}/InstallTreeFiles/${_scriptfullname}
@ONLY
)
else()
)
else()
# message(STATUS "bat skeleton")
# Set path, which should be where the script itself is installed
# the varible synax differnt
_g4tc_prepend_path(GEANT4_ENV_BINPATH_SETUP
${_shell}
PATH
"%geant4_envbindir%"
)
# Set path, which should be where the script itself is installed
# the varible synax differnt
_g4tc_prepend_path(GEANT4_ENV_BINPATH_SETUP
${_shell}
PATH
"%geant4_envbindir%"
)
## Set library path, based on relative paths between bindir and libdir
#if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# _g4tc_prepend_path(GEANT4_ENV_LIBPATH_SETUP
# ${_shell}
# LD_LIBRARY_PATH
# "\"`cd $geant4_envbindir/${G4ENV_BINDIR_TO_LIBDIR} > /dev/null ; pwd`\""
# )
# endif()
## Set library path, based on relative paths between bindir and libdir
#if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# _g4tc_prepend_path(GEANT4_ENV_LIBPATH_SETUP
# ${_shell}
# LD_LIBRARY_PATH
# "\"`cd $geant4_envbindir/${G4ENV_BINDIR_TO_LIBDIR} > /dev/null ; pwd`\""
# )
# endif()
# Third party lib paths
# - CLHEP, if system
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # - Builtin CLHEP used")
if(GEANT4_USE_SYSTEM_CLHEP)
# Handle granular vs singular cases
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
# Third party lib paths
# - CLHEP, if system
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # - Builtin CLHEP used")
if(GEANT4_USE_SYSTEM_CLHEP)
# Handle granular vs singular cases
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}/../bin" REALPATH)
file(TO_NATIVE_PATH "${_CLHEP_LIB_DIR}" _CLHEP_LIB_DIR)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
PATH
"${_CLHEP_LIB_DIR}"
)
else()
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # System CLHEP in use, no configuration required")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
PATH
"${_CLHEP_LIB_DIR}"
)
else()
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # System CLHEP in use, no configuration required")
endif()
# - XercesC
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML SUPPORT NOT AVAILABLE")
if(GEANT4_USE_GDML)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
PATH
"${_XERCESC_LIB_DIR}"
)
else()
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML Supported, no configuration of Xerces-C required")
endif()
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIRW})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
set(_dssetenvcmd "FOR /F %%i IN ( \"%GEANT4_DATA_DIR%\" ) DO set \"GEANT4_DATA_DIR=%%~fi\"")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
set(_dssetenvcmd "
rem - Variables for individual datasets
rem Uncomment the line and edit the path to the dataset if installed in not standard location.")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
file(TO_NATIVE_PATH ${${_ds}_PATH} _native_path)
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} "%GEANT4_DATA_DIR%\\${_native_path}")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}rem ${_dssetenvcmd}\n")
endforeach()
# - Set Font Path
# ??? We need this variable ?
# ??? path to freetype2 library ???
set(GEANT4_ENV_TOOLS_FONT_PATH "rem # FREETYPE SUPPORT NOT AVAILABLE")
if(GEANT4_USE_FREETYPE)
_g4tc_append_path(GEANT4_ENV_TOOLS_FONT_PATH
${_shell}
TOOLS_FONT_PATH
"${TOOLS_FONT_PATH}"
)
endif()
configure_file(
${PROJECT_SOURCE_DIR}/cmake/Templates/geant4-bat-skeleton.in
${PROJECT_BINARY_DIR}/InstallTreeFiles/${_scriptfullname}
@ONLY
)
unset(_CLHEP_LIB_DIR)
endif()
# Install it to the required location
install(FILES
${PROJECT_BINARY_DIR}/InstallTreeFiles/${_scriptfullname}
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
COMPONENT Runtime
)
endforeach()
# - XercesC
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML SUPPORT NOT AVAILABLE")
if(GEANT4_USE_GDML)
get_target_property(_XERCESC_LIB_DIR XercesC::XercesC LOCATION)
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}" DIRECTORY)
get_filename_component(_XERCESC_LIB_DIR "${_XERCESC_LIB_DIR}/../bin" REALPATH)
file(TO_NATIVE_PATH "${_XERCESC_LIB_DIR}" _XERCESC_LIB_DIR)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
PATH
"${_XERCESC_LIB_DIR}"
)
else()
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML Supported, no configuration of Xerces-C required")
endif()
unset(_XERCESC_LIB_DIR)
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIRW})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
set(_dssetenvcmd "FOR /F %%i IN ( \"%GEANT4_DATA_DIR%\" ) DO set \"GEANT4_DATA_DIR=%%~fi\"")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
set(_dssetenvcmd "
rem - Variables for individual datasets
rem Uncomment the line and edit the path to the dataset if installed in not standard location.
" )
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
file(TO_NATIVE_PATH ${${_ds}_PATH} _native_path)
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} "%GEANT4_DATA_DIR%\\${_native_path}")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}rem ${_dssetenvcmd}\n")
endforeach()
# - Set Font Path
# g4tools fonts directory
set(GEANT4_ENV_TOOLS_FONT_PATH "rem # FREETYPE SUPPORT NOT AVAILABLE")
if(GEANT4_USE_FREETYPE)
_g4tc_setenv_command(_freetypecmd ${_shell} _g4_font_path ${TOOLS_FONT_PATHW})
set(GEANT4_ENV_TOOLS_FONT_PATH "${_freetypecmd}\n")
set(_freetypecmd "FOR /F %%i IN ( \"%_g4_font_path%\" ) DO set \"_g4_font_path=%%~fi\"")
set(GEANT4_ENV_TOOLS_FONT_PATH "${GEANT4_ENV_TOOLS_FONT_PATH}${_freetypecmd}\n")
_g4tc_append_path(_freetypecmd ${_shell} TOOLS_FONT_PATH "%_g4_font_path%")
set(GEANT4_ENV_TOOLS_FONT_PATH "${GEANT4_ENV_TOOLS_FONT_PATH}${_freetypecmd}")
_g4tc_setenv_command(_freetypecmd ${_shell} _g4_font_path "")
set(GEANT4_ENV_TOOLS_FONT_PATH "${GEANT4_ENV_TOOLS_FONT_PATH}${_freetypecmd}\n")
endif()
configure_file(
${PROJECT_SOURCE_DIR}/cmake/Templates/geant4-bat-skeleton.in
${PROJECT_BINARY_DIR}/InstallTreeFiles/${_scriptfullname}
@ONLY
)
endif()
# Install it to the required location
install(FILES
${PROJECT_BINARY_DIR}/InstallTreeFiles/${_scriptfullname}
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
COMPONENT Runtime
)
endforeach()
+2 -2
View File
@@ -18,11 +18,11 @@ geant4_add_dataset(
# - Low energy electromagnetics
geant4_add_dataset(
NAME G4EMLOW
VERSION 8.6.1
VERSION 8.7
FILENAME G4EMLOW
EXTENSION tar.gz
ENVVAR G4LEDATA
MD5SUM 9db67a37acc3eae9b0ffdace41a23b74
MD5SUM 949c9422ae668208562be1b991750df1
)
# - Photon evaporation
+3 -2
View File
@@ -874,8 +874,10 @@ function(geant4_test_link_libraries _target)
)
__geant4_assert_no_unparsed_arguments(G4TESTLINKLIB geant4_test_link_libraries)
# Need defined libraries to be able to resolve between static/shared
# Need defined libraries and externals to be able to resolve between static/shared
get_property(__g4definedlibraries GLOBAL PROPERTY GEANT4_DEFINED_CATEGORIES)
geant4_get_external_categories(__g4externalcategories)
list(APPEND __g4definedlibraries ${__g4externalcategories})
foreach(__prop PUBLIC PRIVATE INTERFACE)
__geant4_resolve_link_libraries(G4TESTLINKLIB_${__prop})
@@ -894,7 +896,6 @@ function(geant4_test_link_libraries _target)
list(APPEND _g4linklibs "${_linklib}")
endif()
endforeach()
message(STATUS "${_g4linklibs}")
set(_linklibs ${_g4linklibs})
else()
set(_linklibs ${G4TESTLINKLIB_${__prop}})
+13 -9
View File
@@ -65,10 +65,13 @@ if(GEANT4_USE_INVENTOR_QT AND NOT GEANT4_USE_QT)
message(STATUS "Forcing GEANT4_USE_QT to ON, required by selection of GEANT4_USE_INVENTOR_QT as ON")
endif()
# TEMPORARY for 11.2 Beta Development
# Decision still required on whether to allow selection of 5/6 in production
cmake_dependent_option(GEANT4_USE_QT_QT6 "Require Qt6 when building Qt support" OFF "GEANT4_USE_QT" OFF)
mark_as_advanced(GEANT4_USE_QT_QT6)
# We default to Qt6 if available, but allow the user to select Qt5
set(GEANT4_USE_QT_QT6 ON)
cmake_dependent_option(GEANT4_USE_QT_QT5 "Require Qt5 when building Qt support" OFF "GEANT4_USE_QT" OFF)
if(GEANT4_USE_QT_QT5)
set(GEANT4_USE_QT_QT6 OFF)
endif()
# - Vtk
option(GEANT4_USE_VTK "Build Geant4 with VTK visualisation" OFF)
@@ -161,15 +164,13 @@ if(GEANT4_USE_QT)
# 5.9 is selected as the min version to support based on the system version on CentOS7
# Once 5.15 is the minimum version, the "Qt${QT_VERSION_MAJOR}_..." variables can be dropped
# - https://doc.qt.io/qt-6/cmake-manual.html
# TEMPORARY for 11.2 beta:
# - Decision still required on whether to allow selection of 5/6 in production
# TODO:
# - Because VTK and SoQt use Qt themselves, we may want to consider checking that we
# have a consistent link to the same Qt version
if(GEANT4_USE_QT_QT6)
find_package(QT NAMES Qt6 COMPONENTS Core REQUIRED)
else()
if(GEANT4_USE_QT_QT5)
find_package(QT 5.9 NAMES Qt5 COMPONENTS Core REQUIRED)
else()
find_package(QT NAMES Qt6 COMPONENTS Core REQUIRED)
endif()
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets OpenGL REQUIRED)
@@ -181,6 +182,9 @@ if(GEANT4_USE_QT)
Qt${QT_VERSION_MAJOR}Widgets_DIR
Qt${QT_VERSION_MAJOR}OpenGL_DIR)
# RayTracerQT
set(GEANT4_USE_RAYTRACER_QT ON)
# G4OpenGL and G4ToolsSG also require OpenGLWidgets in Qt6
if(QT_VERSION_MAJOR GREATER 5)
find_package(Qt${QT_VERSION_MAJOR}OpenGLWidgets REQUIRED)
+4
View File
@@ -175,7 +175,11 @@ function(geant4_add_test test)
-DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS}
-DCMAKE_STATIC_LINKER_FLAGS=${CMAKE_STATIC_LINKER_FLAGS}
-DCMAKE_DISABLE_FIND_PACKAGE_ROOT=$<BOOL:${CMAKE_DISABLE_FIND_PACKAGE_ROOT}>
-DCMAKE_EXPORT_COMPILE_COMMANDS=$<BOOL:${CMAKE_EXPORT_COMPILE_COMMANDS}>
)
if(ARG_ENVIRONMENT)
set_property(TEST ${__build_test_name} PROPERTY ENVIRONMENT ${ARG_ENVIRONMENT})
endif()
# Build part of the test should have additional regex, and *must* have same labels
if(ARG_FAILREGEX)