#------------------------------------------------------------------------------
# CMakeLists.txt for G4clhep external

# - Headers
set(G4clhep_HEADERS
  include/CLHEP/Evaluator/Evaluator.h
  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/ranluxpp/helpers.h
  include/CLHEP/Random/ranluxpp/mulmod.h
  include/CLHEP/Random/ranluxpp/ranlux_lcg.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_N17.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/RanluxppEngine.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/RanluxppEngine.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 )

#----------------------------------------------------------------------------
# Build definitions
add_definitions(-DCLHEP_EXPORT)
geant4_add_external_library(NAME G4clhep SOURCES ${G4clhep_SOURCES} ${G4clhep_HEADERS})

#----------------------------------------------------------------------------
# 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")
