mirror of
https://github.com/json-c/json-c.git
synced 2026-03-21 14:09:06 +08:00
Issue #568: fix the strtoll and strtoull handing so config.h ends up creating defines for those only when needed, which should exclude mingw environments.
This commit is contained in:
@@ -166,30 +166,27 @@ if (HAVE_SYSLOG_H)
|
||||
check_symbol_exists(vsyslog "syslog.h" HAVE_VSYSLOG)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
||||
check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL)
|
||||
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
||||
check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL)
|
||||
|
||||
set(json_c_strtoll "strtoll")
|
||||
if (NOT HAVE_STRTOLL)
|
||||
# Use _strtoi64 if strtoll is not available.
|
||||
check_symbol_exists(_strtoi64 "stdlib.h" __have_strtoi64)
|
||||
if (__have_strtoi64)
|
||||
set(HAVE_STRTOLL 1)
|
||||
set(json_c_strtoll "_strtoi64")
|
||||
# could do the same for strtoull, if needed
|
||||
endif()
|
||||
endif()
|
||||
set(json_c_strtoll "strtoll")
|
||||
if (NOT HAVE_STRTOLL)
|
||||
# Use _strtoi64 if strtoll is not available.
|
||||
check_symbol_exists(_strtoi64 "stdlib.h" __have_strtoi64)
|
||||
if (__have_strtoi64)
|
||||
#set(HAVE_STRTOLL 1)
|
||||
set(json_c_strtoll "_strtoi64")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(json_c_strtoull "strtoull")
|
||||
if (NOT HAVE_STRTOULL)
|
||||
# Use _strtoui64 if strtoull is not available.
|
||||
check_symbol_exists(_strtoui64 "stdlib.h" __have_strtoui64)
|
||||
if (__have_strtoui64)
|
||||
set(HAVE_STRTOULL 1)
|
||||
set(json_c_strtoull "_strtoui64")
|
||||
endif()
|
||||
endif()
|
||||
set(json_c_strtoull "strtoull")
|
||||
if (NOT HAVE_STRTOULL)
|
||||
# Use _strtoui64 if strtoull is not available.
|
||||
check_symbol_exists(_strtoui64 "stdlib.h" __have_strtoui64)
|
||||
if (__have_strtoui64)
|
||||
#set(HAVE_STRTOULL 1)
|
||||
set(json_c_strtoull "_strtoui64")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
@@ -136,9 +136,16 @@
|
||||
#cmakedefine HAVE_VSYSLOG @HAVE_VSYSLOG@
|
||||
|
||||
#cmakedefine HAVE_STRTOLL
|
||||
#cmakedefine strtoll @json_c_strtoll@
|
||||
#if !defined(HAVE_STRTOLL)
|
||||
#define strtoll @json_c_strtoll@
|
||||
/* #cmakedefine json_c_strtoll @json_c_strtoll@*/
|
||||
#endif
|
||||
|
||||
#cmakedefine HAVE_STRTOULL
|
||||
#cmakedefine strtoull @json_c_strtoull@
|
||||
#if !defined(HAVE_STRTOULL)
|
||||
#define strtoull @json_c_strtoull@
|
||||
/* #cmakedefine json_c_strtoull @json_c_strtoull@ */
|
||||
#endif
|
||||
|
||||
/* Have __thread */
|
||||
#cmakedefine HAVE___THREAD
|
||||
|
||||
@@ -39,11 +39,6 @@
|
||||
#endif /* HAVE_UNISTD_H */
|
||||
|
||||
#ifdef WIN32
|
||||
#if MSC_VER < 1800
|
||||
/* strtoll/strtoull is available only since Visual Studio 2013 */
|
||||
#define strtoll _strtoi64
|
||||
#define strtoull _strtoui64
|
||||
#endif
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <io.h>
|
||||
#include <windows.h>
|
||||
|
||||
Reference in New Issue
Block a user