From c2badb4c162ed635b60f40a19df239f5b1ad9bea Mon Sep 17 00:00:00 2001 From: Robert K <robertk@posteo.org> Date: Tue, 13 Oct 2015 11:46:25 +0200 Subject: [PATCH] [bugfix] fix DLMalloc check that was broke after rerun of cmake. --- cmake/modules/FindDLMalloc.cmake | 49 +++++++++++++++++--------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/cmake/modules/FindDLMalloc.cmake b/cmake/modules/FindDLMalloc.cmake index f46357320..409a2ba32 100644 --- a/cmake/modules/FindDLMalloc.cmake +++ b/cmake/modules/FindDLMalloc.cmake @@ -12,30 +12,37 @@ set(DLMALLOC_ROOT "" CACHE PATH "Path list to search for DLMALLOC") mark_as_advanced(DLMALLOC_ROOT) -#message("dlmalloc: ${DLMALLOC_ROOT}") - #look for header files at positions given by the user find_path(DLMALLOC_INCLUDE_DIR malloc.c PATHS ${DLMALLOC_DIR} ${DLMALLOC_ROOT} NO_DEFAULT_PATH ) -IF(DLMALLOC_INCLUDE_DIR) +# unset DLMALLOC_SOURCE_USABLE to force a rerun of CHECK_C_SOURCE_COMPILES +unset(DLMALLOC_SOURCE_USABLE CACHE) +if(DLMALLOC_INCLUDE_DIR) set(DLMALLOC_SOURCE_INCLUDE "\"${DLMALLOC_INCLUDE_DIR}/malloc.c\"") -ELSE() - #look for header files at positions given by the user - find_path(DLMALLOC_INCLUDE_DIR malloc-2.8.6.c - PATHS ${DLMALLOC_DIR} ${DLMALLOC_ROOT} - NO_DEFAULT_PATH - ) - IF(DLMALLOC_INCLUDE_DIR) - set(DLMALLOC_SOURCE_INCLUDE "\"${DLMALLOC_INCLUDE_DIR}/malloc-2.8.6.c\"") - ENDIF() -ENDIF() - -# check if dlmalloc can be compiled -CHECK_C_SOURCE_COMPILES( "#include ${DLMALLOC_SOURCE_INCLUDE} - int main () { return 0; }" DLMALLOC_SOURCE_USABLE ) + # check if dlmalloc can be compiled + CHECK_C_SOURCE_COMPILES( "#include ${DLMALLOC_SOURCE_INCLUDE} + int main () { return 0; }" DLMALLOC_SOURCE_USABLE ) +endif() + +if(NOT DLMALLOC_SOURCE_USABLE) + unset(DLMALLOC_SOURCE_USABLE CACHE) + #look for header files at positions given by the user + find_path(DLMALLOC_INCLUDE_DIR malloc-2.8.6.c + PATHS ${DLMALLOC_DIR} ${DLMALLOC_ROOT} + NO_DEFAULT_PATH + ) + if(DLMALLOC_INCLUDE_DIR) + set(DLMALLOC_SOURCE_INCLUDE "\"${DLMALLOC_INCLUDE_DIR}/malloc-2.8.6.c\"") + # check if dlmalloc can be compiled + CHECK_C_SOURCE_COMPILES( "#include ${DLMALLOC_SOURCE_INCLUDE} + int main () { return 0; }" DLMALLOC_SOURCE_USABLE ) + else() + unset( DLMALLOC_SOURCE_USABLE CACHE) + endif() +endif() # behave like a CMake module is supposed to behave @@ -44,7 +51,7 @@ find_package_handle_standard_args( "DLMalloc" DEFAULT_MSG DLMALLOC_INCLUDE_DIR - DLMALLOC_SOURCE_USABLE + DLMALLOC_SOURCE_INCLUDE ) mark_as_advanced(DLMALLOC_INCLUDE_DIR) @@ -52,12 +59,8 @@ mark_as_advanced(DLMALLOC_INCLUDE_DIR) # if found, store some results if(DLMALLOC_FOUND) message(STATUS "${DLMALLOC_SOURCE_INCLUDE} found.") + set(DLMALLOC_SOURCE_INCLUDE CACHE STRING ${DLMALLOC_SOURCE_INCLUDE}) endif(DLMALLOC_FOUND) #set HAVE_DLMALLOC for config.h set(HAVE_DLMALLOC ${DLMALLOC_FOUND}) - -# register package -if(DLMALLOC_FOUND) - dune_register_package_flags(INCLUDE_DIRS ${DLMALLOC_SOURCE_INCLUDE}) -endif() -- GitLab