add windows installer
parent
677536e463
commit
38d3a59409
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
15
mea.pro
15
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
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
GPL goes here...
|
||||
20
mea/mea.pro
20
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Reference in New Issue