comparison tools/makeinst-script.sh.in @ 5958:ea224bb389e3

NSIS installer: Use launcher executables. * tools/makeinst-script.sh.in: Use launcher executables instead of .vbs scripts for links and file associations.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 20 Nov 2021 16:44:42 +0100
parents 37a432f5f0eb
children 8fe292548edf
comparison
equal deleted inserted replaced
5957:9cd5425b033b 5958:ea224bb389e3
71 !define OCTAVE_VERSION "$OCTAVE_VERSION" 71 !define OCTAVE_VERSION "$OCTAVE_VERSION"
72 !define COPYRIGHT "Copyright © 2013-2020 John W. Eaton and others." 72 !define COPYRIGHT "Copyright © 2013-2020 John W. Eaton and others."
73 !define DESCRIPTION "GNU Octave Installer" 73 !define DESCRIPTION "GNU Octave Installer"
74 !define INSTALLER_FILES "$TOPDIR/installer-files" 74 !define INSTALLER_FILES "$TOPDIR/installer-files"
75 !define INSTALLER_NAME "$INSTALLER_NAME" 75 !define INSTALLER_NAME "$INSTALLER_NAME"
76 !define MAIN_APP_EXE "octave-firsttime.vbs" 76 !define MAIN_APP_EXE "octave-launch-firsttime.exe"
77 !define PRODUCT_ROOT_KEY "SHCTX" 77 !define PRODUCT_ROOT_KEY "SHCTX"
78 !define PRODUCT_KEY "Software\\Octave-$VERSION" 78 !define PRODUCT_KEY "Software\\Octave-$VERSION"
79 !define PRODUCT_UNINST_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION" 79 !define PRODUCT_UNINST_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-$VERSION"
80 !define PRODUCT_UNINST_ROOT_KEY "SHCTX" 80 !define PRODUCT_UNINST_ROOT_KEY "SHCTX"
81 81
435 435
436 ; include the README 436 ; include the README
437 SetOutPath "\$INSTDIR" 437 SetOutPath "\$INSTDIR"
438 File "$OCTAVE_SOURCE/README.html" 438 File "$OCTAVE_SOURCE/README.html"
439 439
440 ; include octave.vbs and other scripts 440 ; include octave-launch, octave.vbs and other scripts
441 SetOutPath "\$INSTDIR" 441 SetOutPath "\$INSTDIR"
442 File "$OCTAVE_SOURCE/octave.vbs" 442 File "$OCTAVE_SOURCE/octave.vbs"
443 File "$OCTAVE_SOURCE/octave-firsttime.vbs" 443 File "$OCTAVE_SOURCE/octave-firsttime.vbs"
444 File "$OCTAVE_SOURCE/octave-launch.exe"
445 File "$OCTAVE_SOURCE/octave-launch-firsttime.exe"
444 File "$OCTAVE_SOURCE/fc_update.bat" 446 File "$OCTAVE_SOURCE/fc_update.bat"
445 File "$OCTAVE_SOURCE/post-install.bat" 447 File "$OCTAVE_SOURCE/post-install.bat"
446 448
447 File "$OCTAVE_SOURCE/HG-ID" 449 File "$OCTAVE_SOURCE/HG-ID"
448 450
505 507
506 # will append (Local) to menus in local mode 508 # will append (Local) to menus in local mode
507 CreateDirectory "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local" 509 CreateDirectory "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local"
508 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Uninstall.lnk" "\$INSTDIR\\uninstall.exe" "" "\$INSTDIR\\uninstall.exe" 0 510 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Uninstall.lnk" "\$INSTDIR\\uninstall.exe" "" "\$INSTDIR\\uninstall.exe" 0
509 SetOutPath "%USERPROFILE%" 511 SetOutPath "%USERPROFILE%"
510 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (CLI).lnk" "%SYSTEMROOT%\\system32\\wscript.exe" "\$\\"\$INSTDIR\\octave.vbs\$\\" --no-gui" "\$INSTDIR\\$ICON" 0 SW_SHOWMINIMIZED 512 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (CLI).lnk" "\$INSTDIR\\octave-launch.exe" "--no-gui" "\$INSTDIR\\$ICON" 0 SW_SHOWMINIMIZED
511 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (GUI).lnk" "%SYSTEMROOT%\\system32\\wscript.exe" "\$\\"\$INSTDIR\\octave.vbs\$\\" --gui" "\$INSTDIR\\$ICON" 0 SW_SHOWMINIMIZED 513 CreateShortCut "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (GUI).lnk" "\$INSTDIR\\octave-launch.exe" "--gui" "\$INSTDIR\\$ICON" 0 SW_SHOWMINIMIZED
512 SetOutPath "\$INSTDIR" 514 SetOutPath "\$INSTDIR"
513 515
514 ; fix the shortcuts for appid 516 ; fix the shortcuts for appid
515 ; run in hidden console window 517 ; run in hidden console window
516 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (GUI).lnk" "gnu.octave.$VERSION"' 518 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Octave-$VERSION\$MultiUser.Local (GUI).lnk" "gnu.octave.$VERSION"'
578 StrCpy \$R0 "\$INSTDIR" 580 StrCpy \$R0 "\$INSTDIR"
579 StrCpy \$R2 "\$INSTDIR\\$ICON" 581 StrCpy \$R2 "\$INSTDIR\\$ICON"
580 582
581 have_ver_str: 583 have_ver_str:
582 SetOutPath "%USERPROFILE%" 584 SetOutPath "%USERPROFILE%"
583 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" "%SYSTEMROOT%\\system32\\wscript.exe" "\$\\"\$R0\\octave.vbs\$\\" --no-gui" "\$R2" 0 SW_SHOWMINIMIZED 585 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" "\$R0\\octave-launch.exe" "--no-gui" "\$R2" 0 SW_SHOWMINIMIZED
584 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "%SYSTEMROOT%\\system32\\wscript.exe" "\$\\"\$R0\\octave.vbs\$\\" --gui" "\$R2" 0 SW_SHOWMINIMIZED 586 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "\$R0\\octave-launch.exe" "--gui" "\$R2" 0 SW_SHOWMINIMIZED
585 587
586 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "gnu.octave.\$R1"' 588 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "gnu.octave.\$R1"'
587 Pop \$0 589 Pop \$0
588 590
589 Pop \$R2 591 Pop \$R2
604 606
605 Section "FileTypeRego" 607 Section "FileTypeRego"
606 608
607 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION" "FriendlyAppName" "GNU Octave $VERSION" 609 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION" "FriendlyAppName" "GNU Octave $VERSION"
608 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION\\DefaultIcon" "" "\$INSTDIR\\$ICON" 610 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION\\DefaultIcon" "" "\$INSTDIR\\$ICON"
609 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION\\shell\\open\\command" "" "wscript \$\\"\$INSTDIR\\octave.vbs\$\\" --gui --persist --eval \$\\"edit '%1'\$\\"" 611 WriteRegStr SHCTX "Software\\Classes\\Octave.Document.$VERSION\\shell\\open\\command" "" "\$\\"\$INSTDIR\\octave-launch.exe\$\\" --gui --persist --eval \$\\"edit '%1'\$\\""
610 612
611 \${If} \$RegisterOctaveFileType == \${BST_CHECKED} 613 \${If} \$RegisterOctaveFileType == \${BST_CHECKED}
612 614
613 ReadRegStr \$0 SHCTX "Software\\Classes\\.m" "" 615 ReadRegStr \$0 SHCTX "Software\\Classes\\.m" ""
614 StrCmp "\$0" "" ctx_no_back_type 616 StrCmp "\$0" "" ctx_no_back_type
686 688
687 ReadRegStr \$R2 SHCTX "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-\$R1" "DisplayIcon" 689 ReadRegStr \$R2 SHCTX "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Octave-\$R1" "DisplayIcon"
688 690
689 IfFileExists "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" 0 check_gui_shortcut 691 IfFileExists "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" 0 check_gui_shortcut
690 SetOutPath "%USERPROFILE%" 692 SetOutPath "%USERPROFILE%"
691 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" "%SYSTEMROOT%\system32\wscript.exe" "\$\\"\$R0\\octave.vbs\$\\" --no-gui" "\$R2" 0 SW_SHOWMINIMIZED 693 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (CLI).lnk" "\$R0\\octave-launch.exe" "--no-gui" "\$R2" 0 SW_SHOWMINIMIZED
692 694
693 check_gui_shortcut: 695 check_gui_shortcut:
694 IfFileExists "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" 0 done_remove_desktop_shortcuts 696 IfFileExists "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" 0 done_remove_desktop_shortcuts
695 SetOutPath "%USERPROFILE%" 697 SetOutPath "%USERPROFILE%"
696 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "%SYSTEMROOT%\system32\wscript.exe" "\$\\"\$R0\\octave.vbs\$\\" --gui" "\$R2" 0 SW_SHOWMINIMIZED 698 CreateShortCut "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "\$R0\\octave-launch.exe" "--gui" "\$R2" 0 SW_SHOWMINIMIZED
697 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "gnu.octave.\$R1"' 699 nsExec::Exec /TIMEOUT=30000 '"\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\win7appid.exe" "\$desktop\\GNU Octave\$MultiUser.Local (GUI).lnk" "gnu.octave.\$R1"'
698 Pop \$0 700 Pop \$0
699 701
700 GoTo done_remove_desktop_shortcuts 702 GoTo done_remove_desktop_shortcuts
701 703