aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Fabio Bas2010-10-19 16:39:03 +0000
committerGravatar Fabio Bas2010-10-19 16:39:03 +0000
commit2371d4516577c2887fbe1a735b2293e75597a989 (patch)
tree3fb3bc34d59737a0dc8bfc82d4c618f95e721e68
parentfix for #976 (diff)
downloadKVIrc-2371d4516577c2887fbe1a735b2293e75597a989.tar.gz
KVIrc-2371d4516577c2887fbe1a735b2293e75597a989.tar.bz2
KVIrc-2371d4516577c2887fbe1a735b2293e75597a989.zip
merged egns's patch to enable painless msvc compilation, thank you!
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5091 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--CMakeLists.txt40
-rw-r--r--cmake/module.rules.txt7
-rw-r--r--src/kvilib/config/kvi_settings.h13
-rw-r--r--src/kvilib/core/kvi_pointerhashtable.h6
-rw-r--r--src/kvilib/ext/kvi_nickcolors.cpp4
-rw-r--r--src/kvilib/system/kvi_stdarg.h2
-rw-r--r--src/kvirc/kernel/kvi_ipc.cpp4
-rw-r--r--src/kvirc/module/kvi_module.h6
-rw-r--r--src/modules/classeditor/classeditor.cpp2
-rw-r--r--src/modules/editor/scripteditor.cpp10
-rw-r--r--src/modules/mediaplayer/winamp.cpp4
-rw-r--r--src/modules/options/optw_interfacelookglobal.h2
-rw-r--r--src/modules/reguser/edituser.cpp2
13 files changed, 70 insertions, 32 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b50097db2..a307eccfd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -187,9 +187,19 @@ ELSE()
ENDIF()
ENDIF()
ELSE()
- #this small set of options should work on almost all compilers
- SET(CMAKE_CXX_FLAGS "-O0 -g")
- SET(CMAKE_C_FLAGS "-O0 -g")
+ IF(MSVC)
+ #CMake default options are conflicting for some modules, such as perl
+ STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
+ STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
+ STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
+ STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
+ #this is the equivalent of -O0 -g according to msdn
+ SET(CMAKE_CXX_FLAGS "/Od /Zi")
+ SET(CMAKE_C_FLAGS "/Od /Zi")
+ ELSE()
+ SET(CMAKE_CXX_FLAGS "-O0 -g")
+ SET(CMAKE_C_FLAGS "-O0 -g")
+ ENDIF()
ENDIF()
ELSE()
IF(WITHOUT_STRIP)
@@ -220,9 +230,18 @@ ELSE()
SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
ENDIF()
ELSE()
- #this small set of options should work on almost all compilers
- SET(CMAKE_CXX_FLAGS "-O3")
- SET(CMAKE_C_FLAGS "-O3")
+ IF(MSVC)
+ #CMake default options are conflicting for some modules, such as perl
+ STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
+ STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
+ STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
+ STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
+ SET(CMAKE_CXX_FLAGS "/Ox")
+ SET(CMAKE_C_FLAGS "/Ox")
+ ELSE()
+ SET(CMAKE_CXX_FLAGS "-O3")
+ SET(CMAKE_C_FLAGS "-O3")
+ ENDIF()
ENDIF()
ENDIF()
ENDIF()
@@ -315,6 +334,7 @@ IF(UNIX)
ENDIF()
ELSEIF(WIN32)
SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/")
+ SET(CMAKE_KVIRC_MODULES_DIR "${CMAKE_INSTALL_PREFIX}/modules/")
ENDIF()
###############################################################################
@@ -1417,5 +1437,11 @@ MESSAGE(STATUS " Enabled Audio Backends : ${CMAKE_STATUS_AUDIO_BACKENDS}")
MESSAGE(STATUS " ")
MESSAGE(STATUS " Build Date : ${CMAKE_KVIRC_BUILD_DATE}")
MESSAGE(STATUS " ")
-MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'make' now...")
+IF(MSVC)
+ MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'nmake' now...")
+ELSEIF(MINGW)
+ MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'mingw32-make' now...")
+ELSE()
+ MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'make' now...")
+ENDIF()
MESSAGE(STATUS " ")
diff --git a/cmake/module.rules.txt b/cmake/module.rules.txt
index d82bb43d6..854189000 100644
--- a/cmake/module.rules.txt
+++ b/cmake/module.rules.txt
@@ -10,12 +10,7 @@ ENDIF()
ADD_LIBRARY(${kvi_module_name} MODULE ${${kvi_module_name}_SRCS} ${${kvi_module_name}_MOC_SRCS})
IF(WIN32)
- IF(MSVC)
- TARGET_LINK_LIBRARIES(${kvi_module_name} ${KVILIB_BINARYNAME} ${LIBS})
- ELSE()
- #mingw needs these flags for linking
- TARGET_LINK_LIBRARIES(${kvi_module_name} ${KVILIB_BINARYNAME} ${KVIRC_BINARYNAME} ${LIBS})
- ENDIF()
+ TARGET_LINK_LIBRARIES(${kvi_module_name} ${KVILIB_BINARYNAME} ${KVIRC_BINARYNAME} ${KVIRC_BINARYNAME} ${LIBS})
ELSE()
TARGET_LINK_LIBRARIES(${kvi_module_name} ${KVILIB_BINARYNAME} ${LIBS})
ENDIF()
diff --git a/src/kvilib/config/kvi_settings.h b/src/kvilib/config/kvi_settings.h
index dd8fbc197..73e076cbd 100644
--- a/src/kvilib/config/kvi_settings.h
+++ b/src/kvilib/config/kvi_settings.h
@@ -46,8 +46,7 @@
* \def COMPILE_WITH_SYSTEM_MEMMOVE This flag will disable kvirc's internal optimized memmove functions
* \def COMPILE_ON_WINDOWS This flag will enable specific code for windows/visual studio compilation
*/
-
- #define COMPILE_WITH_SYSTEM_MEMMOVE
+
#define COMPILE_ON_WINDOWS
/**
@@ -56,10 +55,10 @@
*/
#ifdef __KVILIB__
- #define KVILIB_API __declspec(dllexport) __attribute__((visibility("default")))
+ #define KVILIB_API __declspec(dllexport)
#define KVILIB_API_TYPEDEF __declspec(dllexport)
#else
- #define KVILIB_API __declspec(dllimport) __attribute__((visibility("default")))
+ #define KVILIB_API __declspec(dllimport)
#define KVILIB_API_TYPEDEF __declspec(dllimport)
#endif
@@ -68,11 +67,11 @@
* \def KVIRC_API_TYPEDEF This prefix before a typedef enables the export of its symbol outside kvirc; needed for win32/visual studio, win32/mingw
*/
- #ifdef __KVIRC__
- #define KVIRC_API __declspec(dllexport) __attribute__((visibility("default")))
+ #ifdef __KVIRC__
+ #define KVIRC_API __declspec(dllexport)
#define KVIRC_API_TYPEDEF __declspec(dllexport)
#else
- #define KVIRC_API __declspec(dllimport) __attribute__((visibility("default")))
+ #define KVIRC_API __declspec(dllimport)
#define KVIRC_API_TYPEDEF __declspec(dllimport)
#endif
#else
diff --git a/src/kvilib/core/kvi_pointerhashtable.h b/src/kvilib/core/kvi_pointerhashtable.h
index 8cf20710a..48039154c 100644
--- a/src/kvilib/core/kvi_pointerhashtable.h
+++ b/src/kvilib/core/kvi_pointerhashtable.h
@@ -103,7 +103,13 @@ inline void kvi_hash_key_copy(const char * const &szFrom,const char * &szTo,bool
{
if(bDeepCopy)
{
+#if defined(COMPILE_ON_WINDOWS)
+ // strlen() returns size_t under windows, which is 32 bits long on a 32 bits
+ // system and 64 bits long on a 64 bits one. cast it to avoid a warning
+ int len = (int)kvi_strLen(szFrom);
+#else
int len = kvi_strLen(szFrom);
+#endif
char * dst = (char *)kvi_malloc(len+1);
kvi_fastmove(dst,szFrom,len+1);
szTo = dst;
diff --git a/src/kvilib/ext/kvi_nickcolors.cpp b/src/kvilib/ext/kvi_nickcolors.cpp
index 17e436c91..977016180 100644
--- a/src/kvilib/ext/kvi_nickcolors.cpp
+++ b/src/kvilib/ext/kvi_nickcolors.cpp
@@ -78,7 +78,11 @@ namespace KviNickColors
char* comb= (char*)kvi_malloc(6);
int numm=0;
// TODO handle KVI_TRANSPARENT and KVI_NOCHANGE (ticket #812)
+#if defined(COMPILE_ON_WINDOWS) && !(defined(MINGW))
+ _snprintf(comb, 6, "%d,%d", iFore % 16, iBack % 16);
+#else
snprintf(comb, 6, "%d,%d", iFore % 16, iBack % 16);
+#endif
// qDebug("Nick color %s",comb);
for(int i=0; i<KVI_NUM_NICK_COLORS;++i)
{
diff --git a/src/kvilib/system/kvi_stdarg.h b/src/kvilib/system/kvi_stdarg.h
index b038b34f7..6d5f5ed86 100644
--- a/src/kvilib/system/kvi_stdarg.h
+++ b/src/kvilib/system/kvi_stdarg.h
@@ -42,7 +42,7 @@
// }
//
//
-#ifdef COMPILE_ON_WINDOWS
+#if defined(COMPILE_ON_WINDOWS) && defined(MINGW)
#define kvi_va_start_by_reference(__list,__arg) \
{ \
int supercalifragilisticoespiralidoso=_INTSIZEOF(__arg); \
diff --git a/src/kvirc/kernel/kvi_ipc.cpp b/src/kvirc/kernel/kvi_ipc.cpp
index 7919ea52d..4c6a400e8 100644
--- a/src/kvirc/kernel/kvi_ipc.cpp
+++ b/src/kvirc/kernel/kvi_ipc.cpp
@@ -141,7 +141,11 @@
cpd.lpData = (void *)message;
DWORD dwResult;
qDebug(message);
+#if defined(COMPILE_ON_WINDOWS) && !(defined(MINGW))
+ ::SendMessageTimeout(hSentinel,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cpd,SMTO_BLOCK,1000,(PDWORD_PTR)&dwResult);
+#else
::SendMessageTimeout(hSentinel,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cpd,SMTO_BLOCK,1000,&dwResult);
+#endif
return true;
}
#else
diff --git a/src/kvirc/module/kvi_module.h b/src/kvirc/module/kvi_module.h
index 1dd4d5930..8a62af863 100644
--- a/src/kvirc/module/kvi_module.h
+++ b/src/kvirc/module/kvi_module.h
@@ -41,7 +41,11 @@
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
- #define KVIMODULEEXPORT extern "C" __declspec(dllexport) __attribute__((visibility("default")))
+ #if defined(COMPILE_ON_MINGW)
+ #define KVIMODULEEXPORT extern "C" __declspec(dllexport) __attribute__((visibility("default")))
+ #else
+ #define KVIMODULEEXPORT extern "C" __declspec(dllexport)
+ #endif
#define KVIMODULEEXPORTDATA KVIMODULEEXPORT
#define KVIMODULEEXPORTFUNC KVIMODULEEXPORT
#else
diff --git a/src/modules/classeditor/classeditor.cpp b/src/modules/classeditor/classeditor.cpp
index 48d750dfa..3f34c0b9e 100644
--- a/src/modules/classeditor/classeditor.cpp
+++ b/src/modules/classeditor/classeditor.cpp
@@ -1562,7 +1562,7 @@ void KviClassEditor::newClass()
KviQString::escapeKvs(&szClassName, KviQString::EscapeSpace);
KviQString::escapeKvs(&szinheritsClassName, KviQString::EscapeSpace);
- QString szClass = "class\(";
+ QString szClass = "class(";
szClass += szClassName + "," + szinheritsClassName;
szClass += "){}\n";
pItem->setInheritsClass(szinheritsClassName);
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp
index 6a1b4a56d..2d5a47ea0 100644
--- a/src/modules/editor/scripteditor.cpp
+++ b/src/modules/editor/scripteditor.cpp
@@ -63,14 +63,14 @@ extern KviPointerList<KviScriptEditorImplementation> * g_pScriptEditorWindowList
extern KviModule * g_pEditorModulePointer;
static QColor g_clrBackground(0,0,0);
-static QColor g_clrNormalText(100,100,100);
+static QColor g_clrNormalText(100,255,0);
static QColor g_clrBracket(255,0,0);
static QColor g_clrComment(0,120,0);
-static QColor g_clrFunction(0,17,255);
-static QColor g_clrKeyword(85,85,255);
-static QColor g_clrVariable(255,0,0);
+static QColor g_clrFunction(255,255,0);
+static QColor g_clrKeyword(120,120,150);
+static QColor g_clrVariable(200,200,200);
static QColor g_clrPunctuation(180,180,0);
-static QColor g_clrFind(0,0,0);
+static QColor g_clrFind(255,0,0);
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
#define KVI_SCRIPTEDITOR_DEFAULT_FONT "Courier New"
diff --git a/src/modules/mediaplayer/winamp.cpp b/src/modules/mediaplayer/winamp.cpp
index 60bcb29e7..561c01cd3 100644
--- a/src/modules/mediaplayer/winamp.cpp
+++ b/src/modules/mediaplayer/winamp.cpp
@@ -126,8 +126,8 @@ LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
int init()
{
- lpWndProcOld = (void *) GetWindowLong(plugin.hwndParent,GWL_WNDPROC);
- SetWindowLong(plugin.hwndParent,GWL_WNDPROC,(long)WndProc);
+ lpWndProcOld = (void *) GetWindowLong(plugin.hwndParent,GWLP_WNDPROC);
+ SetWindowLongPtr(plugin.hwndParent,GWLP_WNDPROC,(long)WndProc);
return 0;
}
diff --git a/src/modules/options/optw_interfacelookglobal.h b/src/modules/options/optw_interfacelookglobal.h
index da19fc819..d41734401 100644
--- a/src/modules/options/optw_interfacelookglobal.h
+++ b/src/modules/options/optw_interfacelookglobal.h
@@ -62,7 +62,7 @@ protected:
KviBoolSelector * m_pUseTransparencyBoolSelector;
#ifdef COMPILE_X11_SUPPORT
KviBoolSelector * m_pUseCompositingForTransparencyBoolSelector;
- #elif defined(COMPILE_ON_MINGW) // || defined(COMPILE_ON_WINDOWS)
+ #elif defined(COMPILE_ON_WINDOWS)
KviBoolSelector * m_pUseWindowsFakeDesktopTransparencyBoolSelector;
#endif
#endif
diff --git a/src/modules/reguser/edituser.cpp b/src/modules/reguser/edituser.cpp
index 640b7ff06..25ee40f42 100644
--- a/src/modules/reguser/edituser.cpp
+++ b/src/modules/reguser/edituser.cpp
@@ -540,7 +540,7 @@ void KviRegisteredUserEntryDialog::notifyCheckClicked(bool bChecked)
{
m_pNotifyNick->setEnabled(bChecked);
m_pNotifyLabel->setEnabled(bChecked);
- if(bChecked and m_pNotifyNick->text().isEmpty())
+ if(bChecked && m_pNotifyNick->text().isEmpty())
{
QString szMask;
if(m_pUser)