Merge pull request #3373 from marek-safar/net-4.6.2
[mono.git] / mcs / tools / mono-win32-setup.nsi
index e830eb8cfb0b2ac42fb1ac8a9e90fed183e45c9a..d4dc171879e24b6d11747f0509fd9429fb1b5e31 100755 (executable)
@@ -147,7 +147,15 @@ Section "Uninstall"
   GoNext1:\r
 \r
   DeleteRegKey HKLM SOFTWARE\Mono\${MILESTONE}\r
-  MessageBox MB_YESNO "Mono ${MILESTONE} has been removed. Should the wrappers and the Mono registry key be removed also? This could disable other Mono installations as well, but will remove Mono ${MILESTONE} 100%." IDNO GoNext2\r
+\r
+  ; If the Default-Key is the current Milestone, we just remove the wrappers\r
+\r
+  ReadRegStr $0 HKEY_LOCAL_MACHINE SOFTWARE\Mono\ DefaultCLR\r
+  StrCmp $0 ${MILESTONE} DeleteWrappers\r
+\r
+  MessageBox MB_YESNO "Mono ${MILESTONE} has been removed, but the default installation of Mono differs form this version. Should the wrappers and the Mono registry key be still be removed? This could disable other Mono installations." IDNO GoNext2\r
+\r
+  DeleteWrappers:\r
 \r
   ; Complete Uninstall\r
 \r
@@ -216,98 +224,98 @@ SectionEnd
 \r
 ; create bin/mono wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\mono.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/mint wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\mint.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mint.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mint.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/mcs wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\mcs.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/mcs.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/mcs.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/mbas wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\mbas.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/mbas.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/mbas.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/sqlsharp wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\sqlsharp.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/sqlsharp.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/sqlsharp.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/monodis wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\monodis.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/monodis.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/monodis.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/monoresgen wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\monoresgen.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/monoresgen.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/monoresgen.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/monoilasm wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\monoilasm.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/monoilasm.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/monoilasm.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/monosn wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\monosn.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/monosn.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/monosn.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/secutil wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\secutil.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/secutil.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/secutil.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/cert2spc wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\cert2spc.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/cert2spc.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/cert2spc.exe "$$@"'\r
 FileClose $0\r
 \r
 ; create bin/cilc wrapper to be used if the user has cygwin\r
 FileOpen $0 "$INSTDIR\bin\cilc.exe.sh" "w"\r
-FileWrite $0 "#!/bin/sh$\r$\n"
-FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"
-FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"
-FileWrite $0 '$6/bin/mono.exe $6/bin/cilc.exe "$$@"'
+FileWrite $0 "#!/bin/sh$\r$\n"\r
+FileWrite $0 "export MONO_PATH=$6/lib$\r$\n"\r
+FileWrite $0 "export MONO_CFG_DIR=$6/etc/mono$\r$\n"\r
+FileWrite $0 '$6/bin/mono.exe $6/bin/cilc.exe "$$@"'\r
 FileClose $0\r
 \r
 ;\r
@@ -320,8 +328,8 @@ FileClose $0
 \r
 FileOpen $0 "$WINDIR\monobasepath.bat" "w"\r
 FileWrite $0 'set MONO_BASEPATH="$INSTDIR"$\r$\n'\r
-FileWrite $0 "set MONO_PATH=%MONO_BASEPATH%\lib$\r$\n"\r
-FileWrite $0 "set MONO_CFG_DIR=%MONO_BASEPATH%\etc\mono"\r
+FileWrite $0 'set MONO_PATH=$INSTDIR\lib$\r$\n'\r
+FileWrite $0 'set MONO_CFG_DIR="$INSTDIR\etc\mono"'\r
 FileClose $0\r
 \r
 \r
@@ -341,8 +349,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\mcs.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\mcs.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -363,8 +371,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\mbas.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\mbas.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -385,8 +393,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mint.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mint.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -407,10 +415,9 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
-\r
 FileClose $0\r
 \r
 ;========================\r
@@ -429,8 +436,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\monodis.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\monodis.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -451,8 +458,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\monoilasm.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\monoilasm.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -474,8 +481,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\sqlsharp.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\sqlsharp.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -496,8 +503,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\secutil.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\secutil.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -518,8 +525,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\cert2spc.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\cert2spec.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -541,8 +548,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\monoresgen.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\monoresgen.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -563,8 +570,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\monosn.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\monosn.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r
@@ -586,8 +593,8 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"\r
 FileWrite $0 ":done$\r$\n"\r
 FileWrite $0 "setlocal$\r$\n"\r
-FileWrite $0 'set path="%MONO_BASEPATH%\bin\;%MONO_BASEPATH%\lib\;%path%"$\r$\n'\r
-FileWrite $0 "%MONO_BASEPATH%\bin\mono.exe %MONO_BASEPATH%\bin\cilc.exe %MONOARGS%$\r$\n"\r
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'\r
+FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\cilc.exe" %MONOARGS%$\r$\n'\r
 FileWrite $0 "endlocal$\r$\n"\r
 \r
 FileClose $0\r