@@ -34,7 +34,7 @@ SetCompressor /SOLID lzma
3434!include " StrFunc.nsh"
3535!include " InstallOptions.nsh"
3636!include " ReplaceInFile.nsh"
37- !include NTProfiles.nsh
37+ !include " NTProfiles.nsh"
3838
3939; ${StrTok}
4040${StrRep}
@@ -485,34 +485,49 @@ install_Msys:
485485 push $MSYS2
486486 call RemoveFile
487487
488- SkipMsys:
489488
490- !insertmacro _ReplaceInFile " $INSTDIR\msys2\etc\fstab" " {DEVKITPRO}" " $INSTDIR"
489+ !insertmacro _ReplaceInFile " $INSTDIR\msys2\etc\fstab" " # {DEVKITPRO}" " $INSTDIR"
491490
492491 ${ProfilesPath} $0
493- !insertmacro _ReplaceInFile " $INSTDIR\msys2\etc\fstab" " {PROFILES_ROOT}" " $0"
492+ !insertmacro _ReplaceInFile " $INSTDIR\msys2\etc\fstab" " #{PROFILES_ROOT}" " $0"
493+
494+ ExecWait ' "$INSTDIR\msys2\usr\bin\bash.exe" --login -c exit'
495+
496+ ; Reset msys path to start of path
497+ ReadRegStr $1 HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " PATH"
498+ ; remove it to avoid multiple paths with separate installs
499+ ${StrRep} $2 $1 " $INSTDIR\msys\bin;" " "
500+ ${StrRep} $2 $2 " $INSTDIR\msys2\usr\bin;" " "
501+ StrCmp $2 " " 0 WritePath
502+
503+ MessageBox mb_IconStop |mb_TopMost |mb_SetForeground " Trying to set path to blank string!$\n Please add $INSTDIR\msys2\usr\bin; to the start of your path"
504+ goto AbortPath
505+
506+ WritePath:
507+ StrCpy $2 " $INSTDIR\msys2\usr\bin;$2"
508+ WriteRegExpandStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " PATH" $2
509+ SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 " STR:Environment" /TIMEOUT= 5000
510+ AbortPath:
494511
512+ SkipMsys:
495513
496514 push ${SecdkARM}
497515 push " DEVKITARM"
498516 push $DEVKITARM
499- push " $BASEDIR/devkitARM"
500517 push " devkitARM"
501518 push $DEVKITARM_VER
502519 call ExtractToolChain
503520
504521 push ${devkitPPC}
505522 push " DEVKITPPC"
506523 push $DEVKITPPC
507- push " $BASEDIR/devkitPPC"
508524 push " devkitPPC"
509525 push $DEVKITPPC_VER
510526 call ExtractToolChain
511527
512528 push ${devkitA64}
513529 push " "
514530 push $DEVKITA64
515- push " $BASEDIR/devkitA64"
516531 push " devkitA64"
517532 push $DEVKITA64_VER
518533 call ExtractToolChain
@@ -698,24 +713,31 @@ skip_copy:
698713 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
699714 SetShellVarContext all ; Put stuff in All Users
700715 SetOutPath $INSTDIR
701- IntCmp $Updating 1 CheckPN2
716+
717+ IntCmp $Updating 1 CheckMsys2
702718
703719 WriteIniStr " $INSTDIR\devkitPro.url" " InternetShortcut" " URL" " ${PRODUCT_WEB_SITE}"
704720 CreateDirectory " $SMPROGRAMS\$ICONS_GROUP"
705721 CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\devkitpro.lnk" " $INSTDIR\devkitPro.url"
706722 CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" " $INSTDIR\uninst.exe"
707723
708- SetOutPath $INSTDIR \msys2
709- CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\MSys.lnk" " $INSTDIR\msys2\msys2_shell.cmd" " " " $INSTDIR\msys2\msys2.ico"
724+ CheckMsys2:
725+ !insertmacro SectionFlagIsSet ${SecMsys} ${SF_SELECTED} +1 CheckPN2
726+
727+ SetOutPath " $INSTDIR\msys2"
728+ CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\MSys2.lnk" " $INSTDIR\msys2\msys2_shell.bat" " " " $INSTDIR\msys2\msys2.ico"
710729
711730CheckPN2:
712731 !insertmacro SectionFlagIsSet ${Pnotepad} ${SF_SELECTED} +1 SkipPN2Menu
732+
713733 SetOutPath " $INSTDIR\Programmers Notepad"
714734 CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\Programmers Notepad.lnk" " $INSTDIR\Programmers Notepad\pn.exe"
735+
715736SkipPN2Menu:
716737 SetOutPath $INSTDIR
717738 CreateShortCut " $SMPROGRAMS\$ICONS_GROUP\Update.lnk" " $INSTDIR\$R1"
718739 !insertmacro MUI_STARTMENU_WRITE_END
740+
719741 WriteUninstaller " $INSTDIR\uninst.exe"
720742 IntCmp $Updating 1 SkipInstall
721743
@@ -725,24 +747,9 @@ SkipPN2Menu:
725747 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} " ${PRODUCT_UNINST_KEY}" " Publisher" " ${PRODUCT_PUBLISHER}"
726748
727749SkipInstall:
728- WriteRegStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " DEVKITPRO" " $BASEDIR "
750+ WriteRegStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " DEVKITPRO" " /opt/devkitpro "
729751 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 " STR:Environment" /TIMEOUT= 5000
730752
731- ; Reset msys path to start of path
732- ReadRegStr $1 HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " PATH"
733- ; remove it to avoid multiple paths with separate installs
734- ${StrRep} $2 $1 " $INSTDIR\msys\bin;" " "
735- ${StrRep} $2 $2 " $INSTDIR\msys2\usr\bin;" " "
736- StrCmp $2 " " 0 WritePath
737-
738- MessageBox mb_IconStop |mb_TopMost |mb_SetForeground " Trying to set path to blank string!$\n Please add $INSTDIR\msys\bin; to the start of your path"
739- goto AbortPath
740-
741- WritePath:
742- StrCpy $2 " $INSTDIR\msys2\usr\bin;$2"
743- WriteRegExpandStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" " PATH" $2
744- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 " STR:Environment" /TIMEOUT= 5000
745- AbortPath:
746753 ; write the version to the reg key so add/remove prograns has the right one
747754 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} " ${PRODUCT_UNINST_KEY}" " DisplayName" " $(^Name)"
748755 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} " ${PRODUCT_UNINST_KEY}" " DisplayVersion" " ${PRODUCT_VERSION}"
@@ -1403,12 +1410,13 @@ FunctionEnd
14031410var LIB
14041411var FOLDER
14051412
1413+
1414+
14061415; -----------------------------------------------------------------------------------------------------------------------
14071416Function ExtractToolChain
14081417; -----------------------------------------------------------------------------------------------------------------------
14091418 pop $R5 ; version
14101419 pop $R4 ; section name
1411- pop $R3 ; path
14121420 pop $R2 ; 7zip
14131421 pop $R1 ; env variable
14141422 pop $R0 ; section flags
@@ -1425,7 +1433,7 @@ Function ExtractToolChain
14251433
14261434 StrCmp $R1 " " NoEnvVar 0
14271435
1428- WriteRegStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" $R1 $R3
1436+ WriteRegStr HKLM " System\CurrentControlSet\Control\Session Manager\Environment" $R1 " /opt/devkitpro/$R4 "
14291437 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 " STR:Environment" /TIMEOUT= 5000
14301438
14311439NoEnvVar:
0 commit comments