diff --git a/CMakeLists.txt b/CMakeLists.txt index 26dec8f86..56503f1ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,6 +68,15 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) if (NOT MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") 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() # Silence "deprecation" warnings add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /D_SCL_SECURE_NO_WARNINGS) @@ -175,7 +184,7 @@ IF (APPLE) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") ELSEIF(MINGW) # PSAPI is the Process Status API - set(PLATFORM_LIBRARIES winmm ws2_32 psapi) + set(PLATFORM_LIBRARIES winmm ws2_32 psapi imm32 version) # WSAPoll functionality doesn't exist before WinNT 6.x (Vista and up) add_definitions(-D_WIN32_WINNT=0x0600) diff --git a/externals/microprofile/microprofile.h b/externals/microprofile/microprofile.h index 30613b3b0..f45c9ba82 100644 --- a/externals/microprofile/microprofile.h +++ b/externals/microprofile/microprofile.h @@ -512,7 +512,7 @@ typedef int MpSocket; #ifndef _WIN32 typedef pthread_t MicroProfileThread; -#elif defined(_WIN32) +#elif defined(_MSC_VER) typedef HANDLE MicroProfileThread; #else typedef std::thread* MicroProfileThread; @@ -921,7 +921,7 @@ void MicroProfileThreadJoin(MicroProfileThread* pThread) int r = pthread_join(*pThread, 0); MP_ASSERT(r == 0); } -#elif defined(_WIN32) +#elif defined(_MSC_VER) typedef HANDLE MicroProfileThread; DWORD _stdcall ThreadTrampoline(void* pFunc) { diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index b904fec16..99cc3f096 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -48,6 +48,10 @@ #include "qhexedit.h" #include "video_core/video_core.h" +#ifdef QT_STATICPLUGIN +Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin); +#endif + GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) { Pica::g_debug_context = Pica::DebugContext::Construct(); diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index 596ae01bf..df1008180 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -11,7 +11,8 @@ #include "common/common_paths.h" #include "common/logging/log.h" #include "common/string_util.h" -#ifdef _MSC_VER + +#ifdef _WIN32 #include #include #include "common/common_funcs.h" @@ -270,7 +271,7 @@ std::string ReplaceAll(std::string result, const std::string& src, const std::st return result; } -#ifdef _MSC_VER +#ifdef _WIN32 std::string UTF16ToUTF8(const std::u16string& input) { #if _MSC_VER >= 1900 diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp index ceb993ea1..aea43e92b 100644 --- a/src/core/gdbstub/gdbstub.cpp +++ b/src/core/gdbstub/gdbstub.cpp @@ -14,7 +14,7 @@ #include #include -#ifdef _MSC_VER +#ifdef _WIN32 #include #include #include