1{$ifndef ALLPACKAGES}
2{$mode objfpc}{$H+}
3program fpmake;
4
5uses
6  fpmkunit,
7  sysutils,
8  classes;
9{$endif ALLPACKAGES}
10
11function IdeGetApplicationName: string;
12begin
13  result := 'lazarus';
14end;
15
16procedure IdeBeforeCompileProc(Sender: TObject);
17var
18  P : TPackage;
19  BE: TBuildEngine;
20  Inst : TCustomInstaller;
21  StoreAppName : TGetAppNameEvent;
22  StaticPackages : TStringList;
23  StaticPackagesFilename: string;
24  i : integer;
25  S: String;
26  AStream: TFileStream;
27
28  procedure AddDesignPackage(APackageName: string; AStaticPackages: TStrings);
29  begin
30    BE.Log(vlCommand,'  Package '+APackageName+' added to designtime-packages.');
31    P.Dependencies.Add(APackageName);
32    AStaticPackages.Add(APackageName);
33  end;
34
35  procedure ScanForInstalledDesignPackages(AStartPath: string; AStaticPackages: TStrings);
36  var
37    sr: TSearchRec;
38    res: LongInt;
39    APackage : TPackage;
40    AFile: string;
41  begin
42    if AStartPath='' then
43      Exit;
44    APackage := TPackage.Create(nil);
45    try
46      // Scan for Designtime-packages within the installed packages
47      AStartPath:=IncludeTrailingPathDelimiter(AStartPath)+'fpmkinst'+PathDelim+Defaults.Target+PathDelim;
48      res := FindFirst(AStartPath+'*'+FpmkExt,faAnyFile-faDirectory,sr);
49      while res=0 do
50        begin
51          AFile:=AStartPath+sr.Name;
52          APackage.LoadUnitConfigFromFile(AFile);
53          if APackage.Flags.IndexOf('LazarusDsgnPkg')>-1 then
54            AddDesignPackage(ChangeFileExt(sr.Name, ''),AStaticPackages);
55          res := FindNext(sr);
56        end;
57    finally
58      APackage.Free;
59    end;
60  end;
61
62begin
63  // Search in all available packages fo packages with the 'LazasurDsgnPkg'-flag.
64  // Add those packages to the staticpackages.inc include file so that they are
65  // linked into the IDE.
66  Inst := sender as TCustomInstaller;
67  P := Inst.Packages.Packages['lazaruside'];
68  BE := Inst.BuildEngine;
69  BE.Log(vlCommand,'Start searching for designtime packages.');
70
71  StoreAppName:=OnGetApplicationName;
72  OnGetApplicationName:=@IdeGetApplicationName;
73  ForceDirectories(GetAppConfigDir(false));
74  StaticPackagesFilename:=GetAppConfigDir(false)+'staticpackages.inc';
75  OnGetApplicationName:=StoreAppName;
76
77  P.IncludePath.Add(ExtractFilePath(StaticPackagesFilename));
78
79  // Search for Designtime-packages and add those to the dependencies and
80  // staticpackages.inc
81  StaticPackages := TStringList.Create;
82  StaticPackages.Sorted:=true;
83  StaticPackages.Duplicates:=dupIgnore;
84  try
85    // Scan for Designtime-packages within the set of packages being compiled
86    for i := 0 to Inst.Packages.Count-1 do
87      begin
88      if Inst.Packages.PackageItems[i].Flags.IndexOf('LazarusDsgnPkg')>-1 then
89        AddDesignPackage(Inst.Packages.PackageItems[i].Name, StaticPackages);
90      end;
91
92    ScanForInstalledDesignPackages(Defaults.LocalUnitDir, StaticPackages);
93    ScanForInstalledDesignPackages(Defaults.GlobalUnitDir, StaticPackages);
94
95    // Write staticpackages.inc
96    S:=StaticPackages.DelimitedText;
97    AStream := TFileStream.Create(StaticPackagesFilename,fmCreate);
98    try
99      if length(s)>0 then
100        begin
101        AStream.WriteBuffer(s[1],length(S));
102        AStream.WriteByte(ord(','));
103        end;
104    finally
105      AStream.Free;
106    end;
107  finally
108    StaticPackages.Free;
109  end;
110end;
111
112procedure add_ide(const ADirectory: string);
113
114var
115  P : TPackage;
116  T : TTarget;
117
118begin
119  with Installer do
120    begin
121    P:=AddPAckage('lazaruside');
122    P.Version:='1.3';
123    NotifyEventCollection.AppendProcEvent(neaBeforeCompile, @IdeBeforeCompileProc);
124
125    P.Directory:=ADirectory;
126
127    P.Dependencies.Add('fcl');
128    P.Dependencies.Add('lazutils');
129    P.Dependencies.Add('buildintf');
130    P.Dependencies.Add('lcl');
131    P.Dependencies.Add('codetools');
132    P.Dependencies.Add('lazcontrols');
133    P.Dependencies.Add('ideintf');
134    P.Dependencies.Add('synedit');
135    P.Dependencies.Add('debuggerintf');
136    P.Dependencies.Add('lazdebuggergdbmi');
137
138    P.Options.Add('-MObjFPC');
139    P.Options.Add('-Scghi');
140    P.Options.Add('-O1');
141    P.Options.Add('-gl');
142    P.Options.Add('-vewnhi');
143    P.Options.Add('-l');
144    P.Options.Add('-dLCL');
145    P.Options.Add('-dLCL$(LCLWidgetType)');
146    P.Options.Add('-dAddStaticPkgs');
147
148    P.IncludePath.Add('include');
149    P.IncludePath.Add('include/$(OS)');
150    P.UnitPath.Add('.');
151    P.UnitPath.Add('../designer');
152    P.UnitPath.Add('../debugger');
153    P.UnitPath.Add('../debugger/frames');
154    P.UnitPath.Add('../converter');
155    P.UnitPath.Add('../packager');
156    P.UnitPath.Add('../packager/frames');
157    P.UnitPath.Add('frames');
158
159    T := P.Targets.AddProgram('lazarus.pp');
160    t.Dependencies.AddUnit('packagesystem');
161    t.Dependencies.AddUnit('addfiletoapackagedlg');
162    t.Dependencies.AddUnit('addtopackagedlg');
163    t.Dependencies.AddUnit('basepkgmanager');
164    t.Dependencies.AddUnit('brokendependenciesdlg');
165    t.Dependencies.AddUnit('confirmpkglistdlg');
166    t.Dependencies.AddUnit('package_description_options');
167    t.Dependencies.AddUnit('package_i18n_options');
168    t.Dependencies.AddUnit('package_integration_options');
169    t.Dependencies.AddUnit('package_provides_options');
170    t.Dependencies.AddUnit('package_usage_options');
171    t.Dependencies.AddUnit('installpkgsetdlg');
172    t.Dependencies.AddUnit('missingpkgfilesdlg');
173    t.Dependencies.AddUnit('openinstalledpkgdlg');
174    t.Dependencies.AddUnit('packagedefs');
175    t.Dependencies.AddUnit('packageeditor');
176    t.Dependencies.AddUnit('packagelinks');
177    t.Dependencies.AddUnit('pkggraphexplorer');
178    t.Dependencies.AddUnit('pkglinksdlg');
179    t.Dependencies.AddUnit('pkgmanager');
180    t.Dependencies.AddUnit('pkgvirtualuniteditor');
181    t.Dependencies.AddUnit('assemblerdlg');
182    t.Dependencies.AddUnit('breakpointsdlg');
183    t.Dependencies.AddUnit('breakpropertydlg');
184    t.Dependencies.AddUnit('breakpropertydlggroups');
185    t.Dependencies.AddUnit('callstackdlg');
186    t.Dependencies.AddUnit('debugeventsform');
187    t.Dependencies.AddUnit('debugger');
188    t.Dependencies.AddUnit('debuggerdlg');
189    t.Dependencies.AddUnit('debugoutputform');
190    t.Dependencies.AddUnit('evaluatedlg');
191    t.Dependencies.AddUnit('exceptiondlg');
192    t.Dependencies.AddUnit('feedbackdlg');
193    t.Dependencies.AddUnit('historydlg');
194    t.Dependencies.AddUnit('inspectdlg');
195    t.Dependencies.AddUnit('localsdlg');
196    t.Dependencies.AddUnit('processdebugger');
197    t.Dependencies.AddUnit('processlist');
198    t.Dependencies.AddUnit('pseudoterminaldlg');
199    t.Dependencies.AddUnit('registersdlg');
200    t.Dependencies.AddUnit('threaddlg');
201    t.Dependencies.AddUnit('watchesdlg');
202    t.Dependencies.AddUnit('watchpropertydlg');
203
204    P.Sources.AddSrc('aboutfrm.pas');
205    P.Sources.AddSrc('abstractsmethodsdlg.pas');
206    P.Sources.AddSrc('addprofiledialog.pas');
207    P.Sources.AddSrc('addtoprojectdlg.pas');
208    P.Sources.AddSrc('applicationbundle.pas');
209    P.Sources.AddSrc('basebuildmanager.pas');
210    P.Sources.AddSrc('basedebugmanager.pas');
211    P.Sources.AddSrc('buildfiledlg.pas');
212    P.Sources.AddSrc('buildlazdialog.pas');
213    P.Sources.AddSrc('buildmanager.pas');
214    P.Sources.AddSrc('buildmodediffdlg.pas');
215    P.Sources.AddSrc('buildprofilemanager.pas');
216    P.Sources.AddSrc('charactermapdlg.pas');
217    P.Sources.AddSrc('checkcompileropts.pas');
218    P.Sources.AddSrc('checklfmdlg.pas');
219    P.Sources.AddSrc('cleandirdlg.pas');
220    P.Sources.AddSrc('clipboardhistory.pas');
221    P.Sources.AddSrc('codebrowser.pas');
222    P.Sources.AddSrc('codecontextform.pas');
223    P.Sources.AddSrc('codeexplopts.pas');
224    P.Sources.AddSrc('codeexplorer.pas');
225    P.Sources.AddSrc('codehelp.pas');
226    P.Sources.AddSrc('codemacroprompt.pas');
227    P.Sources.AddSrc('codemacroselect.pas');
228    P.Sources.AddSrc('codetemplatesdlg.pas');
229    P.Sources.AddSrc('codetoolsdefines.pas');
230    P.Sources.AddSrc('codetoolsdefpreview.pas');
231    P.Sources.AddSrc('codetoolsoptions.pas');
232    P.Sources.AddSrc('compatibilityrestrictions.pas');
233    P.Sources.AddSrc('compiler.pp');
234    P.Sources.AddSrc('componentlist.pas');
235    P.Sources.AddSrc('componentpalette.pas');
236    P.Sources.AddSrc('compoptsmodes.pas');
237    P.Sources.AddSrc('customformeditor.pp');
238    P.Sources.AddSrc('debugmanager.pas');
239    P.Sources.AddSrc('dialogprocs.pas');
240    P.Sources.AddSrc('diffdialog.pas');
241    P.Sources.AddSrc('diffpatch.pas');
242    P.Sources.AddSrc('diskdiffsdialog.pas');
243    P.Sources.AddSrc('editdefinetree.pas');
244    P.Sources.AddSrc('editmsgscannersdlg.pas');
245    P.Sources.AddSrc('editoroptions.pp');
246    P.Sources.AddSrc('emptymethodsdlg.pas');
247    P.Sources.AddSrc('encloseifdef.pas');
248    P.Sources.AddSrc('encloseselectiondlg.pas');
249    P.Sources.AddSrc('extractprocdlg.pas');
250    P.Sources.AddSrc('exttooldialog.pas');
251    P.Sources.AddSrc('exttooleditdlg.pas');
252    P.Sources.AddSrc('findinfilesdlg.pas');
253    P.Sources.AddSrc('findoverloadsdlg.pas');
254    P.Sources.AddSrc('findpalettecomp.pas');
255    P.Sources.AddSrc('findrenameidentifier.pas');
256    P.Sources.AddSrc('findreplacedialog.pp');
257    P.Sources.AddSrc('findunitdlg.pas');
258    P.Sources.AddSrc('formeditor.pp');
259    P.Sources.AddSrc('fpcsrcscan.pas');
260    P.Sources.AddSrc('fpdoceditwindow.pas');
261    P.Sources.AddSrc('fpdochints.pas');
262    P.Sources.AddSrc('fpdocselectinherited.pas');
263    P.Sources.AddSrc('fpdocselectlink.pas');
264    P.Sources.AddSrc('frames/atom_checkboxes_options.pas');
265    P.Sources.AddSrc('frames/backup_options.pas');
266    P.Sources.AddSrc('frames/buildmodeseditor.pas');
267    P.Sources.AddSrc('frames/codeexplorer_categories_options.pas');
268    P.Sources.AddSrc('frames/codeexplorer_update_options.pas');
269    P.Sources.AddSrc('frames/codeobserver_options.pas');
270    P.Sources.AddSrc('frames/codetools_classcompletion_options.pas');
271    P.Sources.AddSrc('frames/codetools_codecreation_options.pas');
272    P.Sources.AddSrc('frames/codetools_general_options.pas');
273    P.Sources.AddSrc('frames/codetools_identifiercompletion_options.pas');
274    P.Sources.AddSrc('frames/codetools_linesplitting_options.pas');
275    P.Sources.AddSrc('frames/codetools_space_options.pas');
276    P.Sources.AddSrc('frames/codetools_wordpolicy_options.pas');
277    P.Sources.AddSrc('frames/compiler_buildmacro_options.pas');
278    P.Sources.AddSrc('frames/compiler_codegen_options.pas');
279    P.Sources.AddSrc('frames/compiler_compilation_options.pas');
280    P.Sources.AddSrc('frames/compiler_config_target.pas');
281    P.Sources.AddSrc('frames/compiler_debugging_options.pas');
282    P.Sources.AddSrc('frames/compiler_messages_options.pas');
283    P.Sources.AddSrc('frames/compiler_other_options.pas');
284    P.Sources.AddSrc('frames/compiler_parsing_options.pas');
285    P.Sources.AddSrc('frames/compiler_path_options.pas');
286    P.Sources.AddSrc('frames/compiler_verbosity_options.pas');
287    P.Sources.AddSrc('frames/desktop_options.pas');
288    P.Sources.AddSrc('frames/editor_codefolding_options.pas');
289    P.Sources.AddSrc('frames/editor_codetools_options.pas');
290    P.Sources.AddSrc('frames/editor_color_options.pas');
291    P.Sources.AddSrc('frames/editor_display_options.pas');
292    P.Sources.AddSrc('frames/editor_dividerdraw_options.pas');
293    P.Sources.AddSrc('frames/editor_general_misc_options.pas');
294    P.Sources.AddSrc('frames/editor_general_options.pas');
295    P.Sources.AddSrc('frames/editor_keymapping_options.pas');
296    P.Sources.AddSrc('frames/editor_mouseaction_options.pas');
297    P.Sources.AddSrc('frames/editor_mouseaction_options_advanced.pas');
298    P.Sources.AddSrc('frames/editor_multiwindow_options.pas');
299    P.Sources.AddSrc('frames/files_options.pas');
300    P.Sources.AddSrc('frames/componentpalette_options.pas');
301    P.Sources.AddSrc('frames/formed_options.pas');
302    P.Sources.AddSrc('frames/fpdoc_options.pas');
303    P.Sources.AddSrc('frames/help_general_options.pas');
304    P.Sources.AddSrc('frames/naming_options.pas');
305    P.Sources.AddSrc('frames/oi_options.pas');
306    P.Sources.AddSrc('frames/project_application_options.pas');
307    P.Sources.AddSrc('frames/project_forms_options.pas');
308    P.Sources.AddSrc('frames/project_i18n_options.pas');
309    P.Sources.AddSrc('frames/project_lazdoc_options.pas');
310    P.Sources.AddSrc('frames/project_misc_options.pas');
311    P.Sources.AddSrc('frames/project_save_options.pas');
312    P.Sources.AddSrc('frames/project_versioninfo_options.pas');
313    P.Sources.AddSrc('frames/window_options.pas');
314    P.Sources.AddSrc('frmcustomapplicationoptions.pas');
315    P.Sources.AddSrc('gotofrm.pas');
316    P.Sources.AddSrc('helpfpcmessages.pas');
317    P.Sources.AddSrc('helpoptions.pas');
318    P.Sources.AddSrc('idecmdline.pas');
319    P.Sources.AddSrc('idecontexthelpedit.pas');
320    P.Sources.AddSrc('idedefs.pas');
321    P.Sources.AddSrc('idefpcinfo.pas');
322    P.Sources.AddSrc('ideoptiondefs.pas');
323    P.Sources.AddSrc('ideoptionsdlg.pas');
324    P.Sources.AddSrc('ideprocs.pp');
325    P.Sources.AddSrc('ideprotocol.pas');
326    P.Sources.AddSrc('idetranslations.pas');
327    P.Sources.AddSrc('idewindowhelp.pas');
328    P.Sources.AddSrc('imexportcompileropts.pas');
329    P.Sources.AddSrc('infobuild.pp');
330    P.Sources.AddSrc('initialsetupdlgs.pas');
331    P.Sources.AddSrc('inputfiledialog.pas');
332    P.Sources.AddSrc('inputhistory.pas');
333    P.Sources.AddSrc('invertassigntool.pas');
334    P.Sources.AddSrc('jumphistoryview.pas');
335    P.Sources.AddSrc('keymapping.pp');
336    P.Sources.AddSrc('keymapschemedlg.pas');
337    P.Sources.AddSrc('keymapshortcutdlg.pas');
338    P.Sources.AddSrc('lazarus.pp');
339    P.Sources.AddSrc('lazarusmanager.pas');
340    P.Sources.AddSrc('lazconf.pp');
341    P.Sources.AddSrc('macropromptdlg.pas');
342    P.Sources.AddSrc('main.pp');
343    P.Sources.AddSrc('mainbar.pas');
344    P.Sources.AddSrc('mainbase.pas');
345    P.Sources.AddSrc('mainintf.pas');
346    P.Sources.AddSrc('makeresstrdlg.pas');
347    P.Sources.AddSrc('miscoptions.pas');
348    P.Sources.AddSrc('mouseactiondialog.pas');
349    P.Sources.AddSrc('msgquickfixes.pas');
350    P.Sources.AddSrc('msgview.pp');
351    P.Sources.AddSrc('msgvieweditor.pas');
352    P.Sources.AddSrc('newdialog.pas');
353    P.Sources.AddSrc('newprojectdlg.pp');
354    P.Sources.AddSrc('outputfilter.pas');
355    P.Sources.AddSrc('patheditordlg.pas');
356    P.Sources.AddSrc('procedurelist.pas');
357    P.Sources.AddSrc('progressdlg.pas');
358    P.Sources.AddSrc('progresswnd.pas');
359    P.Sources.AddSrc('project.pp');
360    P.Sources.AddSrc('projectdefs.pas');
361    P.Sources.AddSrc('projecticon.pas');
362    P.Sources.AddSrc('projectinspector.pas');
363    P.Sources.AddSrc('projectresources.pas');
364    P.Sources.AddSrc('projectwizarddlg.pas');
365    P.Sources.AddSrc('publishmoduledlg.pas');
366    P.Sources.AddSrc('restrictionbrowser.pas');
367    P.Sources.AddSrc('runparamsopts.pas');
368    P.Sources.AddSrc('searchfrm.pas');
369    P.Sources.AddSrc('searchresultview.pp');
370    P.Sources.AddSrc('showcompileropts.pas');
371    P.Sources.AddSrc('showdeletingfilesdlg.pas');
372    P.Sources.AddSrc('sortselectiondlg.pas');
373    P.Sources.AddSrc('sourceeditor.pp');
374    P.Sources.AddSrc('sourceeditprocs.pas');
375    P.Sources.AddSrc('sourcemarks.pas');
376    P.Sources.AddSrc('sourcesyneditor.pas');
377    P.Sources.AddSrc('splash.pp');
378    P.Sources.AddSrc('srcedithintfrm.pas');
379    P.Sources.AddSrc('sysvaruseroverridedlg.pas');
380    P.Sources.AddSrc('transfermacros.pp');
381    P.Sources.AddSrc('unitdependencies.pas');
382    P.Sources.AddSrc('unitinfodlg.pp');
383    P.Sources.AddSrc('unusedunitsdlg.pas');
384    P.Sources.AddSrc('viewunit_dlg.pp');
385    P.Sources.AddSrc('w32manifest.pas');
386    P.Sources.AddSrc('w32versioninfo.pas');
387    P.Sources.AddSrc('wordcompletion.pp');
388    T:=P.Targets.AddUnit('../packager/packagesystem.pas');
389    T.Dependencies.AddUnit('lazarusidestrconsts');
390    T.Dependencies.AddUnit('environmentopts');
391    T.Dependencies.AddUnit('compileroptions');
392    T.Dependencies.AddUnit('packagedefs');
393    T:=P.Targets.AddUnit('../packager/adddirtopkgdlg.pas');
394    T:=P.Targets.AddUnit('../packager/addfiletoapackagedlg.pas');
395    T:=P.Targets.AddUnit('../packager/addtopackagedlg.pas');
396    T:=P.Targets.AddUnit('../packager/basepkgmanager.pas');
397    T:=P.Targets.AddUnit('../packager/brokendependenciesdlg.pas');
398    T:=P.Targets.AddUnit('../packager/confirmpkglistdlg.pas');
399    T:=P.Targets.AddUnit('../packager/frames/package_description_options.pas');
400    T:=P.Targets.AddUnit('../packager/frames/package_i18n_options.pas');
401    T:=P.Targets.AddUnit('../packager/frames/package_integration_options.pas');
402    T:=P.Targets.AddUnit('../packager/frames/package_provides_options.pas');
403    T:=P.Targets.AddUnit('../packager/frames/package_usage_options.pas');
404    T:=P.Targets.AddUnit('../packager/installpkgsetdlg.pas');
405    T:=P.Targets.AddUnit('../packager/missingpkgfilesdlg.pas');
406    T:=P.Targets.AddUnit('../packager/openinstalledpkgdlg.pas');
407    T:=P.Targets.AddUnit('../packager/packagedefs.pas');
408    T.Dependencies.AddUnit('projpackcommon');
409    T:=P.Targets.AddUnit('../packager/packageeditor.pas');
410    T:=P.Targets.AddUnit('../packager/packagelinks.pas');
411    T:=P.Targets.AddUnit('../packager/pkggraphexplorer.pas');
412    T:=P.Targets.AddUnit('../packager/pkglinksdlg.pas');
413    T:=P.Targets.AddUnit('../packager/pkgmanager.pas');
414    T:=P.Targets.AddUnit('../packager/pkgvirtualuniteditor.pas');
415    T:=P.Targets.AddUnit('../debugger/assemblerdlg.pp');
416    T:=P.Targets.AddUnit('../debugger/breakpointsdlg.pp');
417    T:=P.Targets.AddUnit('../debugger/breakpropertydlg.pas');
418    T:=P.Targets.AddUnit('../debugger/breakpropertydlggroups.pas');
419    T:=P.Targets.AddUnit('../debugger/callstackdlg.pp');
420    T:=P.Targets.AddUnit('../debugger/debugeventsform.pp');
421    T:=P.Targets.AddUnit('../debugger/debugger.pp');
422    T:=P.Targets.AddUnit('../debugger/debuggerdlg.pp');
423    T:=P.Targets.AddUnit('../debugger/debugoutputform.pp');
424    T:=P.Targets.AddUnit('../debugger/evaluatedlg.pp');
425    T:=P.Targets.AddUnit('../debugger/exceptiondlg.pas');
426    T:=P.Targets.AddUnit('../debugger/feedbackdlg.pp');
427    T:=P.Targets.AddUnit('../debugger/historydlg.pp');
428    T:=P.Targets.AddUnit('../debugger/inspectdlg.pas');
429    T:=P.Targets.AddUnit('../debugger/localsdlg.pp');
430    T:=P.Targets.AddUnit('../debugger/processdebugger.pp');
431    T:=P.Targets.AddUnit('../debugger/processlist.pas');
432    T:=P.Targets.AddUnit('../debugger/pseudoterminaldlg.pp');
433    T:=P.Targets.AddUnit('../debugger/registersdlg.pp');
434    T:=P.Targets.AddUnit('../debugger/threaddlg.pp');
435    T:=P.Targets.AddUnit('../debugger/watchesdlg.pp');
436    T:=P.Targets.AddUnit('../debugger/watchpropertydlg.pp');
437    T:=P.Targets.AddUnit('lazarusidestrconsts.pas');
438    T:=P.Targets.AddUnit('environmentopts.pp');
439    T:=P.Targets.AddUnit('compileroptions.pp');
440    T:=P.Targets.AddUnit('../packager/projpackcommon.pas');
441
442    // copy the compiled file, so the IDE knows how the package was compiled
443    P.InstallFiles.Add('ide.compiled',AllOSes,'$(unitinstalldir)');
444
445    end;
446end;
447
448{$ifndef ALLPACKAGES}
449begin
450  add_ide('');
451  Installer.Run;
452end.
453{$endif ALLPACKAGES}
454