[qet] [4085] Add NSIS script for x86_64-w64 installer |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 4085
Author: scorpio810
Date: 2015-08-04 21:24:52 +0200 (Tue, 04 Aug 2015)
Log Message:
-----------
Add NSIS script for x86_64-w64 installer
Added Paths:
-----------
trunk/packaging/windows/QET64.nsi
Added: trunk/packaging/windows/QET64.nsi
===================================================================
--- trunk/packaging/windows/QET64.nsi (rev 0)
+++ trunk/packaging/windows/QET64.nsi 2015-08-04 19:24:52 UTC (rev 4085)
@@ -0,0 +1,224 @@
+; Installation script for QET
+; Written by Cyril Frausti and Laurent Trinques
+; Licence : CC-BY-SA - http://creativecommons.org/licenses/by-sa/3.0/
+; WebSite : http://qelectrotech.org/
+
+;--------------------------------
+;Include Modern UI
+ !include x64.nsh
+ !include "MUI2.nsh"
+ !ifndef PROC
+
+ !define PROC 32 ; to be defined in cmd line
+
+!endif
+
+LangString wrongWow ${LANG_ENGLISH} "This distribution is for ${PROC} bits computers only."
+LangString wrongWow ${LANG_FRENCH} "Ce programme est pour Windows ${PROC} bits seulement."
+
+; MUI Settings
+;--------------------------------
+;General
+ ; General Product Description Definitions
+ !define SOFT_NAME "QElectroTech"
+ !define SOFT_VERSION "0.5-dev_x86_64-win64+4082"
+ !define SOFT_WEB_SITE "http://qelectrotech.org/"
+ !define SOFT_BUILD "1"
+
+
+ SetCompressor /final /solid lzma
+ CRCCheck force
+ XPStyle on
+
+
+ ;Name and file
+ Name "${SOFT_NAME} ${SOFT_VERSION}"
+ OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
+
+ ;Default installation folder
+ InstallDir "$PROGRAMFILES64\${SOFT_NAME}"
+
+ ;Get installation folder from registry if available
+ InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
+
+ ;Request application privileges for Windows Vista
+ ; we request for admin because we write stuff into the registry
+ RequestExecutionLevel admin
+
+;--------------------------------
+;Interface Settings
+ !define MUI_ABORTWARNING
+ !define MUI_ICON "install.ico"
+ !define MUI_UNICON "uninstall.ico"
+
+;--------------------------------
+;Language Selection Dialog Settings
+
+ ;Remember the installer language
+ !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
+ !define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
+ !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
+
+;--------------------------------
+;Pages
+
+ !insertmacro MUI_PAGE_LICENSE "files\LICENSE"
+ ;!insertmacro MUI_PAGE_COMPONENTS
+ !insertmacro MUI_PAGE_DIRECTORY
+ !insertmacro MUI_PAGE_INSTFILES
+
+ !insertmacro MUI_UNPAGE_CONFIRM
+ !insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Languages
+ ;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default.
+ ;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES.
+ !define MUI_LANGDLL_ALLLANGUAGES
+
+ ; For consistency, we limit the installer to languages supported by QElectroTech itself
+ !insertmacro MUI_LANGUAGE "English" ;first language is the default language
+ !insertmacro MUI_LANGUAGE "French"
+ !insertmacro MUI_LANGUAGE "Spanish"
+ !insertmacro MUI_LANGUAGE "Russian"
+ !insertmacro MUI_LANGUAGE "Portuguese"
+ !insertmacro MUI_LANGUAGE "Czech"
+ !insertmacro MUI_LANGUAGE "Polish"
+ !insertmacro MUI_LANGUAGE "Greek"
+ !insertmacro MUI_LANGUAGE "Arabic"
+ !insertmacro MUI_LANGUAGE "German"
+ !insertmacro MUI_LANGUAGE "Italian"
+ !insertmacro MUI_LANGUAGE "Romanian"
+ !insertmacro MUI_LANGUAGE "Catalan"
+ !insertmacro MUI_LANGUAGE "Croatian"
+ ;!insertmacro MUI_LANGUAGE "Nederland"
+
+;--------------------------------
+;Reserve Files
+
+ ;If you are using solid compression, files that are required before
+ ;the actual installation should be stored first in the data block,
+ ;because this will make your installer start faster.
+
+ !insertmacro MUI_RESERVEFILE_LANGDLL
+
+;--------------------------------
+;Installer Sections
+
+Section ""
+ SetOutPath "$INSTDIR"
+ ; copy every files in the "files" directory, except the ready-to-use .bat file
+ File /nonfatal /r /x "files\Lancer QET.bat" /x ".svn" "files\*"
+ ; add the use-APPDATA .bat file
+ File "Lancer QET.bat"
+ ;Store installation folder
+ WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
+ ; write uninstall strings
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
+ ;Create uninstaller
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+ SetRegView 64
+
+ ; get the final path for the icons and the launch script
+ Var /GLOBAL final_qet_exe
+ Var /GLOBAL final_project_ico
+ Var /GLOBAL final_element_ico
+ Var /GLOBAL final_titleblock_ico
+
+ StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
+ StrCpy $final_project_ico "$INSTDIR\ico\application-x-qet-project.ico"
+ StrCpy $final_element_ico "$INSTDIR\ico\application-x-qet-element.ico"
+ StrCpy $final_titleblock_ico "$INSTDIR\ico\application-x-qet-titleblock.ico"
+
+ ; write file associations registry keys
+ WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
+ WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
+ WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Sch\xE9ma QET"
+ WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
+ WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
+ WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
+ WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
+ WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
+ WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "\xC9l\xE9ment QET"
+ WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
+ WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
+ WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
+ WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
+
+ SetShellVarContext all ; all users
+ ; shortcuts in the start menu
+ CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
+ CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
+ CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe"
+ ; TODO : add the QuickStart Guide (or any other documentation) when available
+
+ ; shortcut on the desktop
+ CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
+SectionEnd
+
+;--------------------------------
+;Installer Functions
+
+Function .onInit
+${If} ${RunningX64}
+
+${Else}
+ MessageBox MB_OK|MB_ICONSTOP $(wrongWow)
+ Abort $(wrongWow)
+ DetailPrint "This program is only for Windows 64"
+${EndIf}
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
+
+;--------------------------------
+;Descriptions
+
+ ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
+
+ ;Assign descriptions to sections
+ ;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ ; !insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles"
+ ;!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;--------------------------------
+;Uninstaller Section
+
+Section "Uninstall"
+ SetShellVarContext all ; all users
+ ; remove start menu shortcuts
+ RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
+ ; remove shortcut on the desktop
+ Delete "$DESKTOP\QElectroTech.lnk"
+
+ ; remove the application files
+ Delete "$INSTDIR\*.*"
+ RMDir /r "$INSTDIR"
+
+ ;remove installation registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
+ DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
+
+ ; remove file associations registry keys
+ DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
+ DeleteRegKey HKEY_CLASSES_ROOT ".qet"
+ DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
+ DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
+ DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
+
+ IfFileExists "$INSTDIR" 0 NoErrorMsg
+ MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
+ NoErrorMsg:
+SectionEnd
+
+;--------------------------------
+;Uninstaller Functions
+
+Function un.onInit
+
+ !insertmacro MUI_UNGETLANGUAGE
+
+FunctionEnd
+
+