ChowTapeModel_Install_Script.iss (6995B)
1 #define MyAppPublisher "Chowdhury DSP" 2 #define MyAppURL "https://chowdsp.com" 3 #define MyAppName "ChowTapeModel" 4 #define MyAppVersion "##APPVERSION##" 5 6 [Setup] 7 AppName="{#MyAppName} {#MyAppVersion}" 8 AppVersion={#MyAppVersion} 9 AppVerName={#MyAppName} 10 AppPublisher={#MyAppPublisher} 11 AppPublisherURL={#MyAppURL} 12 AppSupportURL={#MyAppURL} 13 AppUpdatesURL={#MyAppURL} 14 DefaultDirName={commonpf64}\Chowdhury DSP\ 15 DefaultGroupName={#MyAppName} 16 DisableProgramGroupPage=yes 17 DisableDirPage=yes 18 DisableWelcomePage=no 19 LicenseFile=../../../LICENSE 20 OutputBaseFilename="ChowTapeModel-Win-{#MyAppVersion}" 21 OutputDir=. 22 SetupIconFile=chowtape.ico 23 UninstallDisplayIcon=chowtape.ico 24 UninstallFilesDir={commonpf64}\Chowdhury DSP\{#MyAppName} 25 Compression=lzma 26 SolidCompression=yes 27 28 [Types] 29 Name: "full"; Description: "Full installation" 30 Name: "custom"; Description: "Custom installation"; Flags: iscustom 31 32 [Components] 33 Name: "VST3_64"; Description: "VST3 Plugin"; Types: full 34 Name: "VST_64"; Description: "VST Plugin"; Types: full 35 Name: "CLAP_64"; Description: "CLAP Plugin"; Types: full 36 Name: "Standalone"; Description: "Standalone Plugin"; Types: full 37 Name: "AAX"; Description: "AAX Plugin"; Types: full 38 39 [Files] 40 Source: "../../Bin/Win64/CHOWTapeModel.vst3"; Excludes: "*.aaxplugin,*.clap"; DestDir: "{code:GetDir|VST3_64}"; Components: VST3_64; Flags: ignoreversion recursesubdirs createallsubdirs 41 Source: "../../Bin/Win64/CHOWTapeModel.dll"; Excludes: "*.vst3,*.aaxplugin,*.clap"; DestDir: "{code:GetDir|VST_64}"; Components: VST_64; Flags: ignoreversion recursesubdirs createallsubdirs 42 Source: "../../Bin/Win64/CHOWTapeModel.clap"; Excludes: "*.vst3,*.aaxplugin"; DestDir: "{code:GetDir|CLAP_64}"; Components: CLAP_64; Flags: ignoreversion recursesubdirs createallsubdirs 43 Source: "../../Bin/Win64/CHOWTapeModel.exe"; Excludes: "*.vst3,*.aaxplugin,*.clap"; DestDir: "{code:GetDir|Standalone}"; Components: Standalone; Flags: ignoreversion recursesubdirs createallsubdirs 44 Source: "../../Bin/Win64/CHOWTapeModel.aaxplugin"; Excludes: "*.vst3,*.clap"; DestDir: "{code:GetDir|AAX}"; Components: AAX; Flags: ignoreversion recursesubdirs createallsubdirs 45 46 [Icons] 47 Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" 48 49 [Code] 50 var 51 AAXDirPage: TInputDirWizardPage; 52 Vst3_64DirPage: TinputDirWizardPage; 53 Vst_64DirPage: TinputDirWizardPage; 54 StandaloneDirPage: TinputDirWizardPage; 55 56 procedure InitializeWizard; 57 begin 58 Log('Initializing extra pages') 59 //AAX Dir Page 60 AAXDirPage := CreateInputDirPage(wpSelectComponents, 61 'Select AAX Install Location', 'Where would you like to install the AAX plugin?', 62 'AAX plugin will be installed in the following folder.'#13#10#13#10 + 63 'To continue, click Next. If you would like to select a different folder, click Browse.', 64 False, 'New Folder'); 65 66 AAXDirPage.add(''); 67 AAXDirPage.values[0] := ExpandConstant('{commoncf64}\Avid\Audio\Plug-Ins'); 68 69 //VST3 64-bit Dir Page 70 Vst3_64DirPage := CreateInputDirPage(AAXDirPage.ID, 71 'Select Install Location for VST3 64-bit', 'Where would you like to install the plugin?', 72 'VST3 64-bit plugin will be installed in the following folder.'#13#10#13#10 + 73 'To continue, click Next. If you would like to select a different folder, click Browse.', 74 False, 'New Folder'); 75 76 Vst3_64DirPage.add(''); 77 Vst3_64DirPage.values[0] := ExpandConstant('{commoncf64}\VST3'); 78 79 //VST 64-bit Dir Page 80 Vst_64DirPage := CreateInputDirPage(Vst3_64DirPage.ID, 81 'Select Install Location for VST 64-bit', 'Where would you like to install the plugin?', 82 'VST 64-bit plugin will be installed in the following folder.'#13#10#13#10 + 83 'To continue, click Next. If you would like to select a different folder, click Browse.', 84 False, 'New Folder'); 85 86 Vst_64DirPage.add(''); 87 Vst_64DirPage.values[0] := ExpandConstant('{commoncf64}\VST'); 88 89 //Standalone Dir Page 90 StandaloneDirPage := CreateInputDirPage(Vst_64DirPage.ID, 91 'Select Install Location for Standalone', 'Where would you like to install the plugin?', 92 'Standalone plugin will be installed in the following folder.'#13#10#13#10 + 93 'To continue, click Next. If you would like to select a different folder, click Browse.', 94 False, 'New Folder'); 95 StandaloneDirPage.add(''); 96 StandaloneDirPage.values[0] := ExpandConstant('{pf64}\Chowdhury DSP'); 97 end; 98 99 function IsSelected(Param: String) : Boolean; 100 begin 101 if not (Pos(Param, WizardSelectedComponents(False)) = 0) then // WizardSelectedComponents(False)) then 102 Result := True 103 end; 104 105 function ShouldSkipPage(PageID: Integer): Boolean; 106 begin 107 { Skip pages that shouldn't be shown } 108 Result := False; 109 110 if (PageID = AAXDirPage.ID) then 111 begin 112 Result := True; 113 Log('Selected 1: ' + WizardSelectedComponents(False)); 114 115 if IsSelected ('aax') then 116 begin 117 Log('Not Skipping page'); 118 Result := False; 119 end 120 end 121 122 else if (PageID = Vst3_64DirPage.ID) then 123 begin 124 Result := True; 125 Log('Selected 2: ' + WizardSelectedComponents(False)); 126 127 if IsSelected ('vst3_64') then 128 begin 129 Log('Not Skipping'); 130 Result := False; 131 end 132 end 133 134 else if (PageID = Vst_64DirPage.ID) then 135 begin 136 Result := True; 137 Log('Selected 4: ' + WizardSelectedComponents(False)); 138 139 if IsSelected ('vst_64') then 140 begin 141 Log('Not Skipping'); 142 Result := False; 143 end 144 end 145 146 else if (PageID = StandaloneDirPage.ID) then 147 begin 148 Result := True; 149 Log('Selected 6: ' + WizardSelectedComponents(False)); 150 if IsSelected ('standalone') then 151 begin 152 Log('Not Skipping'); 153 Result := False; 154 end 155 end 156 end; 157 158 function GetDir(Param: String) : String; 159 begin 160 if (Param = 'AAX') then 161 Result := AAXDirPage.values[0] 162 else if (Param = 'VST3_64') then 163 Result := Vst3_64DirPage.values[0] 164 else if (Param = 'VST_64') then 165 Result := Vst_64DirPage.values[0] 166 else if (Param = 'Standalone') then 167 Result := StandaloneDirPage.values[0] 168 else if (Param = 'CLAP_64') then 169 Result := ExpandConstant('{commoncf64}\CLAP') 170 end; 171 172 function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, 173 MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; 174 var 175 S: String; 176 begin 177 { Fill the 'Ready Memo' with the normal settings and the custom settings } 178 S := ''; 179 S := S + MemoTypeInfo + NewLine + NewLine; 180 S := S + MemoComponentsInfo + NewLine + NewLine; 181 S := S + 'Destination Location:' + NewLine; 182 183 if IsSelected('aax') then 184 S := S + Space + GetDir('AAX') + ' (AAX)' + NewLine; 185 186 if IsSelected('vst3_64') then 187 S := S + Space + GetDir('VST3_64') + ' (VST3 64-bit)' + NewLine; 188 189 if IsSelected('vst_64') then 190 S := S + Space + GetDir('VST_64') + ' (VST 64-bit)' + NewLine; 191 192 if IsSelected('clap_64') then 193 S := S + Space + GetDir('CLAP_64') + ' (CLAP 64-bit)' + NewLine; 194 195 if IsSelected('standalone') then 196 S := S + Space + GetDir('Standalone') + ' (Standalone)' + NewLine; 197 198 Result := S; 199 end;