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)
|
check_symbol_exists(vsyslog "syslog.h" HAVE_VSYSLOG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
||||||
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL)
|
||||||
check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL)
|
|
||||||
|
|
||||||
set(json_c_strtoll "strtoll")
|
set(json_c_strtoll "strtoll")
|
||||||
if (NOT HAVE_STRTOLL)
|
if (NOT HAVE_STRTOLL)
|
||||||
# Use _strtoi64 if strtoll is not available.
|
# Use _strtoi64 if strtoll is not available.
|
||||||
check_symbol_exists(_strtoi64 "stdlib.h" __have_strtoi64)
|
check_symbol_exists(_strtoi64 "stdlib.h" __have_strtoi64)
|
||||||
if (__have_strtoi64)
|
if (__have_strtoi64)
|
||||||
set(HAVE_STRTOLL 1)
|
#set(HAVE_STRTOLL 1)
|
||||||
set(json_c_strtoll "_strtoi64")
|
set(json_c_strtoll "_strtoi64")
|
||||||
# could do the same for strtoull, if needed
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
set(json_c_strtoull "strtoull")
|
set(json_c_strtoull "strtoull")
|
||||||
if (NOT HAVE_STRTOULL)
|
if (NOT HAVE_STRTOULL)
|
||||||
# Use _strtoui64 if strtoull is not available.
|
# Use _strtoui64 if strtoull is not available.
|
||||||
check_symbol_exists(_strtoui64 "stdlib.h" __have_strtoui64)
|
check_symbol_exists(_strtoui64 "stdlib.h" __have_strtoui64)
|
||||||
if (__have_strtoui64)
|
if (__have_strtoui64)
|
||||||
set(HAVE_STRTOULL 1)
|
#set(HAVE_STRTOULL 1)
|
||||||
set(json_c_strtoull "_strtoui64")
|
set(json_c_strtoull "_strtoui64")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -136,9 +136,16 @@
|
|||||||
#cmakedefine HAVE_VSYSLOG @HAVE_VSYSLOG@
|
#cmakedefine HAVE_VSYSLOG @HAVE_VSYSLOG@
|
||||||
|
|
||||||
#cmakedefine HAVE_STRTOLL
|
#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 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 */
|
/* Have __thread */
|
||||||
#cmakedefine HAVE___THREAD
|
#cmakedefine HAVE___THREAD
|
||||||
|
|||||||
@@ -39,11 +39,6 @@
|
|||||||
#endif /* HAVE_UNISTD_H */
|
#endif /* HAVE_UNISTD_H */
|
||||||
|
|
||||||
#ifdef WIN32
|
#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
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user