blob: 3ecdf162594016cfb4bf03ef70b748923e03b73d [file] [log] [blame]
# -*- cmake -*-
# - Find Google perftools
# Find the Google perftools includes and libraries
# This module defines
# GOOGLE_PERFTOOLS_INCLUDE_DIR, where to find heap-profiler.h, etc.
# GOOGLE_PERFTOOLS_FOUND, If false, do not try to use Google perftools.
# also defined for general use are
# TCMALLOC_LIBS, where to find the tcmalloc libraries.
# TCMALLOC_STATIC_LIB, path to libtcmalloc.a.
# TCMALLOC_SHARED_LIB, path to libtcmalloc's shared library
# PROFILER_LIBS, where to find the profiler libraries.
# PROFILER_STATIC_LIB, path to libprofiler.a.
# PROFILER_SHARED_LIB, path to libprofiler's shared library
FIND_PATH(GOOGLE_PERFTOOLS_INCLUDE_DIR google/heap-profiler.h
${THIRDPARTY_PREFIX}/include
NO_DEFAULT_PATH
)
SET(GPERF_LIB_SEARCH ${THIRDPARTY_PREFIX}/lib)
FIND_LIBRARY(TCMALLOC_LIB_PATH
NAMES libtcmalloc.a
PATHS ${GPERF_LIB_SEARCH}
NO_DEFAULT_PATH
)
IF (TCMALLOC_LIB_PATH AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
SET(TCMALLOC_LIBS ${GPERF_LIB_SEARCH})
SET(TCMALLOC_LIB_NAME libtcmalloc)
SET(TCMALLOC_STATIC_LIB ${GPERF_LIB_SEARCH}/${TCMALLOC_LIB_NAME}.a)
SET(TCMALLOC_SHARED_LIB ${TCMALLOC_LIBS}/${TCMALLOC_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(GOOGLE_PERFTOOLS_FOUND "YES")
ELSE (TCMALLOC_LIB_PATH AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
SET(GOOGLE_PERFTOOLS_FOUND "NO")
ENDIF (TCMALLOC_LIB_PATH AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
FIND_LIBRARY(PROFILER_LIB_PATH
NAMES libprofiler.a
PATHS ${GPERF_LIB_SEARCH}
)
IF (PROFILER_LIB_PATH AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
SET(PROFILER_LIBS ${GPERF_LIB_SEARCH})
SET(PROFILER_LIB_NAME libprofiler)
SET(PROFILER_STATIC_LIB ${GPERF_LIB_SEARCH}/${PROFILER_LIB_NAME}.a)
SET(PROFILER_SHARED_LIB ${PROFILER_LIBS}/${PROFILER_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
ENDIF (PROFILER_LIB_PATH AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
IF (GOOGLE_PERFTOOLS_FOUND)
IF (NOT GPerf_FIND_QUIETLY)
MESSAGE(STATUS "Found the Google perftools library: ${TCMALLOC_LIBS}")
ENDIF (NOT GPerf_FIND_QUIETLY)
ELSE (GOOGLE_PERFTOOLS_FOUND)
IF (GPerf_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find the Google perftools library")
ENDIF (GPerf_FIND_REQUIRED)
ENDIF (GOOGLE_PERFTOOLS_FOUND)
MARK_AS_ADVANCED(
TCMALLOC_LIBS
TCMALLOC_STATIC_LIB
TCMALLOC_SHARED_LIB
PROFILER_LIBS
PROFILER_STATIC_LIB
PROFILER_SHARED_LIB
GOOGLE_PERFTOOLS_INCLUDE_DIR
)