FindJeMalloc.cmake 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # - Try to find jemalloc
  2. # Once done this will define
  3. # JEMALLOC_FOUND - System has jemalloc
  4. # JEMALLOC_INCLUDE_DIRS - The jemalloc include directories
  5. # JEMALLOC_LIBRARIES - The libraries needed to use jemalloc
  6. if(NOT USE_BUNDLED_JEMALLOC)
  7. find_package(PkgConfig)
  8. if (PKG_CONFIG_FOUND)
  9. pkg_check_modules(PC_JEMALLOC QUIET jemalloc)
  10. endif()
  11. else()
  12. set(PC_JEMALLOC_INCLUDEDIR)
  13. set(PC_JEMALLOC_INCLUDE_DIRS)
  14. set(PC_JEMALLOC_LIBDIR)
  15. set(PC_JEMALLOC_LIBRARY_DIRS)
  16. set(LIMIT_SEARCH NO_DEFAULT_PATH)
  17. endif()
  18. set(JEMALLOC_DEFINITIONS ${PC_JEMALLOC_CFLAGS_OTHER})
  19. find_path(JEMALLOC_INCLUDE_DIR jemalloc/jemalloc.h
  20. PATHS ${PC_JEMALLOC_INCLUDEDIR} ${PC_JEMALLOC_INCLUDE_DIRS}
  21. ${LIMIT_SEARCH})
  22. # If we're asked to use static linkage, add libjemalloc.a as a preferred library name.
  23. if(JEMALLOC_USE_STATIC)
  24. list(APPEND JEMALLOC_NAMES
  25. "${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc${CMAKE_STATIC_LIBRARY_SUFFIX}")
  26. elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  27. list(INSERT JEMALLOC_NAMES 0
  28. "${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc${CMAKE_STATIC_LIBRARY_SUFFIX}")
  29. endif()
  30. list(APPEND JEMALLOC_NAMES jemalloc)
  31. find_library(JEMALLOC_LIBRARY NAMES ${JEMALLOC_NAMES}
  32. HINTS ${PC_JEMALLOC_LIBDIR} ${PC_JEMALLOC_LIBRARY_DIRS}
  33. ${LIMIT_SEARCH})
  34. set(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
  35. set(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
  36. include(FindPackageHandleStandardArgs)
  37. # handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE
  38. # if all listed variables are TRUE
  39. find_package_handle_standard_args(JeMalloc DEFAULT_MSG
  40. JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR)
  41. mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY)