summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2015-08-19 20:40:31 -0400
committerbunnei <bunneidev@gmail.com>2015-08-19 20:40:31 -0400
commit21ba05e5f1a571dd26fd5bf06afcb993b1ca301f (patch)
tree79f9971851cfe9d416f07367e5f592972a086e4b
parenta575399fbcf6f2c29e9dd9835c5014226b453348 (diff)
parente053d30bf75f311778ad745f7859a9733d6ce2e3 (diff)
Merge pull request #1035 from darkf/mingw-fix
Fix building under MinGW
-rw-r--r--CMakeLists.txt3
-rw-r--r--src/common/common_funcs.h12
-rw-r--r--src/common/file_util.h2
3 files changed, 12 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00d71dbdc..6cdac1177 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -155,7 +155,8 @@ IF (APPLE)
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)
+ # PSAPI is the Process Status API
+ set(PLATFORM_LIBRARIES winmm ws2_32 psapi iconv)
# WSAPoll functionality doesn't exist before WinNT 6.x (Vista and up)
add_definitions(-D_WIN32_WINNT=0x0600)
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h
index 88e452a16..ed20c3629 100644
--- a/src/common/common_funcs.h
+++ b/src/common/common_funcs.h
@@ -45,14 +45,20 @@
// GCC 4.8 defines all the rotate functions now
// Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit
-#ifndef _rotl
-inline u32 _rotl(u32 x, int shift) {
+#ifdef _rotl
+#define rotl _rotl
+#else
+inline u32 rotl(u32 x, int shift) {
shift &= 31;
if (!shift) return x;
return (x << shift) | (x >> (32 - shift));
}
+#endif
-inline u32 _rotr(u32 x, int shift) {
+#ifdef _rotr
+#define rotr _rotr
+#else
+inline u32 rotr(u32 x, int shift) {
shift &= 31;
if (!shift) return x;
return (x >> shift) | (x << (32 - shift));
diff --git a/src/common/file_util.h b/src/common/file_util.h
index d0dccdf69..e71a9b2fa 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -244,7 +244,7 @@ private:
template <typename T>
void OpenFStream(T& fstream, const std::string& filename, std::ios_base::openmode openmode)
{
-#ifdef _WIN32
+#ifdef _MSC_VER
fstream.open(Common::UTF8ToTStr(filename).c_str(), openmode);
#else
fstream.open(filename.c_str(), openmode);