Import Geant4 10.3.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2016-06-30 14:12:05 +02:00
parent a654a7ab1f
commit 4ec577e5c4
2021 changed files with 100995 additions and 78277 deletions
+35 -1
View File
@@ -205,7 +205,7 @@ find_path(CLHEP_INCLUDE_DIR CLHEP/Units/defs.h
if(CLHEP_INCLUDE_DIR)
set(CLHEP_VERSION 0)
file(READ "${CLHEP_INCLUDE_DIR}/CLHEP/Units/defs.h" _CLHEP_DEFS_CONTENTS)
string(REGEX REPLACE ".*#define PACKAGE_VERSION \"([0-9.]+).*" "\\1"
string(REGEX REPLACE ".*#define (PACKAGE|CLHEP_UNITS)+_VERSION \"([0-9.]+).*" "\\2"
CLHEP_VERSION "${_CLHEP_DEFS_CONTENTS}")
if(NOT CLHEP_FIND_QUIETLY)
@@ -310,6 +310,40 @@ if(CLHEP_FOUND)
list(APPEND CLHEP_LIBRARIES ${${__clhep_lib}})
endforeach()
set(CLHEP_INCLUDE_DIRS ${CLHEP_INCLUDE_DIR})
# Create imported targets
foreach(__clhep_lib ${__CLHEP_LIBRARY_SET})
# Construct imported target name
string(REPLACE "_LIBRARY" "" __clhep_imp_lib "${__clhep_lib}")
string(REPLACE "_" "::" __clhep_imp_lib "${__clhep_imp_lib}")
if(__clhep_imp_lib STREQUAL "CLHEP")
# Create both CLHEP and CLHEP::CLHEP targets
if(NOT TARGET CLHEP::CLHEP)
add_library(CLHEP::CLHEP UNKNOWN IMPORTED)
set_target_properties(CLHEP::CLHEP PROPERTIES
IMPORTED_LOCATION "${CLHEP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}"
)
endif()
if(NOT TARGET CLHEP)
add_library(CLHEP UNKNOWN IMPORTED)
set_target_properties(CLHEP PROPERTIES
IMPORTED_LOCATION "${CLHEP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}"
)
endif()
else()
# Have a component target - these are always namespaced
# Note that at present, link interfaces aren't created...
if(NOT TARGET ${__clhep_imp_lib})
add_library(${__clhep_imp_lib} UNKNOWN IMPORTED)
set_target_properties(${__clhep_imp_lib} PROPERTIES
IMPORTED_LOCATION "${${__clhep_lib}}"
INTERFACE_INCLUDE_DIRECTORIES "${CLHEP_INCLUDE_DIRS}"
)
endif()
endif()
endforeach()
endif()
#----------------------------------------------------------------------------
+7 -9
View File
@@ -40,11 +40,8 @@ endif()
# - Stuff from Geant4OptionalComponents.cmake
# - CLHEP
# If it's internal, add it to the externals list, if it's external, add the
# include directories to the list of third party header paths
if(GEANT4_USE_SYSTEM_CLHEP)
list(APPEND GEANT4_THIRD_PARTY_INCLUDES ${CLHEP_INCLUDE_DIRS})
else()
# If it's internal, add it to the externals list
if(NOT GEANT4_USE_SYSTEM_CLHEP)
list(APPEND GEANT4_EXTERNALS_TARGETS G4clhep)
endif()
@@ -70,8 +67,9 @@ endif()
# - USolids
# Compile definitions
if(GEANT4_USE_USOLIDS)
list(APPEND GEANT4_CORE_DEFINITIONS -DG4GEOM_USE_USOLIDS)
if(GEANT4_USE_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS)
set(GEANT4_USE_USOLIDS_EITHER ON)
list(APPEND GEANT4_CORE_DEFINITIONS ${GEANT4_USOLIDS_COMPILE_DEFINITIONS})
# System USolids headers, because these do appear in Geant4's
# public interface. The library should be in the link interface
@@ -163,7 +161,7 @@ configure_file(
COPYONLY
)
foreach(_mod AIDA HepMC Pythia6 ROOT StatTest TBB)
foreach(_mod AIDA CLHEP HepMC Pythia6 ROOT StatTest TBB)
configure_file(
${PROJECT_SOURCE_DIR}/cmake/Modules/Find${_mod}.cmake
${PROJECT_BINARY_DIR}/Modules/Find${_mod}.cmake
@@ -207,7 +205,7 @@ else()
set(GEANT4_INCLUDE_DIR_SETUP "
# Geant4 configured for the install with relative paths, so use these
get_filename_component(Geant4_INCLUDE_DIR \"\${_thisdir}/${GEANT4_RELATIVE_HEADER_PATH}\" ABSOLUTE)
get_filename_component(Geant4_INCLUDE_DIR \"\${_geant4_thisdir}/${GEANT4_RELATIVE_HEADER_PATH}\" ABSOLUTE)
")
endif()
@@ -94,12 +94,19 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS AND UNIX)
# - CLHEP
if(GEANT4_USE_SYSTEM_CLHEP)
set(G4_BUILTWITH_CLHEP "no")
#inc path
get_filename_component(G4_SYSTEM_CLHEP_INCLUDE_DIR "${CLHEP_INCLUDE_DIR}" ABSOLUTE)
#libpath
list(GET CLHEP_LIBRARIES 0 _zeroth_clhep_lib)
get_filename_component(_system_clhep_libdir "${_zeroth_clhep_lib}" PATH)
get_target_property(_system_clhep_libdir "${_zeroth_clhep_lib}" LOCATION)
get_filename_component(_system_clhep_libdir "${_system_clhep_libdir}" REALPATH)
get_filename_component(_system_clhep_libdir "${_system_clhep_libdir}" DIRECTORY)
set(G4_SYSTEM_CLHEP_LIBRARIES "-L${_system_clhep_libdir}")
foreach(_clhep_lib ${CLHEP_LIBRARIES})
get_filename_component(_curlib "${_clhep_lib}" NAME)
get_target_property(_curlib "${_clhep_lib}" LOCATION)
get_filename_component(_curlib "${_curlib}" NAME)
string(REGEX REPLACE "^lib(.*)\\.(so|a|dylib|lib|dll)$" "\\1" _curlib "${_curlib}")
set(G4_SYSTEM_CLHEP_LIBRARIES "${G4_SYSTEM_CLHEP_LIBRARIES} -l${_curlib}")
endforeach()
@@ -144,13 +151,13 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS AND UNIX)
endif()
# - USolids
if(GEANT4_USE_USOLIDS)
if(GEANT4_USE_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS)
set(G4_BUILTWITH_USOLIDS "yes")
set(G4_USOLIDS_INCLUDE_DIRS ${USOLIDS_INCLUDE_DIRS})
list(REMOVE_DUPLICATES G4_USOLIDS_INCLUDE_DIRS)
list(REMOVE_ITEM G4_USOLIDS_INCLUDE_DIRS ${_cxx_compiler_dirs})
set(G4_USOLIDS_CFLAGS "-DG4GEOM_USE_USOLIDS")
string(REPLACE ";" " " G4_USOLIDS_CFLAGS "${GEANT4_USOLIDS_COMPILE_DEFINITIONS}")
foreach(_dir ${G4_USOLIDS_INCLUDE_DIRS})
set(G4_USOLIDS_CFLAGS "${G4_USOLIDS_CFLAGS} -I${_dir}")
endforeach()
+4 -4
View File
@@ -38,11 +38,11 @@ geant4_add_dataset(
# - Radioisotopes
geant4_add_dataset(
NAME RadioactiveDecay
VERSION 4.3
VERSION 4.4.1
FILENAME G4RadioactiveDecay
EXTENSION tar.gz
ENVVAR G4RADIOACTIVEDATA
MD5SUM 9f1630a5d9f00b4ba1ffc5f7df174827
MD5SUM 0aa6c879c17b26f1ca85d3ac915fc30e
)
# - Neutron XS
@@ -98,10 +98,10 @@ geant4_add_dataset(
# - ENSDFSTATE
geant4_add_dataset(
NAME G4ENSDFSTATE
VERSION 1.2
VERSION 1.3.1
FILENAME G4ENSDFSTATE
EXTENSION tar.gz
ENVVAR G4ENSDFSTATEDATA
MD5SUM a2e88f2c626141e4be4587c838832707
MD5SUM eddd153110184256a57ce6b753f0d527
)
+3 -5
View File
@@ -236,11 +236,9 @@ if(UNIX)
endif()
# Create final list of X11 libraries needed for Geant4
# - Motif
if(APPLE)
if(GEANT4_USE_XM OR GEANT4_USE_INVENTOR)
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xt_LIB})
endif()
# - Motif/Inventor
if(GEANT4_USE_XM OR GEANT4_USE_INVENTOR)
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xt_LIB} ${X11_Xmu_LIBRARY})
endif()
# - If we got to this point, RayTracer is o.k., so add the feature
+76 -9
View File
@@ -53,9 +53,19 @@ if(GEANT4_USE_SYSTEM_CLHEP)
set(__system_clhep_mode " (granular)")
endif()
# We keep this as required, because if the user chooses to use a
# system option we assume that we absolutely, positively require this.
find_package(CLHEP 2.3.1.0 REQUIRED ${__g4_clhep_components})
# Find CLHEP using package-mode (i.e. FindCLHEP)
# This will set up imported targets for us, but we need
# to set CLHEP_LIBRARIES afterwards to use these
find_package(CLHEP 2.3.3.0 REQUIRED ${__g4_clhep_components})
set(CLHEP_LIBRARIES CLHEP::CLHEP)
if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR)
set(CLHEP_LIBRARIES)
foreach(_comp ${__g4_clhep_components})
list(APPEND CLHEP_LIBRARIES "CLHEP::${_comp}")
endforeach()
endif()
set(GEANT4_USE_SYSTEM_CLHEP TRUE)
else()
set(CLHEP_FOUND TRUE)
@@ -167,22 +177,79 @@ endif()
#-----------------------------------------------------------------------
# Optional support for USolids - Requires USolids package
#
option(GEANT4_USE_USOLIDS "EXPERIMENTAL: Replace Geant4 solids with USolids equivalents" OFF)
# GEANT4_USE_USOLIDS is a list argument which must take values:
# - Empty/CMake boolean false : DEFAULT, do not replace G4 solids with USolids
# - ALL/CMake boolean true : Replace all G4 solids with USolids
# - List : Replace listed G4 solids with Usolids equivalents. Valid elements are
set(GEANT4_USOLIDS_SHAPES
BOX
CONS
EXTRUDEDSOLID
GENERICPOLYCONE
GENERICTRAP
ORB
PARABOLOID
POLYCONE
POLYHEDRA
SPHERE
TET
TRAP
TRD
TORUS
TUBS
)
set(GEANT4_USE_USOLIDS OFF CACHE STRING "EXPERIMENTAL: List Geant4 solids to replace with USolids equivalents (ALL;${GEANT4_USOLIDS_SHAPES})")
mark_as_advanced(GEANT4_USE_USOLIDS)
# - Must be a CMake list - no real way to enforce this
# Preprocess by stripping any spaces and uppercasing
string(REPLACE " " "" __g4_usolids_shape_list "${GEANT4_USE_USOLIDS}")
string(TOUPPER "${__g4_usolids_shape_list}" __g4_usolids_shape_list)
# - Check for use of all or usolids
set(GEANT4_USE_ALL_USOLIDS OFF)
string(REGEX MATCH "ALL|^(1|ON|YES|TRUE)" GEANT4_USE_ALL_USOLIDS "${__g4_usolids_shape_list}")
# - Check and validate partial non-empty list
if(NOT GEANT4_USE_ALL_USOLIDS AND GEANT4_USE_USOLIDS)
set(GEANT4_USE_PARTIAL_USOLIDS ON)
set(GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST)
foreach(__g4_usolids_requested_shape ${__g4_usolids_shape_list})
list(FIND GEANT4_USOLIDS_SHAPES "${__g4_usolids_requested_shape}" __g4solids_shape_index)
if(__g4solids_shape_index GREATER -1)
list(APPEND GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST ${__g4_usolids_requested_shape})
else()
message(FATAL_ERROR "GEANT4_USE_USOLIDS: unknown shape '${__g4_usolids_requested_shape}' in input, must be one of\n${GEANT4_USOLIDS_SHAPES}\n")
endif()
endforeach()
endif()
# - G4USolids setup
if(GEANT4_USE_USOLIDS)
if(GEANT4_USE_ALL_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS)
find_package(USolids REQUIRED)
add_definitions(-DG4GEOM_USE_USOLIDS)
if(GEANT4_USE_ALL_USOLIDS)
set(GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_USOLIDS")
GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing all Geant4 solids with USolids equivalents (EXPERIMENTAL)")
else()
set(GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_PARTIAL_USOLIDS")
foreach(__g4_usolid_shape ${GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST})
list(APPEND GEANT4_USOLIDS_COMPILE_DEFINITIONS "-DG4GEOM_USE_U${__g4_usolid_shape}")
endforeach()
GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing Geant4 solids with USolids equivalents for ${GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST} (EXPERIMENTAL)")
endif()
# Combined definitions
add_definitions(${GEANT4_USOLIDS_COMPILE_DEFINITIONS})
# Add USolids inc dirs here - can be removed once USolids supports
# INTERFACE_INCLUDE_DIRECTORIES
include_directories(${USOLIDS_INCLUDE_DIRS})
endif()
GEANT4_ADD_FEATURE(GEANT4_USE_USOLIDS "Replacing Geant4 solids with USolids equivalents (EXPERIMENTAL)")
#-----------------------------------------------------------------------
# Optional support for Freetype - Requires external Freetype install
@@ -327,25 +327,29 @@ macro(_g4tc_configure_tc_variables SHELL_FAMILY SCRIPT_NAME)
# - CLHEP...
if(GEANT4_USE_SYSTEM_CLHEP)
# Have to use detected CLHEP paths to set base dir and others
get_filename_component(_CLHEP_BASE_DIR ${CLHEP_INCLUDE_DIR} PATH)
get_filename_component(_CLHEP_INCLUDE_DIR "${CLHEP_INCLUDE_DIR}" REALPATH)
get_filename_component(_CLHEP_BASE_DIR "${_CLHEP_INCLUDE_DIR}" DIRECTORY)
# Handle granular vs singular cases
if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR)
get_filename_component(_CLHEP_LIB_DIR ${CLHEP_Vector_LIBRARY} PATH)
get_target_property(_CLHEP_LIB_DIR CLHEP::Vector LOCATION)
else()
get_filename_component(_CLHEP_LIB_DIR ${CLHEP_LIBRARY} PATH)
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
endif()
set(GEANT4_TC_G4LIB_USE_CLHEP "# USING SYSTEM CLHEP")
_g4tc_setenv_command(GEANT4_TC_CLHEP_BASE_DIR ${SHELL_FAMILY} CLHEP_BASE_DIR ${_CLHEP_BASE_DIR})
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
_g4tc_setenv_command(GEANT4_TC_CLHEP_INCLUDE_DIR ${SHELL_FAMILY} CLHEP_INCLUDE_DIR ${CLHEP_INCLUDE_DIR})
set(GEANT4_TC_G4LIB_USE_CLHEP "# USING SYSTEM CLHEP")
_g4tc_setenv_command(GEANT4_TC_CLHEP_BASE_DIR ${SHELL_FAMILY} CLHEP_BASE_DIR "${_CLHEP_BASE_DIR}")
_g4tc_setenv_command(GEANT4_TC_CLHEP_INCLUDE_DIR ${SHELL_FAMILY} CLHEP_INCLUDE_DIR "${_CLHEP_INCLUDE_DIR}")
# Only need to handle CLHEP_LIB for granular case
if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR)
set(G4_SYSTEM_CLHEP_LIBRARIES )
foreach(_clhep_lib ${CLHEP_LIBRARIES})
get_filename_component(_curlib "${_clhep_lib}" NAME)
get_target_property(_CLHEP_LIB_NAME ${_clhep_lib} LOCATION)
get_filename_component(_curlib "${_CLHEP_LIB_NAME}" NAME)
string(REGEX REPLACE "^lib(.*)\\.(so|a|dylib|lib|dll)$" "\\1" _curlib "${_curlib}")
set(G4_SYSTEM_CLHEP_LIBRARIES "${G4_SYSTEM_CLHEP_LIBRARIES} -l${_curlib}")
endforeach()
@@ -757,11 +761,14 @@ foreach(_shell bourne;cshell)
if(GEANT4_USE_SYSTEM_CLHEP)
# Handle granular vs singular cases
if(GEANT4_USE_SYSTEM_CLHEP_GRANULAR)
get_filename_component(_CLHEP_LIB_DIR ${CLHEP_Vector_LIBRARY} PATH)
get_target_property(_CLHEP_LIB_DIR CLHEP::Vector LOCATION)
else()
get_filename_component(_CLHEP_LIB_DIR ${CLHEP_LIBRARY} PATH)
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
endif()
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
_g4tc_prepend_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
${_libpathname}
+1 -1
View File
@@ -15,7 +15,7 @@
using namespace std;
#define MakePtr( cast, ptr, addValue ) (cast)( (DWORD)(ptr) + (DWORD)(addValue))
#define MakePtr( cast, ptr, addValue ) (cast)( (DWORD_PTR)(ptr) + (DWORD_PTR)(addValue))
/////////////////////////////////////////////////////////////////////////////
// CLibSymbolInfo