PR #679: add workaround for old compilers w/o stdint.h (i.e. VS2008 and earlier)

This commit is contained in:
Eric Hawicz
2023-08-05 22:11:30 -04:00
parent 0bcfb6bc84
commit 1ee12100b6
3 changed files with 18 additions and 4 deletions

View File

@@ -143,11 +143,14 @@ check_include_file(sys/random.h HAVE_SYS_RANDOM_H)
check_include_file(sys/stat.h HAVE_SYS_STAT_H) check_include_file(sys/stat.h HAVE_SYS_STAT_H)
check_include_file(xlocale.h HAVE_XLOCALE_H) check_include_file(xlocale.h HAVE_XLOCALE_H)
# Set json-c specific vars to stamp into json_config.h
# in a way that hopefully won't conflict with other
# projects that use json-c.
if (HAVE_INTTYPES_H) if (HAVE_INTTYPES_H)
# Set a json-c specific var to stamp into json_config.h set(JSON_C_HAVE_INTTYPES_H 1)
# in a way that hopefully won't conflict with other endif()
# projects that use json-c. if (HAVE_STDINT_H)
set(JSON_C_HAVE_INTTYPES_H 1) set(JSON_C_HAVE_STDINT_H 1)
endif() endif()
check_symbol_exists(_isnan "float.h" HAVE_DECL__ISNAN) check_symbol_exists(_isnan "float.h" HAVE_DECL__ISNAN)

View File

@@ -1,2 +1,5 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine JSON_C_HAVE_INTTYPES_H @JSON_C_HAVE_INTTYPES_H@ #cmakedefine JSON_C_HAVE_INTTYPES_H @JSON_C_HAVE_INTTYPES_H@
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine JSON_C_HAVE_STDINT_H @JSON_C_HAVE_STDINT_H@

View File

@@ -13,7 +13,15 @@
#include <inttypes.h> #include <inttypes.h>
#else #else
#ifdef JSON_C_HAVE_STDINT_H
#include <stdint.h> #include <stdint.h>
#else
/* Really only valid for old MS compilers, VS2008 and earlier: */
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#endif
#define PRId64 "I64d" #define PRId64 "I64d"
#define SCNd64 "I64d" #define SCNd64 "I64d"