Fix building under MinGW
This commit is contained in:
parent
882040fde7
commit
e053d30bf7
|
@ -155,7 +155,8 @@ IF (APPLE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
|
||||||
ELSEIF(MINGW)
|
ELSEIF(MINGW)
|
||||||
# GCC does not support codecvt, so use iconv instead
|
# 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)
|
# WSAPoll functionality doesn't exist before WinNT 6.x (Vista and up)
|
||||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||||
|
|
|
@ -45,14 +45,20 @@
|
||||||
|
|
||||||
// GCC 4.8 defines all the rotate functions now
|
// 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
|
// Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit
|
||||||
#ifndef _rotl
|
#ifdef _rotl
|
||||||
inline u32 _rotl(u32 x, int shift) {
|
#define rotl _rotl
|
||||||
|
#else
|
||||||
|
inline u32 rotl(u32 x, int shift) {
|
||||||
shift &= 31;
|
shift &= 31;
|
||||||
if (!shift) return x;
|
if (!shift) return x;
|
||||||
return (x << shift) | (x >> (32 - shift));
|
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;
|
shift &= 31;
|
||||||
if (!shift) return x;
|
if (!shift) return x;
|
||||||
return (x >> shift) | (x << (32 - shift));
|
return (x >> shift) | (x << (32 - shift));
|
||||||
|
|
|
@ -244,7 +244,7 @@ private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void OpenFStream(T& fstream, const std::string& filename, std::ios_base::openmode openmode)
|
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);
|
fstream.open(Common::UTF8ToTStr(filename).c_str(), openmode);
|
||||||
#else
|
#else
|
||||||
fstream.open(filename.c_str(), openmode);
|
fstream.open(filename.c_str(), openmode);
|
||||||
|
|
Loading…
Reference in New Issue