| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # Tries to find jemalloc headers and libraries. |
| # |
| # Usage of this module as follows: |
| # |
| # find_package(jemalloc) |
| # |
| # Variables used by this module, they can change the default behaviour and need |
| # to be set before calling find_package: |
| # |
| # JEMALLOC_HOME - |
| # When set, this path is inspected instead of standard library locations as |
| # the root of the jemalloc installation. The environment variable |
| # JEMALLOC_HOME overrides this veriable. |
| # |
| # This module defines |
| # JEMALLOC_INCLUDE_DIR, directory containing headers |
| # JEMALLOC_SHARED_LIB, path to libjemalloc.so/dylib |
| # JEMALLOC_FOUND, whether flatbuffers has been found |
| |
| if(NOT "${JEMALLOC_HOME}" STREQUAL "") |
| file(TO_CMAKE_PATH "${JEMALLOC_HOME}" _native_path) |
| list(APPEND _jemalloc_roots ${_native_path}) |
| elseif(JEMALLOC_HOME) |
| list(APPEND _jemalloc_roots ${JEMALLOC_HOME}) |
| endif() |
| |
| set(LIBJEMALLOC_NAMES jemalloc libjemalloc.so.1 libjemalloc.so.2 libjemalloc.dylib) |
| |
| # Try the parameterized roots, if they exist |
| if(_jemalloc_roots) |
| find_path(JEMALLOC_INCLUDE_DIR |
| NAMES jemalloc/jemalloc.h |
| PATHS ${_jemalloc_roots} |
| NO_DEFAULT_PATH |
| PATH_SUFFIXES "include") |
| find_library(JEMALLOC_SHARED_LIB |
| NAMES ${LIBJEMALLOC_NAMES} |
| PATHS ${_jemalloc_roots} |
| NO_DEFAULT_PATH |
| PATH_SUFFIXES "lib") |
| find_library(JEMALLOC_STATIC_LIB |
| NAMES jemalloc_pic |
| PATHS ${_jemalloc_roots} |
| NO_DEFAULT_PATH |
| PATH_SUFFIXES "lib") |
| else() |
| find_path(JEMALLOC_INCLUDE_DIR NAMES jemalloc/jemalloc.h) |
| message(STATUS ${JEMALLOC_INCLUDE_DIR}) |
| find_library(JEMALLOC_SHARED_LIB NAMES ${LIBJEMALLOC_NAMES}) |
| message(STATUS ${JEMALLOC_SHARED_LIB}) |
| find_library(JEMALLOC_STATIC_LIB NAMES jemalloc_pic) |
| message(STATUS ${JEMALLOC_STATIC_LIB}) |
| endif() |
| |
| if(JEMALLOC_INCLUDE_DIR AND JEMALLOC_SHARED_LIB) |
| set(JEMALLOC_FOUND TRUE) |
| else() |
| set(JEMALLOC_FOUND FALSE) |
| endif() |
| |
| if(JEMALLOC_FOUND) |
| if(NOT jemalloc_FIND_QUIETLY) |
| message(STATUS "Found the jemalloc library: ${JEMALLOC_LIBRARIES}") |
| endif() |
| else() |
| if(NOT jemalloc_FIND_QUIETLY) |
| set(JEMALLOC_ERR_MSG "Could not find the jemalloc library. Looked in ") |
| if(_flatbuffers_roots) |
| set(JEMALLOC_ERR_MSG "${JEMALLOC_ERR_MSG} in ${_jemalloc_roots}.") |
| else() |
| set(JEMALLOC_ERR_MSG "${JEMALLOC_ERR_MSG} system search paths.") |
| endif() |
| if(jemalloc_FIND_REQUIRED) |
| message(FATAL_ERROR "${JEMALLOC_ERR_MSG}") |
| else(jemalloc_FIND_REQUIRED) |
| message(STATUS "${JEMALLOC_ERR_MSG}") |
| endif(jemalloc_FIND_REQUIRED) |
| endif() |
| endif() |
| |
| mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_SHARED_LIB) |