aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Alexey Sokolov2015-11-06 23:06:57 +0000
committerGravatar Alexey Sokolov2015-11-06 23:27:46 +0000
commit037dfdd7506832a9ff76de0f13d7a228b5b8febb (patch)
treea3568e0f1102a10abbc64e4619854a477ef505dc /src
parentMerge pull request #1722 from un1versal/My-Favorite-Martian (diff)
downloadKVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.tar.gz
KVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.tar.bz2
KVIrc-037dfdd7506832a9ff76de0f13d7a228b5b8febb.zip
Fix MinGW build
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/CMakeLists.txt8
-rw-r--r--src/kvirc/kernel/KviIpcSentinel.cpp6
-rw-r--r--src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp2
-rw-r--r--src/kvirc/kvs/KviKvsProcessManager.cpp2
-rw-r--r--src/kvirc/kvs/KviKvsVariant.cpp19
-rw-r--r--src/modules/math/libkvimath.cpp42
-rw-r--r--src/modules/mediaplayer/winamp.cpp2
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;
}