From fcd99675ce751f1aaea2dd962f3caaba40aa6ade Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Wed, 28 May 2008 14:12:04 +0000 Subject: Fixed kvilib and kvirc compilation/linking under mingw32; now kvirc-mingw runs :) (still todo: modules and install rules) git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1862 17fca916-40b9-46aa-a4ea-0a15b648b75c --- CMakeLists.txt | 5 +---- src/CMakeLists.txt | 5 ----- src/kvilib/CMakeLists.txt | 7 ++++++- src/kvilib/config/kvi_settings.h | 21 +++++++++++++++++---- src/kvilib/core/kvi_malloc.h | 2 +- src/kvilib/core/kvi_memmove.h | 2 +- src/kvilib/ext/kvi_crypt.cpp | 2 +- src/kvirc/CMakeLists.txt | 8 +++++++- 8 files changed, 34 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc3b6c9ec..7d3e54ef2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -563,10 +563,7 @@ ENDIF() # Win32 mingw/cmake build checks ############################################################################ IF(MINGW) - ADD_DEFINITIONS(-DMINGW -DCOMPILE_USE_STANDALONE_MOC_SOURCES) - SET(CMAKE_SHARED_LINKER_FLAGS "-fPIC -Wl,--export-all-symbols,--enable-auto-import,--enable-runtime-pseudo-reloc -Wno-deprecated") - SET(CMAKE_MODULE_LINKER_FLAGS "-fPIC -Wl,--export-all-symbols,--enable-auto-import,--enable-runtime-pseudo-reloc -Wno-deprecated") - + ADD_DEFINITIONS(-DMINGW -DCOMPILE_USE_STANDALONE_MOC_SOURCES -D_WIN32_WINNT=0x501 -DWINVER=0x501 -mwindows) LIST(APPEND LIBS -lshlwapi) ENDIF() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 75f0c4445..d5875a2f0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,9 +1,4 @@ # CMakeLists for src/ -# Windows need the win32registrar component -IF(WIN32) - ADD_SUBDIRECTORY(win32registrar) -ENDIF() - # Find subdirs SUBDIRS(kvilib kvirc modules) \ No newline at end of file diff --git a/src/kvilib/CMakeLists.txt b/src/kvilib/CMakeLists.txt index 451a6566e..911bfe6cd 100644 --- a/src/kvilib/CMakeLists.txt +++ b/src/kvilib/CMakeLists.txt @@ -209,10 +209,15 @@ IF(WANT_COEXISTENCE) ELSE() SET(KVILIB_BINARYNAME kvilib) ENDIF() + +#we need this defined when mingw will compile moc files +IF(MINGW) + ADD_DEFINITIONS(-D__KVILIB__) +ENDIF() ADD_LIBRARY(${KVILIB_BINARYNAME} SHARED ${kvilib_SRCS} ${kvilib_MOC_SRCS}) TARGET_LINK_LIBRARIES(${KVILIB_BINARYNAME} ${LIBS}) - + # Installation directives SET_TARGET_PROPERTIES(${KVILIB_BINARYNAME} PROPERTIES VERSION ${VERSION_RELEASE} SOVERSION ${VERSION_MAJOR}) IF(UNIX) diff --git a/src/kvilib/config/kvi_settings.h b/src/kvilib/config/kvi_settings.h index d5070f652..44726054c 100644 --- a/src/kvilib/config/kvi_settings.h +++ b/src/kvilib/config/kvi_settings.h @@ -58,7 +58,23 @@ #else #ifdef MINGW #define COMPILE_ON_MINGW - #define COMPILE_NO_X + #define COMPILE_NO_X + #define COMPILE_WITH_SYSTEM_MEMMOVE + + #ifdef __KVILIB__ + #define KVILIB_API __declspec(dllexport) + #else + #define KVILIB_API __declspec(dllimport) + #endif + + #ifdef __KVIRC__ + #define KVIRC_API __declspec(dllexport) + #else + #define KVIRC_API __declspec(dllimport) + #endif + #else + #define KVILIB_API + #define KVIRC_API #endif #ifdef Q_OS_MACX @@ -92,9 +108,6 @@ #endif #endif - #define KVILIB_API - #define KVIRC_API - #endif #ifndef COMPILE_USE_QT4 diff --git a/src/kvilib/core/kvi_malloc.h b/src/kvilib/core/kvi_malloc.h index 09f187bdb..0ce3c3e5c 100644 --- a/src/kvilib/core/kvi_malloc.h +++ b/src/kvilib/core/kvi_malloc.h @@ -35,7 +35,7 @@ #ifdef COMPILE_MEMORY_PROFILE - #ifdef COMPILE_ON_WINDOWS + #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) #error "This stuff should be never compiled on Windows" #endif diff --git a/src/kvilib/core/kvi_memmove.h b/src/kvilib/core/kvi_memmove.h index 71877a102..e220808d1 100644 --- a/src/kvilib/core/kvi_memmove.h +++ b/src/kvilib/core/kvi_memmove.h @@ -46,7 +46,7 @@ #else - #ifdef COMPILE_ON_WINDOWS + #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) #error "This stuff should be never compiled on Windows" #endif diff --git a/src/kvilib/ext/kvi_crypt.cpp b/src/kvilib/ext/kvi_crypt.cpp index 53679f062..3dd689daa 100644 --- a/src/kvilib/ext/kvi_crypt.cpp +++ b/src/kvilib/ext/kvi_crypt.cpp @@ -27,7 +27,7 @@ #include "kvi_crypt.h" #include "kvi_locale.h" -#ifdef COMPILE_ON_WINDOWS +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) #include "kvi_malloc.h" #endif diff --git a/src/kvirc/CMakeLists.txt b/src/kvirc/CMakeLists.txt index be41215a2..0a5160af6 100644 --- a/src/kvirc/CMakeLists.txt +++ b/src/kvirc/CMakeLists.txt @@ -440,13 +440,19 @@ ELSE() ENDIF() ADD_EXECUTABLE(${KVIRC_BINARYNAME} ${kvirc_SRCS} ${kvirc_MOC_SRCS}) + +#we need this defined when mingw will compile moc files +IF(MINGW) + ADD_DEFINITIONS(-D__KVIRC__) +ENDIF() # Link libraries TARGET_LINK_LIBRARIES(${KVIRC_BINARYNAME} ${KVILIB_BINARYNAME} ${LIBS}) IF(MINGW) SET_TARGET_PROPERTIES(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import,--enable-runtime-pseudo-reloc") -ENDIF() +ENDIF() + # Installation directives IF(UNIX) IF(APPLE) -- cgit v1.3.1-10-gc9f91