diff options
| author | 2010-10-19 16:39:03 +0000 | |
|---|---|---|
| committer | 2010-10-19 16:39:03 +0000 | |
| commit | 2371d4516577c2887fbe1a735b2293e75597a989 (patch) | |
| tree | 3fb3bc34d59737a0dc8bfc82d4c618f95e721e68 | |
| parent | fix for #976 (diff) | |
| download | KVIrc-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.txt | 40 | ||||
| -rw-r--r-- | cmake/module.rules.txt | 7 | ||||
| -rw-r--r-- | src/kvilib/config/kvi_settings.h | 13 | ||||
| -rw-r--r-- | src/kvilib/core/kvi_pointerhashtable.h | 6 | ||||
| -rw-r--r-- | src/kvilib/ext/kvi_nickcolors.cpp | 4 | ||||
| -rw-r--r-- | src/kvilib/system/kvi_stdarg.h | 2 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_ipc.cpp | 4 | ||||
| -rw-r--r-- | src/kvirc/module/kvi_module.h | 6 | ||||
| -rw-r--r-- | src/modules/classeditor/classeditor.cpp | 2 | ||||
| -rw-r--r-- | src/modules/editor/scripteditor.cpp | 10 | ||||
| -rw-r--r-- | src/modules/mediaplayer/winamp.cpp | 4 | ||||
| -rw-r--r-- | src/modules/options/optw_interfacelookglobal.h | 2 | ||||
| -rw-r--r-- | src/modules/reguser/edituser.cpp | 2 |
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) |
