############################################################################## # cmake configuration file for DD4hep # # returns following variables: # # DD4hep_FOUND : set to TRUE if DD4hep found # DD4hep_VERSION : package version # DD4hep_ROOT : path to this DD4hep installation # DD4hep_LIBRARIES : list of DD4hep libraries # DD4hep_INCLUDE_DIRS : list of paths to be used with INCLUDE_DIRECTORIES # DD4hep_LIBRARY_DIRS : list of paths to be used with LINK_DIRECTORIES # # @author Jan Engels, Desy ############################################################################## # Locate the DD4hep install prefix. This CMake file is installed in two # different locations (root and "cmake" subdir) that we must disambiguate. get_filename_component(_thisdir "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_lastdir "${_thisdir}" NAME) if (_lastdir STREQUAL "cmake") get_filename_component(_thisdir "${_thisdir}" PATH) endif() set ( DD4hep_DIR "${_thisdir}" ) set ( DD4hep_ROOT "${_thisdir}" ) set ( DD4hep_VERSION "@DD4hep_VERSION@" ) set ( DD4hep_SOVERSION "@DD4hep_SOVERSION@" ) set ( DD4HEP_USE_GEANT4 "@DD4HEP_USE_GEANT4@" ) set ( DD4HEP_USE_XERCESC "@DD4HEP_USE_XERCESC@" ) set ( CMAKE_CXX_STANDARD @CMAKE_CXX_STANDARD@ ) set ( CMAKE_CXX_STANDARD_REQUIRED ON ) set ( CMAKE_CXX_EXTENSIONS OFF ) set ( Geant4_DIR "@Geant4_DIR@" ) set ( GEANT4_USE_CLHEP "@GEANT4_USE_CLHEP@" ) set ( ROOTSYS "$ENV{ROOTSYS}" ) set ( ROOT_DIR "$ENV{ROOTSYS}/cmake" ) set ( ROOT_VERSION "@ROOT_VERSION@" ) include ( ${DD4hep_DIR}/cmake/DD4hep.cmake ) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DD4hep_DIR}/cmake ) # ---------- include dirs ----------------------------------------------------- # do not store find results in cache set( DD4hep_INCLUDE_DIRS DD4hep_INCLUDE_DIRS-NOTFOUND ) mark_as_advanced( DD4hep_INCLUDE_DIRS ) find_path( DD4hep_INCLUDE_DIRS NAMES DD4hep/DetElement.h PATHS ${DD4hep_DIR}/include NO_DEFAULT_PATH ) # ---------- default build type -------------------------------------------------------- if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set (CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel." FORCE) endif() # ---------- libraries -------------------------------------------------------- # do not store find results in cache set( DD4hep_LIBRARY_DIRS ${DD4hep_DIR}/lib ) set( DD4hep_LIBRARIES DD4hep_LIBRARIES-NOTFOUND ) mark_as_advanced( DD4hep_LIBRARY_DIRS DD4hep_LIBRARIES ) include( ${DD4hep_DIR}/cmake/DD4hepMacros.cmake ) # only standard libraries should be passed as arguments to CHECK_PACKAGE_LIBS # additional components are set by cmake in variable PKG_FIND_COMPONENTS # first argument should be the package name if ( ${DD4HEP_USE_GEANT4} ) #--- if geant 4 was built with CLHEP we need to export this to client packages if( ${GEANT4_USE_CLHEP} ) set( GEANT4_USE_CLHEP 1 ) endif() set(Geant4_DIR ${Geant4_DIR} ) endif() CHECK_PACKAGE_LIBS(DD4hep DDCore) IF(DD4hep_FIND_COMPONENTS) dd4hep_print( "|++> DD4hep: Looking for Components: ${DD4hep_FIND_COMPONENTS}" ) FOREACH(comp ${DD4hep_FIND_COMPONENTS}) #CHECK_PACKAGE_LIBS is looking for components too, just need to check if they were found, if requested STRING( TOUPPER ${comp} _ulibname ) if(NOT DD4hep_${_ulibname}_FOUND) MESSAGE(FATAL_ERROR "|++> Did not find required component: ${comp}") ENDIF() ENDFOREACH() ENDIF() #---- build with xercesc or tinyxml ? if( @DD4HEP_USE_XERCESC@ ) set( DD4HEP_USE_XERCESC True ) endif() INCLUDE( ${DD4hep_DIR}/cmake/DD4hep_XML_setup.cmake ) #----- APPLE ? ------- set( USE_DYLD @USE_DYLD@ ) MARK_AS_ADVANCED( USE_DYLD ) # ---------- final checking --------------------------------------------------- INCLUDE( FindPackageHandleStandardArgs ) # set DD4HEP_FOUND to TRUE if all listed variables are TRUE and not empty FIND_PACKAGE_HANDLE_STANDARD_ARGS( DD4hep DEFAULT_MSG DD4hep_DIR DD4hep_INCLUDE_DIRS DD4hep_LIBRARIES ) SET( DD4hep_FOUND ${DD4HEP_FOUND} )