env.AddPostAction(launcher, [signExec])\r
env.Alias("launcher", launcher)\r
\r
+uninstFile=File("dist/uninstall.exe")\r
+uninstGen = env.Command(File("uninstaller/uninstGen.exe"), "uninstaller/uninst.nsi",\r
+ [[makensis, "/V2",\r
+ "/DVERSION=$version", '/DPUBLISHER="$publisher"',\r
+ "/DUNINSTEXE=%s"%uninstFile.abspath,\r
+ "/XOutFile ${TARGET.abspath}",\r
+ "$SOURCE"]])\r
+uninstaller=env.Command(uninstFile,uninstGen,[uninstGen])\r
+if certFile:\r
+ env.AddPostAction(uninstaller, [signExec])\r
+\r
+env.Alias("launcher", launcher)\r
env.Alias("portable", launcher)\r
-env.Alias("installer", launcher)\r
+\r
\r
clientArchive = env.SzArchive(outputDir.File("%s_controllerClient.zip" % outFilePrefix), clientDir, relativeToSourceDir=True)\r
env.Alias("client", clientArchive)\r
symbolsArchive = env.SzArchive(outputDir.File("%s_debugSymbols.zip" % outFilePrefix), symbolsList)\r
env.Alias("symbolsArchive", symbolsArchive)\r
\r
-env.Default(portableDist)\r
+env.Default(dist)\r
\r
--- /dev/null
+!include "MUI2.nsh"\r
+\r
+!define appName "NVDA"\r
+\r
+!define INSTDIR_REG_ROOT "HKLM"\r
+!define INSTDIR_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${appName}"\r
+\r
+SetCompressor /SOLID LZMA\r
+CRCCheck On\r
+XPStyle on\r
+InstProgressFlags Smooth\r
+RequestExecutionLevel user\r
+\r
+ReserveFile "UAC.dll"\r
+!addplugindir "."\r
+\r
+Name "${appName}"\r
+VIProductVersion "0.0.0.0" ;Needs to be here so other version info shows up\r
+VIAddVersionKey "ProductName" "${appName}"\r
+VIAddVersionKey "LegalCopyright" "Copyright 2006 - 2011 NVDA Contributors"\r
+VIAddVersionKey "FileDescription" "${appName} installer"\r
+VIAddVersionKey "ProductVersion" "${VERSION}"\r
+\r
+;Minimal installer to generate uninstaller\r
+\r
+Section "install"\r
+SetAutoClose true\r
+WriteUninstaller "${UNINSTEXE}"\r
+SectionEnd\r
+\r
+;Actual uninstaller stuff\r
+\r
+!insertmacro MUI_UNPAGE_CONFIRM\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+!InsertMacro MUI_UNPAGE_FINISH\r
+\r
+;Include modern user interface language files\r
+!insertmacro MUI_LANGUAGE "English" ; default language\r
+!insertmacro MUI_LANGUAGE "French"\r
+!insertmacro MUI_LANGUAGE "German"\r
+!insertmacro MUI_LANGUAGE "Spanish"\r
+!insertmacro MUI_LANGUAGE "SpanishInternational"\r
+!insertmacro MUI_LANGUAGE "SimpChinese"\r
+!insertmacro MUI_LANGUAGE "TradChinese"\r
+!insertmacro MUI_LANGUAGE "Japanese"\r
+!insertmacro MUI_LANGUAGE "Italian"\r
+;!insertmacro MUI_LANGUAGE "Swedish"\r
+!insertmacro MUI_LANGUAGE "Finnish"\r
+!insertmacro MUI_LANGUAGE "Russian"\r
+!insertmacro MUI_LANGUAGE "Portuguese"\r
+!insertmacro MUI_LANGUAGE "PortugueseBR"\r
+!insertmacro MUI_LANGUAGE "Polish"\r
+!insertmacro MUI_LANGUAGE "Czech"\r
+!insertmacro MUI_LANGUAGE "Slovak"\r
+!insertmacro MUI_LANGUAGE "Croatian"\r
+!insertmacro MUI_LANGUAGE "Hungarian"\r
+!insertmacro MUI_LANGUAGE "Galician"\r
+!insertmacro MUI_LANGUAGE "Dutch"\r
+!insertmacro MUI_LANGUAGE "Arabic"\r
+!insertmacro MUI_LANGUAGE "Danish"\r
+!insertmacro MUI_LANGUAGE "Icelandic"\r
+!insertmacro MUI_LANGUAGE "Serbian"\r
+!insertmacro MUI_LANGUAGE "Turkish"\r
+!insertmacro MUI_LANGUAGE "Albanian"\r
+!insertmacro MUI_LANGUAGE "Bulgarian"\r
+!insertmacro MUI_LANGUAGE "Norwegian"\r
+ !insertmacro MUI_LANGUAGE "NorwegianNynorsk"\r
+\r
+Function un.onInit\r
+UAC::RunElevated\r
+;If couldn't change user then fail\r
+strcmp 0 $0 +1 elevationFail\r
+;If we are the outer user process, then silently quit\r
+strcmp 1 $1 +1 +2\r
+quit\r
+;If we are now an admin, success\r
+strcmp 1 $3 elevationSuccess\r
+elevationFail:\r
+MessageBox mb_iconstop "Unable to elevate, error $0"\r
+quit\r
+elevationSuccess:\r
+;Odd the uninstaller does not do this?\r
+ReadRegStr $INSTDIR ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "InstallDir"\r
+; Get the locale language ID from kernel32.dll and dynamically change language of the installer\r
+System::Call 'kernel32::GetUserDefaultUILanguage() i .r0'\r
+;Force zh-HK to zh-TW as zh-HK uses wrong encoding on Vista/7 #1596 \r
+StrCmp $0 "3076" 0 +2\r
+StrCpy $0 "1028"\r
+StrCpy $LANGUAGE $0\r
+FunctionEnd\r
+\r
+Section "Uninstall"\r
+SetAutoClose true\r
+MessageBox MB_OK "install dir is $INSTDIR"\r
+;execWait "$INSTDIR\nvda_slave.exe unregisterInstall"\r
+;Rmdir /REBOOTOK /r "$INSTDIR"\r
+SectionEnd\r