Files
geant4/source/externals/clhep/CMakeLists.txt
T
2017-12-08 12:52:30 +01:00

271 lines
7.8 KiB
CMake

#------------------------------------------------------------------------------
# CMakeLists.txt
# Module : G4clhep
# Package: Geant4.src.G4externals.G4clhep
#
# CMakeLists.txt for G4clhep. We do not use the usual Geant4 sources.cmake
# approach because G4clhep requires a custom install solution for its
# headers. These are in a nested structure so this needs to be replicated
# when we install, i.e:
# <INCLUDE>
# +- geant4
# +- CLHEP
# +- Vector
# | +- ThreeVector.h
# ...
#
# Nevertheless, we're able to build the library via the standard
# GEANT4_LIBRARY_TARGET macro.
#
# Created on: 02/06/2011
#
# $Date$
# $Revision$
# $Author$
#
#------------------------------------------------------------------------------
#----------------------------------------------------------------------------
# Includes for this modules
#
include_directories(include)
#----------------------------------------------------------------------------
# Compile definitions needed
#
add_definitions(-DCLHEP_EXPORT)
#----------------------------------------------------------------------------
# List the headers and sources
#
# - Headers
set(G4clhep_HEADERS
include/CLHEP/Evaluator/Evaluator.h
include/CLHEP/Evaluator/hash_map.icc
include/CLHEP/Evaluator/stack.icc
include/CLHEP/Evaluator/string.icc
include/CLHEP/Geometry/BasicVector3D.h
include/CLHEP/Geometry/Normal3D.h
include/CLHEP/Geometry/Plane3D.h
include/CLHEP/Geometry/Point3D.h
include/CLHEP/Geometry/Transform3D.h
include/CLHEP/Geometry/Vector3D.h
include/CLHEP/Random/DoubConv.h
include/CLHEP/Random/DualRand.h
include/CLHEP/Random/EngineFactory.h
include/CLHEP/Random/engineIDulong.h
include/CLHEP/Random/JamesRandom.h
include/CLHEP/Random/mixmax_skip_N8.icc
include/CLHEP/Random/mixmax_skip_N17.icc
include/CLHEP/Random/mixmax_skip_N240.icc
include/CLHEP/Random/MixMaxRng.h
include/CLHEP/Random/MTwistEngine.h
include/CLHEP/Random/NonRandomEngine.h
include/CLHEP/Random/RandBinomial.h
include/CLHEP/Random/RandBinomial.icc
include/CLHEP/Random/RandBit.h
include/CLHEP/Random/RandBreitWigner.h
include/CLHEP/Random/RandBreitWigner.icc
include/CLHEP/Random/RandChiSquare.h
include/CLHEP/Random/RandChiSquare.icc
include/CLHEP/Random/RandExponential.h
include/CLHEP/Random/RandExponential.icc
include/CLHEP/Random/RandFlat.h
include/CLHEP/Random/RandFlat.icc
include/CLHEP/Random/RandGamma.h
include/CLHEP/Random/RandGamma.icc
include/CLHEP/Random/RandGauss.h
include/CLHEP/Random/RandGauss.icc
include/CLHEP/Random/RandGaussQ.h
include/CLHEP/Random/RandGaussQ.icc
include/CLHEP/Random/RandGeneral.h
include/CLHEP/Random/RandGeneral.icc
include/CLHEP/Random/RandLandau.h
include/CLHEP/Random/RandLandau.icc
include/CLHEP/Random/RandPoisson.h
include/CLHEP/Random/RandPoisson.icc
include/CLHEP/Random/RandPoissonQ.h
include/CLHEP/Random/RandPoissonQ.icc
include/CLHEP/Random/RandStudentT.h
include/CLHEP/Random/RandStudentT.icc
include/CLHEP/Random/Random.h
include/CLHEP/Random/Random.icc
include/CLHEP/Random/RandomEngine.h
include/CLHEP/Random/RandomEngine.icc
include/CLHEP/Random/Randomize.h
include/CLHEP/Random/RanecuEngine.h
include/CLHEP/Random/Ranlux64Engine.h
include/CLHEP/Random/RanluxEngine.h
include/CLHEP/Random/RanshiEngine.h
include/CLHEP/Random/SeedTable.h
include/CLHEP/Random/Stat.h
include/CLHEP/Random/StaticRandomStates.h
include/CLHEP/Random/gaussQTables.cdat
include/CLHEP/Random/gaussTables.cdat
include/CLHEP/Random/poissonTables.cdat
include/CLHEP/Units/PhysicalConstants.h
include/CLHEP/Units/SystemOfUnits.h
include/CLHEP/Utility/defs.h
include/CLHEP/Utility/keywords.h
include/CLHEP/Utility/memory.h
include/CLHEP/Utility/noncopyable.h
include/CLHEP/Utility/use_atomic.h
include/CLHEP/Vector/AxisAngle.h
include/CLHEP/Vector/AxisAngle.icc
include/CLHEP/Vector/Boost.h
include/CLHEP/Vector/Boost.icc
include/CLHEP/Vector/BoostX.h
include/CLHEP/Vector/BoostX.icc
include/CLHEP/Vector/BoostY.h
include/CLHEP/Vector/BoostY.icc
include/CLHEP/Vector/BoostZ.h
include/CLHEP/Vector/BoostZ.icc
include/CLHEP/Vector/EulerAngles.h
include/CLHEP/Vector/EulerAngles.icc
include/CLHEP/Vector/LorentzRotation.h
include/CLHEP/Vector/LorentzRotation.icc
include/CLHEP/Vector/LorentzVector.h
include/CLHEP/Vector/LorentzVector.icc
include/CLHEP/Vector/Rotation.h
include/CLHEP/Vector/Rotation.icc
include/CLHEP/Vector/RotationInterfaces.h
include/CLHEP/Vector/RotationInterfaces.icc
include/CLHEP/Vector/RotationX.h
include/CLHEP/Vector/RotationX.icc
include/CLHEP/Vector/RotationY.h
include/CLHEP/Vector/RotationY.icc
include/CLHEP/Vector/RotationZ.h
include/CLHEP/Vector/RotationZ.icc
include/CLHEP/Vector/ThreeVector.h
include/CLHEP/Vector/ThreeVector.icc
include/CLHEP/Vector/TwoVector.h
include/CLHEP/Vector/TwoVector.icc
)
# - Sources
set(G4clhep_SOURCES
src/AxisAngle.cc
src/BasicVector3D.cc
src/Boost.cc
src/BoostX.cc
src/BoostY.cc
src/BoostZ.cc
src/DoubConv.cc
src/DualRand.cc
src/EngineFactory.cc
src/engineIDulong.cc
src/erfQ.cc
src/EulerAngles.cc
src/Evaluator.cc
src/flatToGaussian.cc
src/gammln.cc
src/JamesRandom.cc
src/LorentzRotation.cc
src/LorentzRotationC.cc
src/LorentzRotationD.cc
src/LorentzVectorB.cc
src/LorentzVector.cc
src/LorentzVectorC.cc
src/LorentzVectorK.cc
src/LorentzVectorL.cc
src/LorentzVectorR.cc
src/MixMaxRng.cc
src/MTwistEngine.cc
src/NonRandomEngine.cc
src/Normal3D.cc
src/Plane3D.cc
src/Point3D.cc
src/RandBinomial.cc
src/RandBit.cc
src/RandBreitWigner.cc
src/RandChiSquare.cc
src/RandExponential.cc
src/RandFlat.cc
src/RandGamma.cc
src/RandGauss.cc
src/RandGaussQ.cc
src/RandGeneral.cc
src/RandLandau.cc
src/Random.cc
src/RandomEngine.cc
src/RandPoisson.cc
src/RandPoissonQ.cc
src/RandStudentT.cc
src/RanecuEngine.cc
src/Ranlux64Engine.cc
src/RanluxEngine.cc
src/RanshiEngine.cc
src/RotationA.cc
src/Rotation.cc
src/RotationC.cc
src/RotationE.cc
src/RotationInterfaces.cc
src/RotationIO.cc
src/RotationL.cc
src/RotationP.cc
src/RotationX.cc
src/RotationY.cc
src/RotationZ.cc
src/setStdMath.cc
src/setSystemOfUnits.cc
src/SpaceVector.cc
src/SpaceVectorD.cc
src/SpaceVectorP.cc
src/SpaceVectorR.cc
src/StaticRandomStates.cc
src/ThreeVector.cc
src/ThreeVectorR.cc
src/Transform3D.cc
src/TwoVector.cc
src/Vector3D.cc
src/ZMinput.cc
)
#----------------------------------------------------------------------------
# Now add the library targets
#
include(Geant4MacroLibraryTargets)
GEANT4_LIBRARY_TARGET(NAME G4clhep SOURCES ${G4clhep_SOURCES} ${G4clhep_HEADERS})
# Interface usage requirements (build time clients only)
foreach(__g4clhep_target G4clhep G4clhep-static)
if(TARGET ${__g4clhep_target})
target_include_directories(${__g4clhep_target}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
endif()
endforeach()
#----------------------------------------------------------------------------
# Ensure the header directory gets added to the list of ones to export
#
set_property(GLOBAL APPEND PROPERTY GEANT4_BUILDTREE_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/include
)
#----------------------------------------------------------------------------
# Install the headers, retaining their nested structure
#
install(DIRECTORY include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
COMPONENT Development
PATTERN ".svn" EXCLUDE
PATTERN "*.h"
PATTERN ".icc")