Skip to content

Commit a75214c

Browse files
author
John Kouraklis
committed
Installer for D10.1 Berlin added.
1 parent d1eba56 commit a75214c

File tree

6 files changed

+362
-0
lines changed

6 files changed

+362
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@
1616
Demos/WebBrowser/Win32
1717
Demos/WebBrowser/OSX32
1818
Demos/WebBrowser/Win64
19+
Thumbs.db

Installer/CompileSource.bat

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
@echo off
2+
rem 1:The directory to execute msbuild (project directory)
3+
set runDir=%1
4+
5+
rem 2:The full path of rsvars.bat
6+
set rsvarsDir=%2
7+
8+
rem 3:The project file
9+
set projFile=%3
10+
11+
rem 4:The compile platform
12+
set currPlatform=%4
13+
14+
rem 5:BPL output
15+
set BPLDir=%5
16+
echo %BPLDir%
17+
18+
call %rsvarsDir%
19+
set FullProjPath=%runDir%\%projFile%
20+
echo %FullProjPath%
21+
22+
%FrameworkDir%\msbuild.exe %FullProjPath% /p:platform=%currPlatform% /p:config=Debug /p:DCC_BPLOutput=%BPLDir%
Binary file not shown.
Lines changed: 339 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,339 @@
1+
; Script generated by the Inno Setup Script Wizard.
2+
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3+
4+
#define MyAppName "neTabControl"
5+
#define MyAppVersion "1.0.0"
6+
#define MyAppPublisher "NusEnvision"
7+
#define MyAppURL "https://github.com/jkour/neTabControl"
8+
9+
#define Delphi101BaseVersion = '18.0';
10+
#define Delphi101BerlinPath = 'C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\';
11+
#define Delphi101BerlinRsvars = Delphi101BerlinPath+'rsvars.bat'
12+
#define Delphi101BerlinDCC32 = Delphi101BerlinPath+'dcc32.exe'
13+
14+
[Setup]
15+
; NOTE: The value of AppId uniquely identifies this application.
16+
; Do not use the same AppId value in installers for other applications.
17+
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
18+
AppId={{CBDFF8DC-5797-4CD3-9531-295946478CB2}
19+
AppName={#MyAppName}
20+
AppVersion={#MyAppVersion}
21+
;AppVerName={#MyAppName} {#MyAppVersion}
22+
AppPublisher={#MyAppPublisher}
23+
AppPublisherURL={#MyAppURL}
24+
AppSupportURL={#MyAppURL}
25+
AppUpdatesURL={#MyAppURL}
26+
DefaultDirName={commondocs}\NusEnvision\{#MyAppName}
27+
DefaultGroupName=NusEnvision\neTabControl
28+
DisableProgramGroupPage=yes
29+
OutputBaseFilename=neTabControl-1.0.0-D101Berlin-setup
30+
Compression=lzma
31+
SolidCompression=yes
32+
ShowLanguageDialog=no
33+
34+
[Languages]
35+
Name: "english"; MessagesFile: "compiler:Default.isl"
36+
37+
[Files]
38+
Source: "\\Mac\ProductionHD\NusEnvision\Components\Delphi\neTabControl\Release\Documentation\*"; DestDir: "{commondocs}\NusEnvision\neTabControl\Documentation"; Flags: ignoreversion recursesubdirs createallsubdirs
39+
Source: "..\..\Release\Images\*"; DestDir: "{commondocs}\NusEnvision\neTabControl\Images\"; Flags: ignoreversion recursesubdirs createallsubdirs
40+
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
41+
Source: "..\..\Release\SourceCode\neTabControlProjectGroup.dsk"; DestDir: "{commondocs}\NusEnvision\neTabControl\SourceCode\"; Flags: ignoreversion
42+
Source: "..\..\Release\SourceCode\neTabControlProjectGroup.groupproj"; DestDir: "{app}\SourceCode\"; Flags: ignoreversion
43+
Source: "..\..\Release\SourceCode\neTabControlProjectGroup_prjgroup.tvsconfig"; DestDir: "{app}\SourceCode\"; Flags: ignoreversion
44+
Source: "..\..\Release\SourceCode\Package\neTabControl.pas"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
45+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.dpk"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
46+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.dproj"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
47+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.dproj.local"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
48+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.dres"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
49+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.dsk"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
50+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.identcache"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
51+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.res"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
52+
Source: "..\..\Release\SourceCode\Package\neTabControlPackage.stat"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
53+
Source: "..\..\Release\SourceCode\Package\neTabControlPackageResource.rc"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
54+
Source: "..\..\Release\SourceCode\Package\neTabGeneralUtils.pas"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
55+
Source: "..\..\Release\SourceCode\Package\neTabItem.pas"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
56+
Source: "..\..\Release\SourceCode\Package\neTabTypes.pas"; DestDir: "{app}\SourceCode\Package\"; Flags: ignoreversion
57+
Source: "..\..\Release\SourceCode\SupportCode\Model.ProSu.Classes.Provider.pas"; DestDir: "{app}\SourceCode\SupportCode\"; Flags: ignoreversion
58+
Source: "..\..\Release\SourceCode\SupportCode\Model.ProSu.Classes.Subscriber.pas"; DestDir: "{app}\SourceCode\SupportCode\"; Flags: ignoreversion
59+
Source: "..\..\Release\SourceCode\SupportCode\Model.ProSu.InterfaceActions.pas"; DestDir: "{app}\SourceCode\SupportCode\"; Flags: ignoreversion
60+
Source: "..\..\Release\SourceCode\SupportCode\Model.ProSu.Interfaces.pas"; DestDir: "{app}\SourceCode\SupportCode\"; Flags: ignoreversion
61+
Source: "..\..\Release\Demos\WebBrowser\Entitlement.TemplateOSX32.xml"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
62+
Source: "..\..\Release\Demos\WebBrowser\info.plist.TemplateOSX.xml"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
63+
Source: "..\..\Release\Demos\WebBrowser\Unit2.fmx"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
64+
Source: "..\..\Release\Demos\WebBrowser\Unit2.pas"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
65+
Source: "..\..\Release\Demos\WebBrowser\Unit3.fmx"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
66+
Source: "..\..\Release\Demos\WebBrowser\Unit3.pas"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
67+
Source: "..\..\Release\Demos\WebBrowser\Unit5.fmx"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
68+
Source: "..\..\Release\Demos\WebBrowser\Unit5.pas"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
69+
Source: "..\..\Release\Demos\WebBrowser\Unit8.fmx"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
70+
Source: "..\..\Release\Demos\WebBrowser\Unit8.pas"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
71+
Source: "..\..\Release\Demos\WebBrowser\Unit8.vlb"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
72+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.deployproj"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
73+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.dpr"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
74+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.dproj"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
75+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.dres"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
76+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.identcache"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
77+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.res"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
78+
Source: "..\..\Release\Demos\WebBrowser\WebBrowser.stat"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
79+
Source: "..\..\Release\Demos\WebBrowser\WebBrowserResource.rc"; DestDir: "{app}\Demos\WebBrowser\"; Flags: ignoreversion
80+
; Compile batch file
81+
Source: "CompileSource.bat"; Flags: dontcopy
82+
83+
[Icons]
84+
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
85+
86+
[Dirs]
87+
Name: "{app}\Bpl"
88+
89+
[Code]
90+
const
91+
Delphi101BerlinPath = 'C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\';
92+
Delphi101BPLPath = 'C:\Users\Public\Documents\Embarcadero\Studio\18.0\Bpl';
93+
94+
var
95+
IsAvailableDelphi101Berlin: boolean;
96+
97+
procedure SplitString(const strToSplit: string; const separator: string;
98+
var outputList: TStringList);
99+
var
100+
p: integer;
101+
text: string;
102+
begin
103+
outputList.clear;
104+
text:=strToSplit;
105+
repeat
106+
p:=pos(separator, text);
107+
if p>0 then
108+
begin
109+
outputList.Add(copy(strToSplit,1, p-1));
110+
text:=copy(text, p+length(separator), length(text));
111+
end
112+
else
113+
begin
114+
outputlist.add(text);
115+
text:='';
116+
end;
117+
until Length(text)=0;
118+
end;
119+
120+
procedure CurStepChanged(CurStep: TSetupStep);
121+
var
122+
basicParams,
123+
Params: string;
124+
cmdLine: string;
125+
ResultCode: integer;
126+
runDir,
127+
BPLDir: string;
128+
InstallIDEPackage: boolean;
129+
begin
130+
if (CurStep=ssPostInstall) then
131+
begin
132+
if not IsAvailableDelphi101Berlin then
133+
Exit;
134+
InstallIDEPackage:=false;
135+
WizardForm.StatusLabel.Caption:= 'Checking Delphi installation...';
136+
if DirExists(Delphi101BerlinPath) then
137+
begin
138+
WizardForm.StatusLabel.Caption:= 'Delphi 10.1 Berlin found';
139+
//Remove old BPL
140+
WizardForm.StatusLabel.Caption:= 'Removing old BPL files...';
141+
if FileExists(ExpandConstant('{app}')+'\Bpl\neTabControl.bpl') then
142+
DeleteFile(ExpandConstant('{app}')+'\Bpl\neTabControl.bpl');
143+
144+
//Prepare to compile
145+
ExtractTemporaryFile('CompileSource.bat');
146+
runDir:=ExpandConstant('{app}')+'\SourceCode\Package';
147+
148+
basicParams:='"'+runDir+'"';
149+
basicParams:=basicParams+' "'+ExpandConstant('{#Delphi101BerlinPath}')+'\rsvars.bat" ';
150+
basicParams:=basicParams+'neTabControlPackage.dproj ';
151+
152+
//Build - Win32
153+
WizardForm.StatusLabel.Caption:= 'Compiling Win32...';
154+
Params:='';
155+
Params:=basicParams+'Win32 ';
156+
BPLDir:=ExpandConstant('{app}')+'\Bpl';
157+
Params:=Params+'"'+BPLDir+'"';
158+
159+
Exec(ExpandConstant('{tmp}')+'\CompileSource.bat',
160+
Params,
161+
'',
162+
SW_HIDE, ewWaitUntilTerminated, ResultCode);
163+
if ResultCode<>0 then
164+
MsgBox('Error while compiling for Win32', mbInformation, mb_OK)
165+
else
166+
begin
167+
//Folders - Win32
168+
InstallIDEPackage:=true;
169+
WizardForm.StatusLabel.Caption:= 'Registering Win32 Folders...';
170+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Search Path', cmdLine) then
171+
begin
172+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package', cmdLine)=0 then
173+
cmdLine:=cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package';
174+
175+
if Pos(ExpandConstant('{app}')+'\SourceCode\SupportCode', cmdLine)=0 then;
176+
cmdLine:=cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\SupportCode';
177+
178+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Search Path', cmdLine);
179+
end;
180+
181+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Debug DCU Path', cmdLine) then
182+
begin
183+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package\Win32\Debug', cmdLine)=0 then
184+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Debug DCU Path',
185+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package\Win32\Debug');
186+
187+
end;
188+
end;
189+
190+
//Build - Win64
191+
WizardForm.StatusLabel.Caption:= 'Compiling Win64...';
192+
Params:='';
193+
Params:=basicParams+'Win64 ';
194+
BPLDir:=ExpandConstant('{app}')+'\Bpl';
195+
Params:=Params+'"'+BPLDir+'\Win64"';
196+
197+
Exec(ExpandConstant('{tmp}')+'\CompileSource.bat',
198+
Params,
199+
'',
200+
SW_HIDE, ewWaitUntilTerminated, ResultCode);
201+
if ResultCode<>0 then
202+
MsgBox('Error while compiling for Win64', mbInformation, mb_OK)
203+
else
204+
begin
205+
//Folders - Win64
206+
InstallIDEPackage:=true;
207+
WizardForm.StatusLabel.Caption:= 'Registering Win64 Folders...';
208+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win64','Search Path', cmdLine) then
209+
begin
210+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package', cmdLine)=0 then
211+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win64','Search Path',
212+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package');
213+
214+
if Pos(ExpandConstant('{app}')+'\SourceCode\SupportCode', cmdLine)=0 then;
215+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win64','Search Path',
216+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\SupportCode');
217+
end;
218+
219+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win64','Debug DCU Path', cmdLine) then
220+
begin
221+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package\Win64\Debug', cmdLine)=0 then
222+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win64','Debug DCU Path',
223+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package\Win64\Debug');
224+
225+
end;
226+
end;
227+
//Build - OSX32
228+
WizardForm.StatusLabel.Caption:= 'Compiling OSX32...';
229+
Params:='';
230+
Params:=basicParams+'OSX32 ';
231+
BPLDir:=ExpandConstant('{app}')+'\Bpl';
232+
Params:=Params+'"'+BPLDir+'\OSX32"';
233+
234+
Exec(ExpandConstant('{tmp}')+'\CompileSource.bat',
235+
Params,
236+
'',
237+
SW_HIDE, ewWaitUntilTerminated, ResultCode);
238+
if ResultCode<>0 then
239+
MsgBox('Error while compiling for Win64', mbInformation, mb_OK)
240+
else
241+
begin
242+
//Folders - OSX32
243+
InstallIDEPackage:=true;
244+
WizardForm.StatusLabel.Caption:= 'Registering OSX32 Folders...';
245+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\OSX32','Search Path', cmdLine) then
246+
begin
247+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package', cmdLine)=0 then
248+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\OSX32','Search Path',
249+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package');
250+
251+
if Pos(ExpandConstant('{app}')+'\SourceCode\SupportCode', cmdLine)=0 then;
252+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\OSX32','Search Path',
253+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\SupportCode');
254+
end;
255+
256+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\OSX32','Debug DCU Path', cmdLine) then
257+
begin
258+
if Pos(ExpandConstant('{app}')+'\SourceCode\Package\OSX32\Debug', cmdLine)=0 then
259+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\OSX32','Debug DCU Path',
260+
cmdLine+';'+ExpandConstant('{app}')+'\SourceCode\Package\OSX32\Debug');
261+
262+
end;
263+
end;
264+
265+
DeleteFile(ExpandConstant('{tmp}')+'\CompileSource.bat');
266+
267+
//Copy packages to locations
268+
269+
//IDE Package
270+
if InstallIDEPackage then
271+
begin
272+
WizardForm.StatusLabel.Caption:= 'Registering IDE Package';
273+
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\Embarcadero\BDS\18.0\Known Packages',
274+
ExpandConstant('{app}')+'\Bpl\neTabControlPackage.bpl', 'NusEnvision FMX neTabControl');
275+
end;
276+
end
277+
else
278+
WizardForm.StatusLabel.Caption:= 'Delphi installation not found';
279+
end;
280+
end;
281+
282+
//Uninstall
283+
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
284+
var
285+
delStr,
286+
fullStr: string;
287+
begin
288+
if (CurUninstallStep=usPostUninstall) then
289+
begin
290+
//Registry
291+
RegDeleteValue(HKEY_CURRENT_USER, 'Software\Embarcadero\BDS\18.0\Known Packages',
292+
ExpandConstant('{app}')+'\Bpl\neTabControlPackage.bpl');
293+
//Folders - Win32
294+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Search Path', fullStr) then
295+
begin
296+
delStr:=ExpandConstant('{app}')+'\SourceCode\Package';
297+
if Pos(delStr, fullStr)>0 then
298+
begin
299+
Delete(fullStr, Pos(delStr, fullStr), length(delStr)+1);
300+
delStr:=ExpandConstant('{app}')+'\SourceCode\SupportCode';
301+
if Pos(delStr, fullStr)>0 then
302+
begin
303+
Delete(fullStr, Pos(delStr, fullStr), length(delStr)+1);
304+
end;
305+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Search Path', fullStr);
306+
end;
307+
end;
308+
309+
if RegQueryStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Debug DCU Path', fullStr) then
310+
begin
311+
delStr:=ExpandConstant('{app}')+'\SourceCode\Package\Win32\Debug';
312+
if Pos(delStr, fullStr)>0 then
313+
begin
314+
Delete(fullStr, Pos(delStr, fullStr), length(delStr)+1);
315+
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Embarcadero\BDS\18.0\Library\Win32','Debug DCU Path', fullStr);
316+
end;
317+
end;
318+
end;
319+
end;
320+
321+
function InitializeSetup(): Boolean;
322+
begin
323+
if DirExists(ExpandConstant('{#Delphi101BerlinPath}')) then
324+
begin
325+
IsAvailableDelphi101Berlin:=true;
326+
result:=true;
327+
end
328+
else
329+
begin
330+
IsAvailableDelphi101Berlin:=false;
331+
If MsgBox('Delphi 10.1 Berlin has not been detected in your system.'+#10+#13+
332+
'If you continue, only the code will be installed.'+#13+#10+
333+
'If you have another Delphi installation, you need to install the IDE package manually.'+#13+#10+
334+
'Would you like to continue?', mbConfirmation, mb_YESNO)=IDNO then
335+
result:=false
336+
else
337+
result:=true;
338+
end;
339+
end;

Screenshots/Thumbs.db

-80 KB
Binary file not shown.
1.18 MB
Binary file not shown.

0 commit comments

Comments
 (0)