Browse Source

Merge pull request #7480 from godotengine/ip-mingw2-workaround2

Windows: Workaround missing includes in MinGW-w64 < 4
Rémi Verschelde 8 years ago
parent
commit
0e635b683b
1 changed files with 13 additions and 1 deletions
  1. 13 1
      drivers/unix/ip_unix.cpp

+ 13 - 1
drivers/unix/ip_unix.cpp

@@ -42,7 +42,19 @@
   #include <windows.h>
   #include <windows.h>
   #include <stdio.h>
   #include <stdio.h>
   #ifndef UWP_ENABLED
   #ifndef UWP_ENABLED
-    #include <iphlpapi.h>
+    #if defined(__MINGW32__ ) && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 4)
+      // MinGW-w64 on Ubuntu 12.04 (our Travis build env) has bugs in this code where
+      // some includes are missing in dependencies of iphlpapi.h for WINVER >= 0x0600 (Vista).
+      // We don't use this Vista code for now, so working it around by disabling it.
+      // MinGW-w64 >= 4.0 seems to be better judging by its headers.
+      #undef _WIN32_WINNT
+      #define _WIN32_WINNT 0x0501 // Windows XP, disable Vista API
+      #include <iphlpapi.h>
+      #undef _WIN32_WINNT
+      #define _WIN32_WINNT 0x0600 // Reenable Vista API
+    #else
+      #include <iphlpapi.h>
+    #endif // MINGW hack
   #endif
   #endif
 #else
 #else
  #include <netdb.h>
  #include <netdb.h>