# - Try to find CLHEP
# Once done this will define
#
# CLHEP_FOUND - system has CLHEP
# CLHEP_INCLUDE_DIR - the CLHEP include directory
# CLHEP_LIBRARIES - The libraries needed to use CLHEP
# CLHEP_DEFINITIONS - Compiler switches required for using CLHEP
#
if (CLHEP_INCLUDE_DIR AND CLHEP_LIBRARY_DIR)
SET (CLHEP_INCLUDE_DIR CLHEP_INCLUDE_DIR-NOTFOUND)
SET (CLHEP_LIB_DIR CLHEP_LIB_DIR-NOTFOUND)
SET (CLHEP_PLISTS_LIB_DIR CLHEP_PLISTS_LIB_DIR-NOTFOUND)
endif (CLHEP_INCLUDE_DIR AND CLHEP_LIBRARY_DIR)
MESSAGE(STATUS "Looking for CLHEP...")
# If we find the new clhep-config executable use it, otherwise search in the path
Find_Program(CLHEP_CONFIG_EXE NAMES clhep-config PATHS
${SIMPATH}/cern/clhep/bin
${SIMPATH}/cern/clhep/
${SIMPATH}/bin
NO_DEFAULT_PATH
)
If(CLHEP_CONFIG_EXE)
# Use clhep-config to find libs and includes
execute_process(COMMAND ${CLHEP_CONFIG_EXE} --libs OUTPUT_VARIABLE CLHEP_CONFIG_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${CLHEP_CONFIG_EXE} --include OUTPUT_VARIABLE CLHEP_CONFIG_INCLUDE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${CLHEP_CONFIG_EXE} --prefix OUTPUT_VARIABLE CLHEP_BASE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
# clean the variables because they are of the form -I/
or -L/ -l
String (REGEX MATCHALL "((-L|-l|-Wl)([^\" ]+|\"[^\"]+\")|/[^\" ]+(a|so|dll))" _all_tokens "${CLHEP_CONFIG_LIBS}")
Set(_directory_list)
ForEach (token ${_all_tokens})
If (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
# If it's a library path, add it to the list
string (REGEX REPLACE "^-L" "" token ${token})
string (REGEX REPLACE "//" "/" token ${token})
list (APPEND _directory_list ${token})
EndIf (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
EndForEach (token ${_all_tokens})
Set(CLHEP_LIBRARY_DIR ${_directory_list})
String (REGEX MATCHALL "-I([^\" ]+|\"[^\"]+\")" _all_tokens "${CLHEP_CONFIG_INCLUDE_DIR}")
Set (_incs_found)
ForEach (token ${_all_tokens})
String (REGEX REPLACE "^-I" "" token ${token})
String (REGEX REPLACE "//" "/" token ${token})
If (EXISTS ${token})
List (APPEND _incs_found ${token})
EndIf (EXISTS ${token})
EndForEach (token)
List (LENGTH _incs_found _length)
If (_length GREATER 1)
List (REMOVE_DUPLICATES _incs_found)
EndIf (_length GREATER 1)
Set (CLHEP_INCLUDE_DIR ${_incs_found})
set(CLHEP_LIBRARIES "-L${CLHEP_LIBRARY_DIR} -lCLHEP")
Else(CLHEP_CONFIG_EXE)
# check if clhep is available in Geant4
If (GEANT4_FOUND)
find_path(CLHEP_LIBRARY_DIR NAMES libG4clhep.so PATHS
${GEANT4_LIBRARY_DIR}
)
set(CLHEP_LIBRARIES "-L${CLHEP_LIBRARY_DIR} -lG4clhep")
FIND_PATH(CLHEP_INCLUDE_DIR NAMES CLHEP PATHS
${GEANT4_INCLUDE_DIR}
${SIMPATH}/cern/clhep/include
${SIMPATH}/include
NO_DEFAULT_PATH
)
Else (GEANT4_FOUND)
FIND_PATH(CLHEP_INCLUDE_DIR NAMES CLHEP PATHS
${SIMPATH}/cern/clhep/include
${SIMPATH}/include
NO_DEFAULT_PATH
)
FIND_PATH(CLHEP_BASE_DIR NAMES ClhepVersion.h PATHS
${SIMPATH}/cern/clhep
${SIMPATH}/include
NO_DEFAULT_PATH
)
FIND_PATH(CLHEP_LIBRARY_DIR NAMES libCLHEP.so libCLHEP.dylib PATHS
${SIMPATH}/cern/clhep/lib
${SIMPATH}/lib
NO_DEFAULT_PATH
)
set(CLHEP_LIBRARIES "-L${CLHEP_LIBRARY_DIR} -lCLHEP")
EndIf (GEANT4_FOUND)
EndIf(CLHEP_CONFIG_EXE)
If (CLHEP_INCLUDE_DIR AND CLHEP_LIBRARY_DIR)
set(CLHEP_FOUND TRUE)
EndIf (CLHEP_INCLUDE_DIR AND CLHEP_LIBRARY_DIR)
If (CLHEP_FOUND)
if (NOT CLHEP_FIND_QUIETLY)
MESSAGE(STATUS "Looking for CLHEP... - found ${CLHEP_LIBRARY_DIR}")
# message(STATUS "Found CLHEP: ${CLHEP_LIBRARY_DIR}")
SET(LD_LIBRARY_PATH ${LD_LIBRARY_PATH} ${CLHEP_LIBRARY_DIR})
endif (NOT CLHEP_FIND_QUIETLY)
Else (CLHEP_FOUND)
if (CLHEP_FIND_REQUIRED)
message(FATAL_ERROR "Looking for CLHEP... - Not found")
endif (CLHEP_FIND_REQUIRED)
EndIf (CLHEP_FOUND)