Browse Source

Fix building on MinGW

darkf 11 years ago
parent
commit
67c644e317
3 changed files with 19 additions and 0 deletions
  1. 6 0
      CMakeLists.txt
  2. BIN
      src/citra/citra.rc
  3. 13 0
      src/core/hle/service/soc_u.cpp

+ 6 - 0
CMakeLists.txt

@@ -117,6 +117,12 @@ IF (APPLE)
     
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
+ELSEIF(MINGW)
+    # GCC does not support codecvt, so use iconv instead
+    set(PLATFORM_LIBRARIES winmm ws2_32 iconv)
+
+    # WSAPoll functionality doesn't exist before WinNT 6.x (Vista and up)
+    add_definitions(-D_WIN32_WINNT=0x0600)
 ELSEIF(WIN32)
     set(PLATFORM_LIBRARIES winmm ws2_32)
 ELSE()

BIN
src/citra/citra.rc


+ 13 - 0
src/core/hle/service/soc_u.cpp

@@ -7,6 +7,19 @@
 #if EMU_PLATFORM == PLATFORM_WINDOWS
 #include <winsock2.h>
 #include <ws2tcpip.h>
+
+// MinGW does not define several errno constants
+#ifndef _MSC_VER
+#define EBADMSG 104
+#define ENODATA 120
+#define ENOMSG  122
+#define ENOSR   124
+#define ENOSTR  125
+#define ETIME   137
+#define EIDRM   2001
+#define ENOLINK 2002
+#endif // _MSC_VER
+
 #else
 #include <sys/socket.h>
 #include <netinet/in.h>