Add mingw compile support
This commit is contained in:
		| @@ -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) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								externals/microprofile/microprofile.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								externals/microprofile/microprofile.h
									
									
									
									
										vendored
									
									
								
							| @@ -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) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -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(); | ||||||
|   | |||||||
| @@ -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) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -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> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 James Rowe
					James Rowe