summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2004-10-05 08:33:08 -0400
committerAndy Cedilnik <andy.cedilnik@kitware.com>2004-10-05 08:33:08 -0400
commit518de19f745a92f0dc3d6fe941f078aae1576050 (patch)
tree29b7a80a9282f8bb28adf01890ad0f0269f9efde
parentb1a1526e14970141ae80153dadcaa135baaf0e9d (diff)
downloadcmake-518de19f745a92f0dc3d6fe941f078aae1576050.tar.gz
ENH: Add option of adding random include files before doing CheckTypeSize
-rw-r--r--Modules/CheckTypeSize.c.in (renamed from Modules/CheckTypeSize.c)4
-rw-r--r--Modules/CheckTypeSize.cmake12
2 files changed, 14 insertions, 2 deletions
diff --git a/Modules/CheckTypeSize.c b/Modules/CheckTypeSize.c.in
index 07fe62bdec..822d9c5e62 100644
--- a/Modules/CheckTypeSize.c
+++ b/Modules/CheckTypeSize.c.in
@@ -1,5 +1,7 @@
#ifdef CHECK_TYPE_SIZE_TYPE
+@CHECK_TYPE_SIZE_PREINCLUDE@
+
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif /* HAVE_SYS_TYPES_H */
@@ -12,6 +14,8 @@
# include <stddef.h>
#endif /* HAVE_STDDEF_H */
+@CHECK_TYPE_SIZE_PREMAIN@
+
#ifdef __CLASSIC_C__
int main(){
int ac;
diff --git a/Modules/CheckTypeSize.cmake b/Modules/CheckTypeSize.cmake
index dcd9149aa6..c9a71f0c97 100644
--- a/Modules/CheckTypeSize.cmake
+++ b/Modules/CheckTypeSize.cmake
@@ -18,6 +18,14 @@ MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
"${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
ENDIF("${def}")
ENDFOREACH(def)
+ SET(CHECK_TYPE_SIZE_PREMAIN)
+ FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES})
+ SET(CHECK_TYPE_SIZE_PREMAIN "${CHECK_TYPE_SIZE_PREMAIN}#include \"${def}\"\n")
+ ENDFOREACH(def)
+ CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CheckTypeSize.c.in"
+ "${CMAKE_BINARY_DIR}/CMakeTmp/CheckTypeSize.c" IMMEDIATE @ONLY)
+ FILE(READ "${CMAKE_BINARY_DIR}/CMakeTmp/CheckTypeSize.c"
+ CHECK_TYPE_SIZE_FILE_CONTENT)
MESSAGE(STATUS "Check size of ${TYPE}")
IF(CMAKE_REQUIRED_LIBRARIES)
SET(CHECK_TYPE_SIZE_ADD_LIBRARIES
@@ -25,7 +33,7 @@ MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
ENDIF(CMAKE_REQUIRED_LIBRARIES)
TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/CheckTypeSize.c
+ "${CMAKE_BINARY_DIR}/CMakeTmp/CheckTypeSize.c"
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
"${CHECK_TYPE_SIZE_ADD_LIBRARIES}"
OUTPUT_VARIABLE OUTPUT)
@@ -36,7 +44,7 @@ MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
ELSE(HAVE_${VARIABLE})
MESSAGE(STATUS "Check size of ${TYPE} - failed")
FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log
- "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n\n")
+ "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSize.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n")
ENDIF(HAVE_${VARIABLE})
ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS )