From de982b4d3e9c7e6b6f100e383d647f0edc9321a3 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 12 Aug 2012 21:50:36 +0100 Subject: fix windows build format specifiers add install target for windows - creates installer rather than actually installing --- windows/res/installer.nsi | 133 ++++++++++++++++++++++++++++++++++++++++++++++ windows/res/internal.css | 1 + windows/res/netsurf.png | 1 + windows/res/welcome.html | 1 + 4 files changed, 136 insertions(+) create mode 100644 windows/res/installer.nsi create mode 120000 windows/res/internal.css create mode 120000 windows/res/netsurf.png create mode 120000 windows/res/welcome.html (limited to 'windows/res') diff --git a/windows/res/installer.nsi b/windows/res/installer.nsi new file mode 100644 index 000000000..9f146873a --- /dev/null +++ b/windows/res/installer.nsi @@ -0,0 +1,133 @@ +# This installs NetSurf execuatables and resources, creates a start menu shortcut, builds an uninstaller, and +# adds uninstall information to the registry for Add/Remove Programs + +# 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 "NetSurf" +!define COMPANYNAME "NetSurf" +!define DESCRIPTION "Web Browser" +# These three must be integers +!define VERSIONMAJOR 3 +!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://www.netsurf-browser.org/" # "Support Information" link +!define UPDATEURL "http://www.netsurf-browser.org/" # "Product Updates" link +!define ABOUTURL "http://www.netsurf-browser.org/" # "Publisher" link +# This is the size (in kB) of all the files copied into "Program Files" +!define INSTALLSIZE 9000 + +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 "COPYING" +# This will be in the installer/uninstaller's title bar +Name "${COMPANYNAME} - ${APPNAME}" +Icon "windows\res\NetSurf.ico" +outFile "netsurf-installer.exe" +BrandingText "${COMPANYNAME}" + +!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 + # Files added here should be removed by the uninstaller (see section "uninstall") + file "NetSurf.exe" + file /oname=NetSurf.ico "windows\res\NetSurf.ico" + file /oname=libcares-2.dll "/opt/netsurf/i686-w64-mingw32/env/bin/libcares-2.dll" + file /oname=libgnurx-0.dll "/opt/netsurf/i686-w64-mingw32/env/bin/libgnurx-0.dll" + file /oname=default.css "windows\res\default.css" + file /oname=welcome.html "windows\res\welcome.html" + file /oname=netsurf.png "windows\res\netsurf.png" + file /oname=messages "windows\res\messages" + # Add any other files for the install directory (license files, app data, etc) here + + # 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\NetSurf.exe" "" "$INSTDIR\NetSurf.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\NetSurf.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\NetSurf.exe + delete $INSTDIR\NetSurf.ico + delete $INSTDIR\libcares-2.dll + delete $INSTDIR\libgnurx-0.dll + delete $INSTDIR\default.css + delete $INSTDIR\welcome.html + delete $INSTDIR\netsurf.png + delete $INSTDIR\messages + + # 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 $INSTDIR + + # Remove uninstaller information from the registry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" +sectionEnd diff --git a/windows/res/internal.css b/windows/res/internal.css new file mode 120000 index 000000000..e777d8ae1 --- /dev/null +++ b/windows/res/internal.css @@ -0,0 +1 @@ +../../!NetSurf/Resources/internal.css,f79 \ No newline at end of file diff --git a/windows/res/netsurf.png b/windows/res/netsurf.png new file mode 120000 index 000000000..0fbf42709 --- /dev/null +++ b/windows/res/netsurf.png @@ -0,0 +1 @@ +../../!NetSurf/Resources/netsurf.png,b60 \ No newline at end of file diff --git a/windows/res/welcome.html b/windows/res/welcome.html new file mode 120000 index 000000000..5b394445b --- /dev/null +++ b/windows/res/welcome.html @@ -0,0 +1 @@ +../../!NetSurf/Resources/en/welcome.html,faf \ No newline at end of file -- cgit v1.2.3