Browse Source

libarchive: Fix intptr_t and uintptr_t configuration

Brad King 16 years ago
parent
commit
9bc63eb30f

+ 18 - 0
Utilities/cmlibarchive/CMakeLists.txt

@@ -589,6 +589,24 @@ IF(NOT HAVE_UINTMAX_T)
   ENDIF(MSVC OR BORLAND)
 ENDIF(NOT HAVE_UINTMAX_T)
 #
+CHECK_TYPE_SIZE(intptr_t   INTPTR_T)
+IF(NOT HAVE_INTPTR_T)
+  IF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(intptr_t "int64_t")
+  ELSE()
+    SET(intptr_t "int32_t")
+  ENDIF()
+ENDIF(NOT HAVE_INTPTR_T)
+#
+CHECK_TYPE_SIZE(uintptr_t   UINTPTR_T)
+IF(NOT HAVE_UINTPTR_T)
+  IF("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+    SET(uintptr_t "uint64_t")
+  ELSE()
+    SET(uintptr_t "uint32_t")
+  ENDIF()
+ENDIF(NOT HAVE_UINTPTR_T)
+#
 CHECK_TYPE_SIZE(wchar_t     SIZEOF_WCHAR_T)
 IF(HAVE_SIZEOF_WCHAR_T)
   SET(HAVE_WCHAR_T 1)

+ 4 - 6
Utilities/cmlibarchive/build/cmake/config.h.in

@@ -695,10 +695,8 @@
    do not define. */
 #cmakedefine uintmax_t ${uintmax_t}
 
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#cmakedefine uintptr_t  ${uintptr_t }
+/* Define to `int' if <sys/types.h> does not define. */
+#cmakedefine intptr_t ${intptr_t}
 
-#if defined(__BORLANDC__) && !defined(HAVE_STDINT_H)
-#define uintptr_t unsigned int
-#define intptr_t  int
-#endif
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#cmakedefine uintptr_t ${uintptr_t}