diff --git a/CMakeLists.txt b/CMakeLists.txt index d9eb9ace0..0e123635f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,6 +142,10 @@ if(WIN32) # Reduce noise (at least for now) set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} /wd4244 /wd4267") endif() + + if(MINGW) + set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -D__USE_MINGW_ANSI_STDIO=1") + endif() endforeach() endif() @@ -310,7 +314,8 @@ set(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/third-party) if(WIN32) tr_add_external_auto_library(EVENT2 event PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/event2.cmake" "/CMakeLists.txt" - COMMAND "${CMAKE_COMMAND}" -E chdir "" patch -p1 -i "${THIRD_PARTY_DIR}/event2-01-win32.patch") + COMMAND "${CMAKE_COMMAND}" -E chdir "" patch -p1 -i "${THIRD_PARTY_DIR}/event2-01-win32.patch" + COMMAND "${CMAKE_COMMAND}" -E chdir "" patch -p1 -i "${THIRD_PARTY_DIR}/event2-02-win32.patch") else() tr_add_external_auto_library(EVENT2 event BUILD_IN_SOURCE 1 diff --git a/third-party/event2-02-win32.patch b/third-party/event2-02-win32.patch new file mode 100644 index 000000000..df40db46b --- /dev/null +++ b/third-party/event2-02-win32.patch @@ -0,0 +1,12 @@ +diff --git a/evutil.c b/evutil.c +--- a/evutil.c ++++ b/evutil.c +@@ -1562,7 +1562,7 @@ + int r; + if (!buflen) + return 0; +-#if defined(_MSC_VER) || defined(WIN32) ++#if (defined(_MSC_VER) && _MSC_VER < 1900) || (defined(WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || (__USE_MINGW_ANSI_STDIO + 0) == 0)) + r = _vsnprintf(buf, buflen, format, ap); + if (r < 0) + r = _vscprintf(format, ap);