From 459502e48ccb6607e531112e7ae89f62b75023c8 Mon Sep 17 00:00:00 2001 From: darkf Date: Fri, 28 Nov 2014 21:38:20 -0800 Subject: Fix MinGW build --- src/common/common.h | 4 +++- src/common/common_funcs.h | 8 ++++---- src/common/log.h | 8 ++++---- src/common/msg_handler.h | 2 +- src/common/platform.h | 4 ++++ src/common/string_util.cpp | 6 +++--- src/common/thread.cpp | 23 +++++++++++++++-------- 7 files changed, 34 insertions(+), 21 deletions(-) (limited to 'src/common') diff --git a/src/common/common.h b/src/common/common.h index 9f3016d3..0d793462 100644 --- a/src/common/common.h +++ b/src/common/common.h @@ -50,11 +50,13 @@ private: #elif defined _WIN32 // Check MSC ver - #if !defined _MSC_VER || _MSC_VER <= 1000 + #if defined _MSC_VER && _MSC_VER <= 1000 #error needs at least version 1000 of MSC #endif + #ifndef NOMINMAX #define NOMINMAX + #endif // Memory leak checks #define CHECK_HEAP_INTEGRITY() diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index d84ec4c4..ddf3958c 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h @@ -28,7 +28,7 @@ template<> struct CompileTimeAssert {}; #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) -#ifndef _WIN32 +#ifndef _MSC_VER #include #ifdef __linux__ @@ -72,7 +72,7 @@ inline u64 _rotr64(u64 x, unsigned int shift){ return (x >> n) | (x << (64 - n)); } -#else // WIN32 +#else // _MSC_VER // Function Cross-Compatibility #define strcasecmp _stricmp #define strncasecmp _strnicmp @@ -135,7 +135,7 @@ extern "C" { } #define Crash() {DebugBreak();} #endif // M_IX86 -#endif // WIN32 ndef +#endif // _MSC_VER ndef // Dolphin's min and max functions #undef min @@ -163,7 +163,7 @@ inline u32 swap24(const u8* _data) {return (_data[0] << 16) | (_data[1] << 8) | #undef swap64 #endif -#ifdef _WIN32 +#ifdef _MSC_VER inline u16 swap16(u16 _data) {return _byteswap_ushort(_data);} inline u32 swap32(u32 _data) {return _byteswap_ulong (_data);} inline u64 swap64(u64 _data) {return _byteswap_uint64(_data);} diff --git a/src/common/log.h b/src/common/log.h index 14ad98c0..4c96ef0a 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -104,7 +104,7 @@ void GenericLog(LOGTYPES_LEVELS level, LOGTYPES_TYPE type, const char*file, int #endif // loglevel #endif // logging -#ifdef _WIN32 +#ifdef MSVC_VER #ifndef __func__ #define __func__ __FUNCTION__ #endif @@ -149,17 +149,17 @@ void GenericLog(LOGTYPES_LEVELS level, LOGTYPES_TYPE type, const char*file, int #define _assert_(_a_) _dbg_assert_(MASTER_LOG, _a_) #ifndef GEKKO -#ifdef _WIN32 +#ifdef MSVC_VER #define _assert_msg_(_t_, _a_, _fmt_, ...) \ if (!(_a_)) {\ if (!PanicYesNo(_fmt_, __VA_ARGS__)) {Crash();} \ } -#else // not win32 +#else // not msvc #define _assert_msg_(_t_, _a_, _fmt_, ...) \ if (!(_a_)) {\ if (!PanicYesNo(_fmt_, ##__VA_ARGS__)) {Crash();} \ } -#endif // WIN32 +#endif // MSVC_VER #else // GEKKO #define _assert_msg_(_t_, _a_, _fmt_, ...) #endif diff --git a/src/common/msg_handler.h b/src/common/msg_handler.h index 9bfdf950..a1db89aa 100644 --- a/src/common/msg_handler.h +++ b/src/common/msg_handler.h @@ -30,7 +30,7 @@ extern bool MsgAlert(bool yes_no, int Style, const char* format, ...) void SetEnableAlert(bool enable); #ifndef GEKKO -#ifdef _WIN32 +#ifdef MSVC_VER #define SuccessAlert(format, ...) MsgAlert(false, INFORMATION, format, __VA_ARGS__) #define PanicAlert(format, ...) MsgAlert(false, WARNING, format, __VA_ARGS__) #define PanicYesNo(format, ...) MsgAlert(true, WARNING, format, __VA_ARGS__) diff --git a/src/common/platform.h b/src/common/platform.h index d9f09543..7d123caa 100644 --- a/src/common/platform.h +++ b/src/common/platform.h @@ -71,14 +71,18 @@ #include +#ifndef NOMINMAX #define NOMINMAX +#endif #define EMU_FASTCALL __fastcall +#ifdef _MSVC_VER inline struct tm* localtime_r(const time_t *clock, struct tm *result) { if (localtime_s(result, clock) == 0) return result; return NULL; } +#endif #else diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index dcec9275..1ca2dfb3 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -7,7 +7,7 @@ #include "common/common.h" #include "common/string_util.h" -#ifdef _WIN32 +#ifdef MSVC_VER #include #include #else @@ -45,7 +45,7 @@ bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list ar { int writtenCount; -#ifdef _WIN32 +#ifdef MSVC_VER // You would think *printf are simple, right? Iterate on each character, // if it's a format specifier handle it properly, etc. // @@ -410,7 +410,7 @@ std::string UriEncode(const std::string & sSrc) return sResult; } -#ifdef _WIN32 +#ifdef MSVC_VER std::string UTF16ToUTF8(const std::u16string& input) { diff --git a/src/common/thread.cpp b/src/common/thread.cpp index dc153ba7..6eeda082 100644 --- a/src/common/thread.cpp +++ b/src/common/thread.cpp @@ -17,7 +17,7 @@ namespace Common int CurrentThreadId() { -#ifdef _WIN32 +#ifdef MSVC_VER return GetCurrentThreadId(); #elif defined __APPLE__ return mach_thread_self(); @@ -27,6 +27,14 @@ int CurrentThreadId() } #ifdef _WIN32 +// Supporting functions +void SleepCurrentThread(int ms) +{ + Sleep(ms); +} +#endif + +#ifdef MSVC_VER void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) { @@ -38,12 +46,6 @@ void SetCurrentThreadAffinity(u32 mask) SetThreadAffinityMask(GetCurrentThread(), mask); } -// Supporting functions -void SleepCurrentThread(int ms) -{ - Sleep(ms); -} - void SwitchCurrentThread() { SwitchToThread(); @@ -82,7 +84,7 @@ void SetCurrentThreadName(const char* szThreadName) {} } -#else // !WIN32, so must be POSIX threads +#else // !MSVC_VER, so must be POSIX threads void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) { @@ -106,6 +108,7 @@ void SetCurrentThreadAffinity(u32 mask) SetThreadAffinity(pthread_self(), mask); } +#ifndef _WIN32 void SleepCurrentThread(int ms) { usleep(1000 * ms); @@ -115,7 +118,10 @@ void SwitchCurrentThread() { usleep(1000 * 1); } +#endif +// MinGW with the POSIX threading model does not support pthread_setname_np +#if !defined(_WIN32) || defined(MSVC_VER) void SetCurrentThreadName(const char* szThreadName) { #ifdef __APPLE__ @@ -126,6 +132,7 @@ void SetCurrentThreadName(const char* szThreadName) pthread_setname_np(pthread_self(), szThreadName); #endif } +#endif #endif -- cgit v1.2.3