From 9b7c8b9f98bf3693b375d2316847bffefba73125 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 19 Apr 2011 10:44:44 -0500 Subject: [PATCH] Fix CheckTypes.cmake from generating different config.h's between CMake runs. Changing a file that causes CMake to re-run would incorrectly use leftover state to arrive at the wrong conclusion about whether the system has a given type. --- cmake/CheckTypes.cmake | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmake/CheckTypes.cmake b/cmake/CheckTypes.cmake index 8346487e2c..1fab29e3f8 100644 --- a/cmake/CheckTypes.cmake +++ b/cmake/CheckTypes.cmake @@ -7,12 +7,15 @@ check_type_size("void *" SIZEOF_VOID_P) # checks existence of ${_type}, and if it does not, sets CMake variable ${_var} # to alternative type, ${_alt_type} macro(CheckType _type _alt_type _var) - check_type_size(${_type} ${_var}) - if (NOT ${_var}) - set(${_var} ${_alt_type}) - else () - unset(${_var}) - unset(${_var} CACHE) + # don't perform check if we have a result from a previous CMake run + if (NOT HAVE_${_var}) + check_type_size(${_type} ${_var}) + if (NOT ${_var}) + set(${_var} ${_alt_type}) + else () + unset(${_var}) + unset(${_var} CACHE) + endif () endif () endmacro(CheckType _type _alt_type _var)