Newer
Older
##############################################################################
# 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" )
Marko Petric
committed
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 )
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 geant 4 was built with CLHEP we need to export this to client packages
if( ${GEANT4_USE_CLHEP} )
set( GEANT4_USE_CLHEP 1 )
CHECK_PACKAGE_LIBS(DD4hep DDCore)
IF(DD4hep_FIND_COMPONENTS)
Markus Frank
committed
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)
Markus Frank
committed
MESSAGE(FATAL_ERROR "|++> Did not find required component: ${comp}")
#---- 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 )
Christoph Rosemann
committed
SET( DD4hep_FOUND ${DD4HEP_FOUND} )