diff options
| author | 2015-11-06 23:06:57 +0000 | |
|---|---|---|
| committer | 2015-11-06 23:27:46 +0000 | |
| commit | 037dfdd7506832a9ff76de0f13d7a228b5b8febb (patch) | |
| tree | a3568e0f1102a10abbc64e4619854a477ef505dc /src | |
| parent | Merge pull request #1722 from un1versal/My-Favorite-Martian (diff) | |
| download | KVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.tar.gz KVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.tar.bz2 KVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.zip | |
Fix MinGW build
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | src/kvirc/kernel/KviIpcSentinel.cpp | 6 | ||||
| -rw-r--r-- | src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/kvs/KviKvsProcessManager.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/kvs/KviKvsVariant.cpp | 19 | ||||
| -rw-r--r-- | src/modules/math/libkvimath.cpp | 42 | ||||
| -rw-r--r-- | src/modules/mediaplayer/winamp.cpp | 2 |
7 files changed, 24 insertions, 57 deletions
diff --git a/src/kvirc/CMakeLists.txt b/src/kvirc/CMakeLists.txt index 05defb49c..68f55fa41 100644 --- a/src/kvirc/CMakeLists.txt +++ b/src/kvirc/CMakeLists.txt @@ -276,7 +276,13 @@ if(Qt5Widgets_FOUND) qt5_use_modules(${KVIRC_BINARYNAME} ${qt5_kvirc_modules}) endif() -set_target_properties(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}") +if(MINGW) + # For some reason CMake doesn't do this itself... + # In case of MSVC, it does add /implib:kvirc.lib though + set_target_properties(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} -Wl,--out-implib=libkvirc.dll.a") +else() + set_target_properties(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}") +endif() if(CMAKE_HOST_SYSTEM MATCHES "FreeBSD") set_target_properties(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS -Wl,-export-dynamic) diff --git a/src/kvirc/kernel/KviIpcSentinel.cpp b/src/kvirc/kernel/KviIpcSentinel.cpp index 5852945a9..882628fd6 100644 --- a/src/kvirc/kernel/KviIpcSentinel.cpp +++ b/src/kvirc/kernel/KviIpcSentinel.cpp @@ -162,13 +162,9 @@ cpd.cbData = strlen(message)+1; cpd.dwData = KVI_WINDOWS_IPC_MESSAGE; cpd.lpData = (void *)message; - DWORD dwResult; + DWORD_PTR dwResult; -#if defined(COMPILE_ON_WINDOWS) && !(defined(MINGW)) - if(!::SendMessageTimeout(hSentinel,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cpd,SMTO_BLOCK,1000,(PDWORD_PTR)&dwResult)) -#else if(!::SendMessageTimeout(hSentinel,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cpd,SMTO_BLOCK,1000,&dwResult)) -#endif { qDebug("Failed to send IPC message: error code 0x%x",::GetLastError()); } diff --git a/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp b/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp index ee95cee9f..aafa3189f 100644 --- a/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp +++ b/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp @@ -422,7 +422,7 @@ namespace KviKvsCoreSimpleCommands #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) if(KVI_OPTION_BOOL(KviOption_boolUseSystemUrlHandlers)) { - int iRet = (int)::ShellExecute(NULL, "open", szUrl.toLocal8Bit().data(),NULL, NULL, SW_SHOWNORMAL); + intptr_t iRet = (intptr_t)::ShellExecute(NULL, "open", szUrl.toLocal8Bit().data(),NULL, NULL, SW_SHOWNORMAL); if(iRet <= 32) { // FIXME: Write a better error message diff --git a/src/kvirc/kvs/KviKvsProcessManager.cpp b/src/kvirc/kvs/KviKvsProcessManager.cpp index 8de112bbb..398c6e5d4 100644 --- a/src/kvirc/kvs/KviKvsProcessManager.cpp +++ b/src/kvirc/kvs/KviKvsProcessManager.cpp @@ -298,7 +298,7 @@ void KviKvsProcessAsyncOperation::processStarted() if(m_bDeletePending)return; QString szPid; - szPid.setNum((int)(m_pProcess->pid())); + szPid.setNum((intptr_t)(m_pProcess->pid())); if(trigger(EventStarted,szPid)) { triggerSelfDelete(); diff --git a/src/kvirc/kvs/KviKvsVariant.cpp b/src/kvirc/kvs/KviKvsVariant.cpp index 5b6a03910..6a76fc40f 100644 --- a/src/kvirc/kvs/KviKvsVariant.cpp +++ b/src/kvirc/kvs/KviKvsVariant.cpp @@ -28,6 +28,7 @@ #include "KviKvsArray.h" #include <math.h> +#include <cinttypes> int KviKvsVariantComparison::compareIntString(const KviKvsVariant * pV1, const KviKvsVariant * pV2) { @@ -862,7 +863,7 @@ void KviKvsVariant::asString(QString & szBuffer) const szBuffer.setNum(m_pData->m_u.bBoolean ? 1 : 0); break; case KviKvsVariantData::HObject: if(m_pData->m_u.hObject) - szBuffer = QString("object[%1]").arg((long int)m_pData->m_u.hObject,0,16); + szBuffer = QString("object[%1]").arg((uintptr_t)m_pData->m_u.hObject,0,16); else szBuffer = "null-object"; break; @@ -905,31 +906,31 @@ void KviKvsVariant::dump(const char * pcPrefix) const { if(!m_pData) { - qDebug("%s Nothing [this=0x%lx]",pcPrefix,(long unsigned int)this); + qDebug("%s Nothing [this=0x" PRIxPTR "]",pcPrefix,(uintptr_t)this); return; } switch(m_pData->m_eType) { case KviKvsVariantData::String: - qDebug("%s String(%s) [this=0x%lx]",pcPrefix,m_pData->m_u.pString->toUtf8().data(),(long unsigned int)this); + qDebug("%s String(%s) [this=0x" PRIxPTR "]",pcPrefix,m_pData->m_u.pString->toUtf8().data(),(uintptr_t)this); break; case KviKvsVariantData::Array: - qDebug("%s Array(ptr=0x%lx) [this=0x%lx]",pcPrefix,(long unsigned int)m_pData->m_u.pArray,(long unsigned int)this); + qDebug("%s Array(ptr=0x" PRIxPTR ") [this=0x" PRIxPTR "]",pcPrefix,(uintptr_t)m_pData->m_u.pArray,(uintptr_t)this); break; case KviKvsVariantData::Hash: - qDebug("%s Hash(ptr=0x%lx,dict=0x%lx) [this=0x%lx]",pcPrefix,(long unsigned int)m_pData->m_u.pHash,(long unsigned int)m_pData->m_u.pHash->dict(),(long unsigned int)this); + qDebug("%s Hash(ptr=0x" PRIxPTR ",dict=0x" PRIxPTR ") [this=0x" PRIxPTR "]",pcPrefix,(uintptr_t)m_pData->m_u.pHash,(uintptr_t)m_pData->m_u.pHash->dict(),(uintptr_t)this); break; case KviKvsVariantData::Integer: - qDebug("%s Integer(%d) [this=0x%lx]",pcPrefix,(int) m_pData->m_u.iInt,(long unsigned int)this); + qDebug("%s Integer(%d) [this=0x" PRIxPTR "]",pcPrefix,(int) m_pData->m_u.iInt,(uintptr_t)this); break; case KviKvsVariantData::Real: - qDebug("%s Real(%f) [this=0x%lx]",pcPrefix,*(m_pData->m_u.pReal),(long unsigned int)this); + qDebug("%s Real(%f) [this=0x" PRIxPTR "]",pcPrefix,*(m_pData->m_u.pReal),(uintptr_t)this); break; case KviKvsVariantData::Boolean: - qDebug("%s Boolean(%s) [this=0x%lx]",pcPrefix,m_pData->m_u.bBoolean ? "true" : "false",(long unsigned int)this); + qDebug("%s Boolean(%s) [this=0x" PRIxPTR "]",pcPrefix,m_pData->m_u.bBoolean ? "true" : "false",(uintptr_t)this); break; case KviKvsVariantData::HObject: - qDebug("%s HObject(%lx) [this=0x%lx]",pcPrefix,(long unsigned int)m_pData->m_u.hObject,(long unsigned int)this); + qDebug("%s HObject(" PRIxPTR ") [this=0x" PRIxPTR "]",pcPrefix,(uintptr_t)m_pData->m_u.hObject,(uintptr_t)this); break; default: /* make gcc happy */ break; } diff --git a/src/modules/math/libkvimath.cpp b/src/modules/math/libkvimath.cpp index 83d48a06e..874a6c690 100644 --- a/src/modules/math/libkvimath.cpp +++ b/src/modules/math/libkvimath.cpp @@ -26,7 +26,7 @@ #include "KviModule.h" #include "KviCString.h" -#include <math.h> +#include <cmath> // Workaround for lost isnan and isinf definitions after // inclusion of iostream.h on some MacOS X systems @@ -58,38 +58,6 @@ static bool __fncname(KviKvsModuleFunctionCall * c) \ return true; \ } -#ifdef COMPILE_ON_WINDOWS -// we have to test better the results -inline static double cbrt(double x) -{ - if (x > 0.0) return pow(x, 1.0/3.0); - else return -pow(-x, 1.0/3.0); -} - -static int isinf (double d) { - int expon = 0; - double val = frexp (d, &expon); - if (expon == 1025) { - if (val == 0.5) return 1; - else if (val == -0.5) return -1; - else return 0; - } else { - return 0; - } -} - -static int isnan (double d) { - int expon = 0; - double val = frexp (d, &expon); - if (expon == 1025) { - if (val == 0.5) return 0; - else if (val == -0.5) return 0; - else return 1; - } else { - return 0; - } -} -#endif /* @doc: math.sin @type: @@ -324,7 +292,7 @@ static bool math_kvs_fnc_isnan(KviKvsModuleFunctionCall * c) KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("value",KVS_PT_REAL,0,dReal) KVSM_PARAMETERS_END(c) - c->returnValue()->setBoolean(isnan(dReal)); + c->returnValue()->setBoolean(std::isnan(dReal)); return true; } @@ -347,11 +315,7 @@ static bool math_kvs_fnc_isinf(KviKvsModuleFunctionCall * c) KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("value",KVS_PT_REAL,0,dReal) KVSM_PARAMETERS_END(c) -#ifdef COMPILE_ON_WINDOWS - c->returnValue()->setBoolean(sinf(dReal)); -#else - c->returnValue()->setBoolean(isinf(dReal)); -#endif //COMPILE_ON_WINDOWS + c->returnValue()->setBoolean(std::isinf(dReal)); return true; } diff --git a/src/modules/mediaplayer/winamp.cpp b/src/modules/mediaplayer/winamp.cpp index e4af956fb..de0f18bec 100644 --- a/src/modules/mediaplayer/winamp.cpp +++ b/src/modules/mediaplayer/winamp.cpp @@ -127,7 +127,7 @@ LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) int init() { lpWndProcOld = (void *) GetWindowLong(plugin.hwndParent,GWLP_WNDPROC); - SetWindowLongPtr(plugin.hwndParent,GWLP_WNDPROC,(long)WndProc); + SetWindowLongPtr(plugin.hwndParent,GWLP_WNDPROC,(intptr_t)WndProc); return 0; } |
