diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c1063ba9..c8756e903 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,15 +50,21 @@ elseif(WIN32) endif() # Define proper compilation flags -IF (CMAKE_COMPILER_IS_GNUCC) +IF(MSVC) + # Visual Studio: + # Maximum optimization + set(CMAKE_CXX_FLAGS_RELEASE "/Ox") + # Generate complete debugging information + #set(CMAKE_CXX_FLAGS_DEBUG "/Zi") +ELSEIF (CMAKE_COMPILER_IS_GNUCXX) # linux/gcc, bsd/gcc, windows/mingw set(CMAKE_CXX_FLAGS_RELEASE "-s -O2") set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0") -else() +ELSE() # other: osx/llvm, bsd/llvm set(CMAKE_CXX_FLAGS_RELEASE "-O2") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") -ENDIF (CMAKE_COMPILER_IS_GNUCC) +ENDIF() # GNU systems need to define the Mersenne exponent for the RNG to compile w/o warning IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 1d915bdbf..499836dd1 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -154,8 +154,11 @@ INCLUDE_DIRECTORIES(${QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR}) # Build cockatrice binary and link it ADD_EXECUTABLE(cockatrice WIN32 MACOSX_BUNDLE ${cockatrice_SOURCES} ${cockatrice_QM} ${cockatrice_RESOURCES_RCC} ${cockatrice_MOC_SRCS}) -TARGET_LINK_LIBRARIES(cockatrice cockatrice_common ${QT_LIBRARIES} ${QT_MOBILITY_MULTIMEDIAKIT_LIBRARY}) +TARGET_LINK_LIBRARIES(cockatrice cockatrice_common ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES} ${QT_MOBILITY_MULTIMEDIAKIT_LIBRARY}) +if(MSVC) + set_target_properties(cockatrice PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS") +endif(MSVC) if(UNIX) if(APPLE) diff --git a/cockatrice/src/abstractcarditem.cpp b/cockatrice/src/abstractcarditem.cpp index 7b624572d..018cc5e06 100644 --- a/cockatrice/src/abstractcarditem.cpp +++ b/cockatrice/src/abstractcarditem.cpp @@ -2,7 +2,10 @@ #include #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ #include "carddatabase.h" #include "cardinfowidget.h" #include "abstractcarditem.h" @@ -143,7 +146,7 @@ void AbstractCardItem::paintPicture(QPainter *painter, const QSizeF &translatedS painter->restore(); } -void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { painter->save(); diff --git a/cockatrice/src/arrowitem.cpp b/cockatrice/src/arrowitem.cpp index a27b451a0..969be2b43 100644 --- a/cockatrice/src/arrowitem.cpp +++ b/cockatrice/src/arrowitem.cpp @@ -1,9 +1,11 @@ +#define _USE_MATH_DEFINES +#include + #include "arrowitem.h" #include "playertarget.h" #include "carditem.h" #include "cardzone.h" #include "player.h" -#include "math.h" #include #include #include @@ -64,7 +66,7 @@ void ArrowItem::updatePath(const QPointF &endPoint) { const double arrowWidth = 15.0; const double headWidth = 40.0; - const double headLength = headWidth / sqrt(2); + const double headLength = headWidth / pow(2, 0.5); // aka headWidth / sqrt (2) but this produces a compile error with MSVC++ const double phi = 15; if (!startItem) diff --git a/cockatrice/src/cardzone.cpp b/cockatrice/src/cardzone.cpp index f09cac1f6..dc26263b4 100644 --- a/cockatrice/src/cardzone.cpp +++ b/cockatrice/src/cardzone.cpp @@ -148,7 +148,7 @@ QString CardZone::getTranslatedName(bool hisOwn, GrammaticalCase gc) const return QString(); } -void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent */*event*/) +void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent * /*event*/) { if (doubleClickAction) doubleClickAction->trigger(); diff --git a/cockatrice/src/counter_general.cpp b/cockatrice/src/counter_general.cpp index edc445198..e282f1bd8 100644 --- a/cockatrice/src/counter_general.cpp +++ b/cockatrice/src/counter_general.cpp @@ -13,7 +13,7 @@ QRectF GeneralCounter::boundingRect() const return QRectF(0, 0, radius * 2, radius * 2); } -void GeneralCounter::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void GeneralCounter::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { QRectF mapRect = painter->combinedTransform().mapRect(boundingRect()); int translatedHeight = mapRect.size().height(); diff --git a/cockatrice/src/decklistmodel.h b/cockatrice/src/decklistmodel.h index e2a85c568..27376c7a7 100644 --- a/cockatrice/src/decklistmodel.h +++ b/cockatrice/src/decklistmodel.h @@ -19,7 +19,7 @@ public: int getNumber() const { return dataNode->getNumber(); } void setNumber(int _number) { dataNode->setNumber(_number); } float getPrice() const { return dataNode->getPrice(); } - void setPrice(float _price) { dataNode->setPrice(_price); } + void setPrice(const float _price) { dataNode->setPrice(_price); } QString getName() const { return dataNode->getName(); } void setName(const QString &_name) { dataNode->setName(_name); } DecklistCardNode *getDataNode() const { return dataNode; } diff --git a/cockatrice/src/filtertree.cpp b/cockatrice/src/filtertree.cpp index 4c28028b1..5fc516f39 100644 --- a/cockatrice/src/filtertree.cpp +++ b/cockatrice/src/filtertree.cpp @@ -266,7 +266,7 @@ FilterItemList *FilterTree::attrTypeList(CardFilter::Attr attr, int FilterTree::findTermIndex(CardFilter::Attr attr, CardFilter::Type type, const QString &term) { - attrTypeList(attr, type)->termIndex(term); + return attrTypeList(attr, type)->termIndex(term); } int FilterTree::findTermIndex(const CardFilter *f) diff --git a/cockatrice/src/gamesmodel.cpp b/cockatrice/src/gamesmodel.cpp index 0ee41f35f..9dd7185d5 100644 --- a/cockatrice/src/gamesmodel.cpp +++ b/cockatrice/src/gamesmodel.cpp @@ -180,9 +180,9 @@ bool GamesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &/*sourc if (!gameTypeFilter.isEmpty() && gameTypes.intersect(gameTypeFilter).isEmpty()) return false; - if ((maxPlayersFilterMin != -1) && (game.max_players() < maxPlayersFilterMin)) + if ((maxPlayersFilterMin != -1) && ((int)game.max_players() < maxPlayersFilterMin)) return false; - if ((maxPlayersFilterMax != -1) && (game.max_players() > maxPlayersFilterMax)) + if ((maxPlayersFilterMax != -1) && ((int)game.max_players() > maxPlayersFilterMax)) return false; return true; diff --git a/cockatrice/src/handzone.cpp b/cockatrice/src/handzone.cpp index 1799b65f0..cd9ba9595 100644 --- a/cockatrice/src/handzone.cpp +++ b/cockatrice/src/handzone.cpp @@ -75,7 +75,7 @@ QRectF HandZone::boundingRect() const return QRectF(0, 0, 100, zoneHeight); } -void HandZone::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void HandZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { if (bgPixmap.isNull()) painter->fillRect(boundingRect(), Qt::darkGreen); diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 595a65341..ef57655a0 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -19,6 +19,8 @@ ***************************************************************************/ #include +#include +#include #include #include #include @@ -28,7 +30,6 @@ #include #include #include -#include #include "main.h" #include "window_main.h" @@ -56,11 +57,11 @@ QString translationPath = QString(); void myMessageOutput(QtMsgType /*type*/, const char *msg) { - static FILE *f = NULL; - if (!f) - f = fopen("qdebug.txt", "w"); - fprintf(f, "%s\n", msg); - fflush(f); + QFile file("qdebug.txt"); + file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text); + QTextStream out(&file); + out << msg << endl; + file.close(); } void installNewTranslator() diff --git a/cockatrice/src/phasestoolbar.cpp b/cockatrice/src/phasestoolbar.cpp index 98f274042..b34872f61 100644 --- a/cockatrice/src/phasestoolbar.cpp +++ b/cockatrice/src/phasestoolbar.cpp @@ -3,7 +3,10 @@ #include #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ #include "phasestoolbar.h" #include "pixmapgenerator.h" @@ -85,7 +88,7 @@ void PhaseButton::mousePressEvent(QGraphicsSceneMouseEvent * /*event*/) emit clicked(); } -void PhaseButton::mouseDoubleClickEvent(QGraphicsSceneMouseEvent */*event*/) +void PhaseButton::mouseDoubleClickEvent(QGraphicsSceneMouseEvent * /*event*/) { triggerDoubleClickAction(); } diff --git a/cockatrice/src/pilezone.cpp b/cockatrice/src/pilezone.cpp index d34d4c069..0dbdd5666 100644 --- a/cockatrice/src/pilezone.cpp +++ b/cockatrice/src/pilezone.cpp @@ -105,7 +105,7 @@ void PileZone::mouseMoveEvent(QGraphicsSceneMouseEvent *event) setCursor(Qt::OpenHandCursor); } -void PileZone::mouseReleaseEvent(QGraphicsSceneMouseEvent */*event*/) +void PileZone::mouseReleaseEvent(QGraphicsSceneMouseEvent * /*event*/) { setCursor(Qt::OpenHandCursor); } diff --git a/cockatrice/src/pixmapgenerator.cpp b/cockatrice/src/pixmapgenerator.cpp index 7ff7ca987..8bae48539 100644 --- a/cockatrice/src/pixmapgenerator.cpp +++ b/cockatrice/src/pixmapgenerator.cpp @@ -2,7 +2,10 @@ #include "pb/serverinfo_user.pb.h" #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ #include QMap PhasePixmapGenerator::pmCache; diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 35d5bea9e..762b43874 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -85,7 +85,7 @@ void PlayerArea::updateBgPixmap() update(); } -void PlayerArea::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void PlayerArea::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { painter->fillRect(bRect, bgPixmapBrush); } @@ -1430,7 +1430,7 @@ QRectF Player::boundingRect() const return bRect; } -void Player::paint(QPainter * /*painter*/, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void Player::paint(QPainter * /*painter*/, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { } diff --git a/cockatrice/src/playertarget.cpp b/cockatrice/src/playertarget.cpp index eb18a3327..98b266dfd 100644 --- a/cockatrice/src/playertarget.cpp +++ b/cockatrice/src/playertarget.cpp @@ -5,7 +5,10 @@ #include #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ PlayerCounter::PlayerCounter(Player *_player, int _id, const QString &_name, int _value, QGraphicsItem *parent) : AbstractCounter(_player, _id, _name, false, _value, parent) @@ -87,7 +90,8 @@ void PlayerTarget::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*o cachedPixmap = QPixmap(translatedSize.width(), translatedSize.height()); QPainter tempPainter(&cachedPixmap); - QRadialGradient grad(translatedRect.center(), sqrt(translatedSize.width() * translatedSize.width() + translatedSize.height() * translatedSize.height()) / 2); + // pow(foo, 0.5) equals to sqrt(foo), but using sqrt(foo) in this context will produce a compile error with MSVC++ + QRadialGradient grad(translatedRect.center(), pow(translatedSize.width() * translatedSize.width() + translatedSize.height() * translatedSize.height(), 0.5) / 2); grad.setColorAt(1, Qt::black); grad.setColorAt(0, QColor(180, 180, 180)); tempPainter.fillRect(QRectF(0, 0, translatedSize.width(), translatedSize.height()), grad); diff --git a/cockatrice/src/replay_timeline_widget.cpp b/cockatrice/src/replay_timeline_widget.cpp index 7934fb0ed..6127489f7 100644 --- a/cockatrice/src/replay_timeline_widget.cpp +++ b/cockatrice/src/replay_timeline_widget.cpp @@ -2,7 +2,10 @@ #include #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ ReplayTimelineWidget::ReplayTimelineWidget(QWidget *parent) : QWidget(parent), maxBinValue(1), maxTime(1), timeScaleFactor(1.0), currentTime(0), currentEvent(0) diff --git a/cockatrice/src/round.h b/cockatrice/src/round.h new file mode 100644 index 000000000..225da636b --- /dev/null +++ b/cockatrice/src/round.h @@ -0,0 +1,12 @@ +#ifndef MSVC_ROUND_FIX +#define MSVC_ROUND_FIX +/** + * This helper function exists only because MS VC++ 2010 does not support round() in + * . round() works with g++ and clang++ but is formally a C++11 extension. + * So this file exists for MS VC++ only. + */ +inline double round(double val) { + return floor(val + 0.5); +} + +#endif /* MSVC_ROUND_FIX */ diff --git a/cockatrice/src/stackzone.cpp b/cockatrice/src/stackzone.cpp index f3e4767c3..a60c4037b 100644 --- a/cockatrice/src/stackzone.cpp +++ b/cockatrice/src/stackzone.cpp @@ -46,7 +46,7 @@ QRectF StackZone::boundingRect() const return QRectF(0, 0, 100, zoneHeight); } -void StackZone::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void StackZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { if (bgPixmap.isNull()) painter->fillRect(boundingRect(), QColor(113, 43, 43)); diff --git a/cockatrice/src/tablezone.cpp b/cockatrice/src/tablezone.cpp index 49965929c..d7fa42183 100644 --- a/cockatrice/src/tablezone.cpp +++ b/cockatrice/src/tablezone.cpp @@ -1,7 +1,10 @@ #include #include #include -#include +#include +#ifdef _WIN32 +#include "round.h" +#endif /* _WIN32 */ #include "tablezone.h" #include "player.h" #include "settingscache.h" @@ -46,7 +49,7 @@ bool TableZone::isInverted() const return ((player->getMirrored() && !settingsCache->getInvertVerticalCoordinate()) || (!player->getMirrored() && settingsCache->getInvertVerticalCoordinate())); } -void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { if (bgPixmap.isNull()) painter->fillRect(boundingRect(), QColor(0, 0, 100)); diff --git a/cockatrice/src/zoneviewzone.cpp b/cockatrice/src/zoneviewzone.cpp index c42dfd0ef..e3b342358 100644 --- a/cockatrice/src/zoneviewzone.cpp +++ b/cockatrice/src/zoneviewzone.cpp @@ -31,7 +31,7 @@ QRectF ZoneViewZone::boundingRect() const return bRect; } -void ZoneViewZone::paint(QPainter */*painter*/, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) +void ZoneViewZone::paint(QPainter * /*painter*/, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { } diff --git a/common/decklist.h b/common/decklist.h index c5535c2d2..2e8f4a9b2 100644 --- a/common/decklist.h +++ b/common/decklist.h @@ -83,7 +83,7 @@ public: virtual QString getName() const = 0; virtual void setName(const QString &_name) = 0; virtual float getPrice() const = 0; - virtual void setPrice(float _price) = 0; + virtual void setPrice(const float _price) = 0; float getTotalPrice() const { return getNumber() * getPrice(); } int height() const { return 0; } bool compare(AbstractDecklistNode *other) const; diff --git a/nsis/cockatrice.nsi b/nsis/cockatrice.nsi index 396b0fc94..33cc496b2 100644 --- a/nsis/cockatrice.nsi +++ b/nsis/cockatrice.nsi @@ -9,6 +9,9 @@ OutFile "cockatrice_win32_${TIMESTAMP}_git-${VERSION}.exe" SetCompressor /SOLID lzma InstallDir "$PROGRAMFILES\Cockatrice" +; set the Qt install dir here (and make sure you use the latest 4.8 version for packaging) +!define QTDIR "C:\Qt\4.8.6" + !define MUI_ABORTWARNING !define MUI_WELCOMEFINISHPAGE_BITMAP "leftimage.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "leftimage.bmp" @@ -34,35 +37,33 @@ InstallDir "$PROGRAMFILES\Cockatrice" !insertmacro MUI_LANGUAGE "English" Section "Application" SecApplication + SetShellVarContext all SetOutPath "$INSTDIR" - File ..\build\cockatrice\cockatrice.exe - File ..\build\oracle\oracle.exe + File ..\build\cockatrice\Release\cockatrice.exe + File ..\build\oracle\Release\oracle.exe File ..\doc\usermanual\Usermanual.pdf - File C:\MinGW\bin\libstdc++-6.dll - File C:\MinGW\bin\libgcc_s_dw2-1.dll - File C:\MinGW\bin\mingwm10.dll - File C:\MinGW\bin\libprotobuf-8.dll - File C:\Qt\4.8.4\bin\QtCore4.dll - File C:\Qt\4.8.4\bin\QtGui4.dll - File C:\Qt\4.8.4\bin\QtNetwork4.dll - File C:\Qt\4.8.4\bin\QtSvg4.dll - File C:\Qt\4.8.4\bin\QtXml4.dll - File C:\Qt\4.8.4\bin\QtMultimedia4.dll + File ..\build\protobuf-2.5.0\protobuf-2.5.0\vsprojects\Release\libprotobuf.lib + File "${QTDIR}\bin\QtCore4.dll" + File "${QTDIR}\bin\QtGui4.dll" + File "${QTDIR}\bin\QtNetwork4.dll" + File "${QTDIR}\bin\QtSvg4.dll" + File "${QTDIR}\bin\QtXml4.dll" + File "${QTDIR}\bin\QtMultimedia4.dll" SetOutPath "$INSTDIR\zonebg" File /r ..\zonebg\*.* SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins\codecs" - File C:\Qt\4.8.4\plugins\codecs\qcncodecs4.dll - File C:\Qt\4.8.4\plugins\codecs\qjpcodecs4.dll - File C:\Qt\4.8.4\plugins\codecs\qkrcodecs4.dll - File C:\Qt\4.8.4\plugins\codecs\qtwcodecs4.dll + File "${QTDIR}\plugins\codecs\qcncodecs4.dll" + File "${QTDIR}\plugins\codecs\qjpcodecs4.dll" + File "${QTDIR}\plugins\codecs\qkrcodecs4.dll" + File "${QTDIR}\plugins\codecs\qtwcodecs4.dll" SetOutPath "$INSTDIR\plugins\iconengines" - File C:\Qt\4.8.4\plugins\iconengines\qsvgicon4.dll + File "${QTDIR}\plugins\iconengines\qsvgicon4.dll" SetOutPath "$INSTDIR\plugins\imageformats" - File C:\Qt\4.8.4\plugins\imageformats\qjpeg4.dll - File C:\Qt\4.8.4\plugins\imageformats\qsvg4.dll + File "${QTDIR}\plugins\imageformats\qjpeg4.dll" + File "${QTDIR}\plugins\imageformats\qsvg4.dll" SetOutPath "$INSTDIR\sounds" File /r ..\sounds\*.* @@ -70,9 +71,9 @@ Section "Application" SecApplication SetOutPath "$INSTDIR\translations" File /r ..\build\cockatrice\*.qm - WriteUninstaller "$INSTDIR\uninstall.exe" - ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 - IntFmt $0 "0x%08X" $0 + WriteUninstaller "$INSTDIR\uninstall.exe" + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayName" "Cockatrice" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" @@ -96,38 +97,36 @@ Section "Start menu item" SecStartMenu SectionEnd Section Uninstall - RMDir /r "$INSTDIR\zonebg" - RMDir /r "$INSTDIR\plugins" - RMDir /r "$INSTDIR\sounds" +SetShellVarContext all + RMDir /r "$INSTDIR\zonebg" + RMDir /r "$INSTDIR\plugins" + RMDir /r "$INSTDIR\sounds" RMDir /r "$INSTDIR\translations" - Delete "$INSTDIR\uninstall.exe" - Delete "$INSTDIR\cockatrice.exe" - Delete "$INSTDIR\oracle.exe" - Delete "$INSTDIR\Usermanual.pdf" - Delete "$INSTDIR\libstdc++-6.dll" - Delete "$INSTDIR\libprotobuf-8.dll" - Delete "$INSTDIR\libgcc_s_dw2-1.dll" - Delete "$INSTDIR\mingwm10.dll" - Delete "$INSTDIR\QtCore4.dll" - Delete "$INSTDIR\QtGui4.dll" - Delete "$INSTDIR\QtNetwork4.dll" - Delete "$INSTDIR\QtSvg4.dll" - Delete "$INSTDIR\QtXml4.dll" + Delete "$INSTDIR\uninstall.exe" + Delete "$INSTDIR\cockatrice.exe" + Delete "$INSTDIR\oracle.exe" + Delete "$INSTDIR\Usermanual.pdf" + Delete "$INSTDIR\libprotobuf.lib" + Delete "$INSTDIR\QtCore4.dll" + Delete "$INSTDIR\QtGui4.dll" + Delete "$INSTDIR\QtNetwork4.dll" + Delete "$INSTDIR\QtSvg4.dll" + Delete "$INSTDIR\QtXml4.dll" Delete "$INSTDIR\QtMultimedia4.dll" - RMDir "$INSTDIR" + RMDir "$INSTDIR" RMDir /r "$SMPROGRAMS\Cockatrice" - - DeleteRegKey HKCU "Software\Cockatrice" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" + + DeleteRegKey HKCU "Software\Cockatrice" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" SectionEnd LangString DESC_SecApplication ${LANG_ENGLISH} "Cockatrice program files" LangString DESC_SecUpdateConfig ${LANG_ENGLISH} "Update the paths in the application settings according to the installation paths." LangString DESC_SecStartMenu ${LANG_ENGLISH} "Create start menu items for Cockatrice and Oracle." !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecApplication} $(DESC_SecApplication) - !insertmacro MUI_DESCRIPTION_TEXT ${SecUpdateConfig} $(DESC_SecUpdateConfig) - !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(DESC_SecStartMenu) + !insertmacro MUI_DESCRIPTION_TEXT ${SecApplication} $(DESC_SecApplication) + !insertmacro MUI_DESCRIPTION_TEXT ${SecUpdateConfig} $(DESC_SecUpdateConfig) + !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(DESC_SecStartMenu) !insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt index 340ce16a7..624d9e969 100644 --- a/oracle/CMakeLists.txt +++ b/oracle/CMakeLists.txt @@ -25,7 +25,11 @@ INCLUDE_DIRECTORIES(../cockatrice/src) # Build oracle binary and link it ADD_EXECUTABLE(oracle WIN32 MACOSX_BUNDLE ${oracle_SOURCES} ${oracle_MOC_SRCS}) -TARGET_LINK_LIBRARIES(oracle ${QT_LIBRARIES}) +TARGET_LINK_LIBRARIES(oracle ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES}) + +if(MSVC) + set_target_properties(oracle PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS") +endif(MSVC) if(UNIX) if(APPLE)