From 38d3a59409e5a78be6c6b7be4e62e29efeb15b5e Mon Sep 17 00:00:00 2001 From: mzanetti Date: Sun, 6 May 2018 23:53:30 +0200 Subject: [PATCH] add windows installer --- guh-logo.ico | Bin 0 -> 11136 bytes mea.pro | 15 ++++++ mea/LICENSE | 1 + mea/mea.pro | 20 +++----- win-installer.nsi | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 144 insertions(+), 14 deletions(-) create mode 100644 guh-logo.ico create mode 100644 mea/LICENSE create mode 100644 win-installer.nsi diff --git a/guh-logo.ico b/guh-logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..372dd491d24099e8c2e6768043cdd0aef4eb13a9 GIT binary patch literal 11136 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 literal 0 HcmV?d00001 diff --git a/mea.pro b/mea.pro index 2ca35f8f..3d816745 100644 --- a/mea.pro +++ b/mea.pro @@ -5,3 +5,18 @@ libnymea-common.subdir = libnymea-common mea.subdir = mea mea.depends = libnymea-common + + +# Building a Windows installer: +# Install Visual Studio, Qt and NSIS on Windows. Make sure NSIS is in your path. +# Use QtCreator to create a release build, make sure to *disable* shadow build. +# After building, run "make wininstaller" +wininstaller.depends = mea +wininstaller.commands += rmdir /S /Q mea\release\out && mkdir mea\release\out && +wininstaller.commands += copy mea\release\mea.exe mea\release\out\ && +wininstaller.commands += windeployqt --qmldir mea\ui mea\release\out && +wininstaller.commands += makensis win-installer.nsi +QMAKE_EXTRA_TARGETS += wininstaller + +target.depends += wininstaller + diff --git a/mea/LICENSE b/mea/LICENSE new file mode 100644 index 00000000..43931c58 --- /dev/null +++ b/mea/LICENSE @@ -0,0 +1 @@ +GPL goes here... diff --git a/mea/mea.pro b/mea/mea.pro index 9fdbc2d3..befd28fb 100644 --- a/mea/mea.pro +++ b/mea/mea.pro @@ -6,7 +6,7 @@ include(../mea.pri) QT += qml quick quickcontrols2 websockets svg INCLUDEPATH += $$top_srcdir/libnymea-common -LIBS += -L$$top_builddir/libnymea-common/ -lnymea-common +LIBS += -L$$top_builddir/libnymea-common/release -L$$top_builddir/libnymea-common/ -lnymea-common HEADERS += engine.h \ nymeainterface.h \ @@ -100,17 +100,6 @@ SOURCES += discovery/avahi/avahiserviceentry.cpp \ RESOURCES += \ resources.qrc -#DISTFILES += \ -# android/AndroidManifest.xml \ -# android/gradle/wrapper/gradle-wrapper.jar \ -# android/gradlew \ -# android/res/values/libs.xml \ -# android/build.gradle \ -# android/gradle/wrapper/gradle-wrapper.properties \ -# android/gradlew.bat - -#ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - contains(ANDROID_TARGET_ARCH,armeabi-v7a) { ANDROID_EXTRA_LIBS = \ $$PWD/../../android-openssl/prebuilt/armeabi-v7a/libcrypto.so \ @@ -124,10 +113,13 @@ DISTFILES += \ android/res/values/libs.xml \ android/build.gradle \ android/gradle/wrapper/gradle-wrapper.properties \ - android/gradlew.bat + android/gradlew.bat \ + LICENSE ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android + +DISTFILES += \ + $$PWD/../win-installer.nsi target.path = /usr/bin INSTALLS += target - diff --git a/win-installer.nsi b/win-installer.nsi new file mode 100644 index 00000000..c0920bcc --- /dev/null +++ b/win-installer.nsi @@ -0,0 +1,122 @@ +# This installs two files, app.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and +# adds uninstall information to the registry for Add/Remove Programs + +# To get started, put this script into a folder with the two files (app.exe, logo.ico, and license.rtf - +# You'll have to create these yourself) and run makensis on it + +# If you change the names "app.exe", "logo.ico", or "license.rtf" you should do a search and replace - they +# show up in a few places. +# All the other settings can be tweaked by editing the !defines at the top of this script +!define APPNAME "Mea" +!define COMPANYNAME "guh GmbH" +!define DESCRIPTION "A client application for nymea" +# These three must be integers +!define VERSIONMAJOR 0 +!define VERSIONMINOR 0 +!define VERSIONBUILD 1 +# These will be displayed by the "Click here for support information" link in "Add/Remove Programs" +# It is possible to use "mailto:" links in here to open the email client +!define HELPURL "http://..." # "Support Information" link +!define UPDATEURL "http://..." # "Product Updates" link +!define ABOUTURL "http://..." # "Publisher" link +# This is the size (in kB) of all the files copied into "Program Files" +!define INSTALLSIZE 7233 + +RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) + +InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}" + +# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n) +LicenseData "LICENSE" +# This will be in the installer/uninstaller's title bar +Name "${COMPANYNAME} - ${APPNAME}" +Icon "guh-logo.ico" +outFile "mea-installer.exe" + +!include LogicLib.nsh + +# Just three pages - license agreement, install location, and installation +page license +page directory +Page instfiles + +!macro VerifyUserIsAdmin +UserInfo::GetAccountType +pop $0 +${If} $0 != "admin" ;Require admin rights on NT4+ + messageBox mb_iconstop "Administrator rights required!" + setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED + quit +${EndIf} +!macroend + +function .onInit + setShellVarContext all + !insertmacro VerifyUserIsAdmin +functionEnd + +section "install" + # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file) + setOutPath $INSTDIR + + file "guh-logo.ico" + file /r "mea\release\out\*" + + # Uninstaller - See function un.onInit and section "uninstall" for configuration + writeUninstaller "$INSTDIR\uninstall.exe" + + # Start Menu + createDirectory "$SMPROGRAMS\${COMPANYNAME}" + createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\mea.exe" "" "$INSTDIR\guh-logo.ico" + + # Registry information for add/remove programs + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\"" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR} + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR} + # There is no option for modifying or repairing the install + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1 + # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE} +sectionEnd + +# Uninstaller + +function un.onInit + SetShellVarContext all + + #Verify the uninstaller - last chance to back out + MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next + Abort + next: + !insertmacro VerifyUserIsAdmin +functionEnd + +section "uninstall" + + # Remove Start Menu launcher + delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" + # Try to remove the Start Menu folder - this will only happen if it is empty + rmDir "$SMPROGRAMS\${COMPANYNAME}" + + # Remove files + #delete $INSTDIR/mea.exe + + # Always delete uninstaller as the last action + delete $INSTDIR\uninstall.exe + + # Try to remove the install directory - this will only happen if it is empty + rmDir /r /REBOOTOK $INSTDIR + + # Remove uninstaller information from the registry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" +sectionEnd