Просмотр исходного кода

ENH: make sure all required headers are checked before checking type size

Bill Hoffman 17 лет назад
Родитель
Сommit
5f68965608
1 измененных файлов с 13 добавлено и 1 удалено
  1. 13 1
      Modules/CheckTypeSize.cmake

+ 13 - 1
Modules/CheckTypeSize.cmake

@@ -1,7 +1,11 @@
 # - Check sizeof a type
 #  CHECK_TYPE_SIZE(TYPE VARIABLE)
 # Check if the type exists and determine size of type.  if the type
-# exists, the size will be stored to the variable.
+# exists, the size will be stored to the variable. This also
+# calls check_include_file for sys/types.h stdint.h
+# and stddef.h, setting HAVE_SYS_TYPES_H, HAVE_STDINT_H, 
+# and HAVE_STDDEF_H.  This is because many types are stored
+# in these include files.  
 #  VARIABLE - variable to store size if the type exists.
 #  HAVE_${VARIABLE} - does the variable exists or not
 # The following variables may be set before calling this macro to
@@ -12,6 +16,14 @@
 #  CMAKE_REQUIRED_INCLUDES = list of include directories
 #  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
 
+# These variables are referenced in CheckTypeSizeC.c so we have 
+# to check for them.
+
+include(CheckIncludeFile)
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(stdint.h HAVE_STDINT_H)
+check_include_file(stddef.h HAVE_STDDEF_H)
+
 MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
   IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
     MESSAGE(STATUS "Check size of ${TYPE}")