summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2009-09-14 23:17:03 +0400
committerCyrill Gorcunov <gorcunov@gmail.com>2009-09-14 23:17:03 +0400
commit2726889ece207fa8d5601d4c6baacaca4d1856e6 (patch)
treeaf263c6c8dd1966b01816db1be81aad2f8b04b6b
parent69c4f63c25fb5ead8e8439fcfa112f0e8d68ec03 (diff)
downloadnasm-nsis2.tar.gz
New NSIS scriptnsis2
Lets start using new NSIS features like Modern UI2, Multiuser install. The file named nasm2.nsi by purpose -- we should _not_ break existing functionality. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-rw-r--r--nasm2.nsi200
-rw-r--r--nsis/nasm-un.icobin0 -> 2238 bytes
-rw-r--r--nsis/nasm.icobin0 -> 2238 bytes
3 files changed, 200 insertions, 0 deletions
diff --git a/nasm2.nsi b/nasm2.nsi
new file mode 100644
index 00000000..65fcce99
--- /dev/null
+++ b/nasm2.nsi
@@ -0,0 +1,200 @@
+#!Nsis Installer Command Script
+
+#
+# Copyright (c) 2009, Shao Miller (shao.miller@yrdsb.edu.on.ca)
+# Copyright (c) 2009, Cyrill Gorcunov (gorcunov@gmail.com)
+# All rights reserved.
+#
+# The script requires NSIS v2.45 (or any later)
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+!include "version.nsh"
+!define PRODUCT_NAME "Netwide Assembler"
+!define PRODUCT_SHORT_NAME "nasm"
+!define VERSION "${__NASM_VER__}"
+!define PACKAGE_NAME "${PRODUCT_NAME} ${VERSION}"
+!define PACKAGE_SHORT_NAME "${PRODUCT_SHORT_NAME}-${VERSION}"
+
+!define MULTIUSER_EXECUTIONLEVEL Highest
+!define MULTIUSER_MUI
+!define MULTIUSER_INSTALLMODE_COMMANDLINE
+!define MULTIUSER_INSTALLMODE_INSTDIR "${PRODUCT_SHORT_NAME}"
+!include MultiUser.nsh
+
+!insertmacro MULTIUSER_PAGE_INSTALLMODE
+!insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE
+
+;--------------------------------
+;General
+
+;Name and file
+Name "${PACKAGE_NAME}"
+OutFile "${PACKAGE_NAME}-mui-installer.exe"
+
+;Get installation folder from registry if available
+InstallDirRegKey HKCU "Software\${PRODUCT_SHORT_NAME}" ""
+
+;Request application privileges for Windows Vista
+RequestExecutionLevel user
+
+;--------------------------------
+;Variables
+
+Var StartMenuFolder
+Var CmdFailed
+
+;--------------------------------
+;Interface Settings
+Caption "${PACKAGE_SHORT_NAME} installation"
+Icon "nsis\nasm.ico"
+UninstallIcon "nsis\nasm-un.ico"
+
+!define MUI_ABORTWARNING
+
+;--------------------------------
+;Pages
+
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+
+;Start Menu Folder Page Configuration
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${PRODUCT_SHORT_NAME}"
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_SHORT_NAME}"
+
+!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
+
+!insertmacro MUI_PAGE_INSTFILES
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Installer Sections
+
+!insertmacro MUI_LANGUAGE English
+
+Section "NASM" SecNasm
+ Sectionin RO
+ SetOutPath "$INSTDIR"
+ File "nasm.exe"
+ File "LICENSE"
+ File "nasm.exe"
+ File "ndisasm.exe"
+ File "nsis\nasm.ico"
+
+ ;Store installation folder
+ WriteRegStr HKCU "Software\${PRODUCT_SHORT_NAME}" "" $INSTDIR
+
+ ;Store shortcuts folder
+ WriteRegStr HKCU "Software\${PRODUCT_SHORT_NAME}\" "lnk" $SMPROGRAMS\$StartMenuFolder
+
+ ;
+ ; the bat we need
+ StrCpy $CmdFailed "true"
+ FileOpen $0 "nasmpath.bat" w
+ IfErrors skip
+ StrCpy $CmdFailed "false"
+ FileWrite $0 "@set path=$INSTDIR;%path%$\r$\n"
+ FileWrite $0 "@%comspec%"
+ FileClose $0
+ CreateShortCut "$DESKTOP\${PRODUCT_SHORT_NAME}.lnk" "$INSTDIR\nasmpath.bat" "" "$INSTDIR\nasm.ico" 0
+skip:
+ ;Create uninstaller
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ ;Create shortcuts
+ CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
+ StrCmp $CmdFailed "true" +2
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_SHORT_NAME}-shell.lnk" "$INSTDIR\nasmpath.bat"
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_SHORT_NAME}.lnk" "$INSTDIR\nasm.exe" "" "$INSTDIR\nasm.ico" 0
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+SectionEnd
+
+Section "RDOFF" SecRdoff
+ CreateDirectory "$INSTDIR\rdoff"
+ SetOutPath "$INSTDIR\rdoff"
+ File "rdoff\ldrdf.exe"
+ File "rdoff\rdf2bin.exe"
+ File "rdoff\rdf2com.exe"
+ File "rdoff\rdf2ith.exe"
+ File "rdoff\rdf2ihx.exe"
+ File "rdoff\rdf2srec.exe"
+ File "rdoff\rdfdump.exe"
+ File "rdoff\rdflib.exe"
+ File "rdoff\rdx.exe"
+SectionEnd
+
+Section "Manual" SecManual
+ SetOutPath "$INSTDIR"
+ File "doc\nasmdoc.pdf"
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Manual.lnk" "$INSTDIR\manual.pdf"
+SectionEnd
+
+;--------------------------------
+;Descriptions
+
+ ;Language strings
+ LangString DESC_SecNasm ${LANG_ENGLISH} "NASM assembler and disassember modules"
+ LangString DESC_SecManual ${LANG_ENGLISH} "Complete NASM manual (pdf file)"
+ LangString DESC_SecRdoff ${LANG_ENGLISH} "RDOFF utilities (you may not need it if you don't know what is it)"
+
+ ;Assign language strings to sections
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecNasm} $(DESC_SecNasm)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecRdoff} $(DESC_SecRdoff)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecManual} $(DESC_SecManual)
+ !insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;--------------------------------
+;Uninstaller Section
+
+Section "Uninstall"
+ ;
+ ; files on HDD
+ Delete /rebootok "$INSTDIR\rdoff\*"
+ RMDir "$INSTDIR\rdoff"
+ Delete /rebootok "$INSTDIR\doc\*"
+ RMDir "$INSTDIR\doc"
+ Delete /rebootok "$INSTDIR\*"
+ RMDir "$INSTDIR"
+ Delete /rebootok "$DESKTOP\${PRODUCT_SHORT_NAME}.lnk"
+ ;
+ ; Start Menu folder
+ ReadRegStr $0 HKCU Software\${PRODUCT_SHORT_NAME} "lnk"
+ Delete /rebootok "$0\*"
+ RMDir "$0"
+ DeleteRegKey /ifempty HKCU "Software\${PRODUCT_SHORT_NAME}"
+SectionEnd
+
+;
+; MUI requires this hooks
+Function .onInit
+ !insertmacro MULTIUSER_INIT
+FunctionEnd
+
+Function un.onInit
+ !insertmacro MULTIUSER_UNINIT
+FunctionEnd
diff --git a/nsis/nasm-un.ico b/nsis/nasm-un.ico
new file mode 100644
index 00000000..90d338c7
--- /dev/null
+++ b/nsis/nasm-un.ico
Binary files differ
diff --git a/nsis/nasm.ico b/nsis/nasm.ico
new file mode 100644
index 00000000..b1a9d63f
--- /dev/null
+++ b/nsis/nasm.ico
Binary files differ