1;;----------------------------------------------------------------;;
2;; -- reduce.iss --  REDUCE InnoSetup installation script         ;;
3;;----------------------------------------------------------------;;
4;;                                                                ;;
5;;  * InnoSetup version 5.1.7 or above is recommended             ;;
6;;                                                                ;;
7;;  * IMPORTANT!                                                  ;;
8;;    Section [CustomMessages] below contains messages            ;;
9;;    in several 8-bit encodings (code pages 1251, 1252).         ;;
10;;    Don't use any encoding conversion tool (e.g. iconv,         ;;
11;;    recode) on this file directly! That section is in fact in a ;;
12;;    separate file "messages.iss" that is used via #include to   ;;
13;;    leave this top-level file more robust. The "files" section  ;;
14;;    has also moved to "files.iss" since it is a part of the     ;;
15;;    script most liable to change.                               ;;
16;;                                                                ;;
17;;----------------------------------------------------------------;;
18
19
20[Setup]
21AppName=REDUCE
22AppVerName=REDUCE
23AppId=REDUCE
24UsePreviousAppDir=yes
25AppPublisher=REDUCE Developers
26VersionInfoCopyright=REDUCE Developers
27AppPublisherURL=https://reduce-algebra.sourceforge.io/
28AppSupportURL=https://reduce-algebra.sourceforge.io/
29AppUpdatesURL=https://reduce-algebra.sourceforge.io/
30AppVersion={#myver}
31OutputBaseFilename=Reduce-Setup
32DefaultDirName={pf}\Reduce
33DefaultGroupName=Reduce
34AllowNoIcons=yes
35LicenseFile={#mydir}\C\csl\reduce.doc\BINARY-LICENSE.txt
36Compression=lzma/ultra
37SolidCompression=yes
38Uninstallable=yes
39UninstallFilesDir={app}\uninst
40ShowLanguageDialog=yes
41ChangesAssociations=yes
42PrivilegesRequired=none
43ArchitecturesInstallIn64BitMode=x64
44
45
46[Languages]
47Name: "en"; MessagesFile: "compiler:Default.isl"
48Name: "de"; MessagesFile: "compiler:Languages\German.isl"
49Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
50Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
51Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"
52
53
54[Types]
55Name: "full"; Description: "{cm:FullInstallation}"
56Name: "cslonly"; Description: "{cm:CslOnlyInstallation}"
57Name: "pslonly"; Description: "{cm:PslOnlyInstallation}"
58Name: "custom"; Description: "{cm:CustomInstallation}"; Flags: iscustom
59
60
61[Components]
62Name: "common"; Description: "{cm:ReduceCommon}"; Types: full cslonly pslonly custom; Flags: fixed
63Name: "common\source"; Description: "{cm:ReduceSrc}"; Types: full custom
64Name: "csl"; Description: "{cm:ReduceCSL}"; Types: full cslonly custom
65Name: "psl32"; Description: "{cm:ReducePSL}"; Types: full pslonly custom; Check: not Is64BitInstallMode
66Name: "psl64"; Description: "{cm:ReducePSL}"; Types: full pslonly custom; Check: Is64BitInstallMode
67
68
69#include "files.iss"
70
71[Icons]
72;Name: "{group}\redcsl"; Filename: "{app}\bin\redcsl.bat"; IconFileName: "{app}\bin\redcsl.bat"; WorkingDir: "%USERPROFILE%\Documents"; Components: csl
73Name: "{group}\CSL Reduce"; Filename: "{app}\lib\csl\winreduce.exe"; WorkingDir: "%USERPROFILE%\Documents"; Components: csl
74Name: "{group}\CSL Bootstrap Reduce"; Filename: "{app}\lib\csl\bootstrapreduce.exe"; WorkingDir: "%USERPROFILE%\Documents"; Components: csl
75Name: "{group}\CSL Lisp system"; Filename: "{app}\lib\csl\wincsl.exe"; WorkingDir: "%USERPROFILE%\Documents"; Components: csl
76Name: "{group}\PSL Reduce"; Filename: "{app}\bin\redpsl.bat"; IconFileName: "{app}\lib\psl\psl\bpslw.exe"; WorkingDir: "%USERPROFILE%\Documents"; Components: psl32 psl64
77Name: "{group}\Reduce Manual (PDF version)"; Filename: "{app}\lib\csl\reduce.doc\manual.pdf" ; Components: common
78Name: "{group}\Reduce Manual (HTML version)"; Filename: "{app}\lib\csl\reduce.doc\manual.html" ; Components: common
79Name: "{group}\Inside Reduce"; Filename: "{app}\doc\insidereduce.pdf" ; Components: common
80Name: "{group}\Reduce Symbolic Mode Primer"; Filename: "{app}\doc\primer.pdf" ; Components: common
81Name: "{group}\Standard Lisp Report"; Filename: "{app}\doc\sl.pdf" ; Components: common
82
83
84[Run]
85Filename: "{app}\lib\gp460-win32-setup.exe"; Description: "Install Gnuplot"; Flags: postinstall; Check: MyGnuPlotCheck
86Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\lib\csl\reduce.exe"" redcsl"; Flags: runhidden; Components: csl
87Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\lib\csl\bootstrapreduce.exe"" bootstrapreduce"; Flags: runhidden; Components: csl
88Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\lib\csl\csl.exe"" csl"; Flags: runhidden; Components: csl
89Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\bin\rfcsl.exe"" ""{app}\bin\rfcsl.exe"" rfcsl"; Flags: runhidden; Components: csl
90Filename: "{app}\lib\psl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\bin\redpsl"" redpsl"; Flags: runhidden; Components: psl32 psl64
91Filename: "{app}\lib\psl\make-cygwin-symlink.exe"; Description: "set symlinks for benefit of cygwin users"; Parameters: """{app}\bin\rfpsl.exe"" ""{app}\bin\rfpsl.exe"" rfpsl"; Flags: runhidden; Components: psl32 psl64
92
93
94[UninstallRun]
95Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Parameters: "redcsl"; Flags: runhidden; Components: csl
96Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Parameters: "bootstrapreduce"; Flags: runhidden; Components: csl
97Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Parameters: "csl"; Flags: runhidden; Components: csl
98Filename: "{app}\lib\csl\make-cygwin-symlink.exe"; Parameters: "rfcsl"; Flags: runhidden; Components: csl
99Filename: "{app}\lib\psl\make-cygwin-symlink.exe"; Parameters: "redpsl"; Flags: runhidden; Components: psl32 psl64
100Filename: "{app}\lib\psl\make-cygwin-symlink.exe"; Parameters: "rfpsl"; Flags: runhidden; Components: psl32 psl64
101
102
103[Code]
104var
105  NeedGnuPlotInstall: Boolean;
106  GnuPlotPath: String;
107
108function InitializeSetup(): Boolean;
109var
110  RegVal: String;
111begin
112  Log('InitializeSetup called');
113  if not RegQueryStringValue(HKEY_CLASSES_ROOT, 'gnuplot\shell\open\command', '', RegVal) then begin
114    NeedGnuPlotInstall := True;
115    Log('No Gnuplot Installed');
116  end else begin
117    NeedGnuPlotInstall := False;
118    GnuPlotPath := RegVal;
119    Delete(GnuPlotPath, Pos(' -p ', RegVal), Length(RegVal));
120    Log('Gnuplot found at '+GnuPlotPath);
121  end;
122  Result := True;
123end;
124
125
126function MyGnuPlotCheck(): Boolean;
127begin
128  Result := NeedGnuPlotInstall;
129end;
130
131#include "messages.iss"
132
133#expr SaveToFile("ReducePreprocessed.iss")
134
135;; End if reduce.iss
136