-------- Original-Nachricht
--------
Am 23.01.2013 17:57, schrieb Thomas Arp: >> On 01/23/2013 05:10 PM, Thomas Arp wrote: >>> Maybe we could add the WinSparkle.def definition file to our sources and >> than use libtool from a system call to create the lib. >> >> Yes, that would be acceptable. I tried to compile winsparkle with gcc/g++ but it seems that some basic definitions/implementations in msvc are not really compatible with implementations in libstdc++ used by gcc. I have to patch the winsparkle source code to make it compilable with gcc so i decided to offer a definition file for now. Thomas |
>From 3cd465ebacbdcb7d41f8147dda1016e733a0a826 Mon Sep 17 00:00:00 2001 From: Thomas Arp <manner.moe@gmx.de> Date: Fri, 25 Jan 2013 22:58:37 +0100 Subject: [PATCH 2/2] Removed unnecessary cleanup function in QHiMDUpdate class, use class destructor to call sparkle/winsparkle cleanup method instead, added definition file for WinSparkle.dll and make use of dlltool to create an import library which can be linked to this gcc based project --- qhimdtransfer/qhimdmainwindow.cpp | 1 - qhimdtransfer/qhimdtransfer.pro | 13 ++++++++++--- qhimdtransfer/qhimdupdate.h | 1 - qhimdtransfer/qhimdwinupdate.cpp | 7 +------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index 01db25b..70494ab 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -407,7 +407,6 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) QHiMDMainWindow::~QHiMDMainWindow() { save_window_settings(); - update->cleanup_updatecheck(); delete ui; } diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index dc4775b..7e5a867 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -70,9 +70,14 @@ else:SOURCES += qhimddummydetection.cpp \ RESOURCES += icons.qrc PKGCONFIG += sox \ taglib -win32:LIBS += -lsetupapi \ - -lcfgmgr32 \ - -lwinsparkle +win32: { + # for mingw on windows: ld.exe cannot directly link to WinSparkle.dll compiled with msvc, create import library first + system(dlltool -d win32/winsparkle.def -l win32/libwinsparkle.a) + LIBS += -lsetupapi \ + -lcfgmgr32 \ + -Lwin32 \ + -lwinsparkle +} win32:RC_FILE = qhimdtransfer.rc mac:ICON = qhimdtransfer.icns @@ -94,3 +99,5 @@ unix:!macx { target.path = /usr/bin INSTALLS += target } + +win32:OTHER_FILES += win32/winsparkle.def diff --git a/qhimdtransfer/qhimdupdate.h b/qhimdtransfer/qhimdupdate.h index 57ca0fd..72ebda1 100644 --- a/qhimdtransfer/qhimdupdate.h +++ b/qhimdtransfer/qhimdupdate.h @@ -17,7 +17,6 @@ public: ~QHiMDUpdate() {} virtual bool is_active() {return active;} virtual void check_for_updates() {} - virtual void cleanup_updatecheck() {} }; QHiMDUpdate * createUpdate(); diff --git a/qhimdtransfer/qhimdwinupdate.cpp b/qhimdtransfer/qhimdwinupdate.cpp index fd0dff0..cae25dd 100644 --- a/qhimdtransfer/qhimdwinupdate.cpp +++ b/qhimdtransfer/qhimdwinupdate.cpp @@ -15,7 +15,6 @@ public: QHiMDWinUpdate(); ~QHiMDWinUpdate(); virtual void check_for_updates(); - virtual void cleanup_updatecheck(); }; QHiMDUpdate * createUpdate() @@ -42,7 +41,7 @@ QHiMDWinUpdate::QHiMDWinUpdate() QHiMDWinUpdate::~QHiMDWinUpdate() { - cleanup_updatecheck(); + win_sparkle_cleanup(); } void QHiMDWinUpdate::check_for_updates() @@ -50,7 +49,3 @@ void QHiMDWinUpdate::check_for_updates() win_sparkle_check_update_with_ui(); } -void QHiMDWinUpdate::cleanup_updatecheck() -{ - win_sparkle_cleanup(); -} -- 1.8.0.msysgit.0