Add mingw compile support

This commit is contained in:
James Rowe 2016-08-01 15:13:35 -06:00
parent 309ffc1df1
commit 35a852ba53
5 changed files with 19 additions and 7 deletions

View File

@ -68,6 +68,15 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (NOT MSVC) if (NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
if (MINGW)
add_definitions(-DMINGW_HAS_SECURE_API)
if (MINGW_STATIC_BUILD)
add_definitions(-DQT_STATICPLUGIN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
endif()
endif()
else() else()
# Silence "deprecation" warnings # Silence "deprecation" warnings
add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /D_SCL_SECURE_NO_WARNINGS) add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /D_SCL_SECURE_NO_WARNINGS)
@ -166,9 +175,8 @@ IF (APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
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
# PSAPI is the Process Status API # PSAPI is the Process Status API
set(PLATFORM_LIBRARIES winmm ws2_32 psapi iconv) set(PLATFORM_LIBRARIES winmm ws2_32 psapi imm32 version)
# 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)

View File

@ -512,7 +512,7 @@ typedef int MpSocket;
#if defined(__APPLE__) || defined(__linux__) #if defined(__APPLE__) || defined(__linux__)
typedef pthread_t MicroProfileThread; typedef pthread_t MicroProfileThread;
#elif defined(_WIN32) #elif defined(_MSC_VER)
typedef HANDLE MicroProfileThread; typedef HANDLE MicroProfileThread;
#else #else
typedef std::thread* MicroProfileThread; typedef std::thread* MicroProfileThread;
@ -921,7 +921,7 @@ void MicroProfileThreadJoin(MicroProfileThread* pThread)
int r = pthread_join(*pThread, 0); int r = pthread_join(*pThread, 0);
MP_ASSERT(r == 0); MP_ASSERT(r == 0);
} }
#elif defined(_WIN32) #elif defined(_MSC_VER)
typedef HANDLE MicroProfileThread; typedef HANDLE MicroProfileThread;
DWORD _stdcall ThreadTrampoline(void* pFunc) DWORD _stdcall ThreadTrampoline(void* pFunc)
{ {

View File

@ -55,6 +55,10 @@
#include "video_core/video_core.h" #include "video_core/video_core.h"
#ifdef QT_STATICPLUGIN
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
#endif
GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr)
{ {
Pica::g_debug_context = Pica::DebugContext::Construct(); Pica::g_debug_context = Pica::DebugContext::Construct();

View File

@ -13,7 +13,7 @@
#include "common/logging/log.h" #include "common/logging/log.h"
#include "common/string_util.h" #include "common/string_util.h"
#ifdef _MSC_VER #ifdef _WIN32
#include <Windows.h> #include <Windows.h>
#include <codecvt> #include <codecvt>
#include "common/common_funcs.h" #include "common/common_funcs.h"
@ -292,7 +292,7 @@ std::string ReplaceAll(std::string result, const std::string& src, const std::st
return result; return result;
} }
#ifdef _MSC_VER #ifdef _WIN32
std::string UTF16ToUTF8(const std::u16string& input) std::string UTF16ToUTF8(const std::u16string& input)
{ {

View File

@ -14,7 +14,7 @@
#include <map> #include <map>
#include <numeric> #include <numeric>
#ifdef _MSC_VER #ifdef _WIN32
#include <WinSock2.h> #include <WinSock2.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#include <common/x64/abi.h> #include <common/x64/abi.h>