# - Try to find jemalloc # Once done this will define # JEMALLOC_FOUND - System has jemalloc # JEMALLOC_INCLUDE_DIRS - The jemalloc include directories # JEMALLOC_LIBRARIES - The libraries needed to use jemalloc find_package(PkgConfig QUIET) pkg_check_modules(PC_JEMALLOC QUIET jemalloc) find_path(JEMALLOC_INCLUDE_DIR NAMES jemalloc/jemalloc.h HINTS ${PC_JEMALLOC_INCLUDE_DIRS} ) find_library(JEMALLOC_LIBRARY NAMES jemalloc HINTS ${PC_JEMALLOC_LIBRARY_DIRS} ) if(JEMALLOC_INCLUDE_DIR) set(_version_regex "^#define[ \t]+JEMALLOC_VERSION[ \t]+\"([^\"]+)\".*") file(STRINGS "${JEMALLOC_INCLUDE_DIR}/jemalloc/jemalloc.h" JEMALLOC_VERSION REGEX "${_version_regex}") string(REGEX REPLACE "${_version_regex}" "\\1" JEMALLOC_VERSION "${JEMALLOC_VERSION}") unset(_version_regex) endif() include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE # if all listed variables are TRUE and the requested version matches. find_package_handle_standard_args(Jemalloc REQUIRED_VARS JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR VERSION_VAR JEMALLOC_VERSION) if(JEMALLOC_FOUND) set(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY}) set(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR}) endif() mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY)