aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar darkf <lw9k123@gmail.com>2015-01-08 20:20:51 -0800
committerGravatar darkf <lw9k123@gmail.com>2015-01-11 20:22:08 -0800
commit67c644e317b2d7057f2f403ce2d095299319a2f2 (patch)
tree968b7da92722d34ab37153f39aedfed693fed376
parenteacc2a501ba75a4f89e172eafddbf590f7851add (diff)
Fix building on MinGW
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/citra/citra.rcbin566 -> 282 bytes
-rw-r--r--src/core/hle/service/soc_u.cpp13
3 files changed, 19 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20a5a011..d70c872b 100644
--- a/CMakeLists.txt
+++ b/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()
diff --git a/src/citra/citra.rc b/src/citra/citra.rc
index c28e7dbe..0165e93d 100644
--- a/src/citra/citra.rc
+++ b/src/citra/citra.rc
Binary files differ
diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp
index f502c6af..bb8ee86b 100644
--- a/src/core/hle/service/soc_u.cpp
+++ b/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>