| # |
| # 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 |
| ) |