From 81c82efbebf22b9034404b468b2fa7fe15bd6af3 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 25 Jan 2008 00:21:19 +0000 Subject: [PATCH] * regenerated git-svn-id: trunk@9918 - --- utils/fppkg/fpmkunitsrc.inc | 2282 ++++++++++++++++++----------------- 1 file changed, 1165 insertions(+), 1117 deletions(-) diff --git a/utils/fppkg/fpmkunitsrc.inc b/utils/fppkg/fpmkunitsrc.inc index 0fd3827184..d56ed38855 100644 --- a/utils/fppkg/fpmkunitsrc.inc +++ b/utils/fppkg/fpmkunitsrc.inc @@ -1,7 +1,7 @@ {$ifdef Delphi} -const fpmkunitsrc : array[0..573] of string[240]=( +const fpmkunitsrc : array[0..577] of string[240]=( {$else Delphi} -const fpmkunitsrc : array[0..573,1..240] of char=( +const fpmkunitsrc : array[0..577,1..240] of char=( {$endif Delphi} '{'#010+ ' This file is part of the Free Pascal Makefile Package'#010+ @@ -583,12 +583,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' FExamplePath,'#010+ ' FTestPath,'#010+ ' FCleanFiles,'#010+ - ' FArchiveFiles,'#010+ ' FInstallFiles : TConditionalStrings;'#010+ ' FDependencies : TDependencies;'#010+ ' FCPUs: TCPUs;'#010+ - ' FO','Ses: TOSes;'#010+ - ' FTargetState: TTargetState;'#010+ + ' FOSes: TOSes;'#010+ + ' FTa','rgetState: TTargetState;'#010+ ' FTargets: TTargets;'#010+ ' FSources: TSources;'#010+ ' FDirectory: String;'#010+ @@ -597,87 +596,87 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' FAuthor: String;'#010+ ' FLicense: String;'#010+ ' FExternalURL: String;'#010+ - ' FVersi','on: String;'#010+ - ' FEmail : String;'#010+ + ' FVersion: String;'#010+ + ' FEm','ail : String;'#010+ ' FNeedLibC : Boolean;'#010+ ' FCommands : TCommands;'#010+ ' FDescriptionFile : String;'#010+ ' FDescription : String;'#010+ ' // Cached directory of installed packages'#010+ ' FUnitDir : String;'#010+ - ' Function GetDescription ',': string;'#010+ - ' Function GetFileName : string;'#010+ + ' Function GetDescription : string;'#010+ + ' Funct','ion GetFileName : string;'#010+ ' Protected'#010+ ' procedure SetName(const AValue: String);override;'#010+ ' procedure LoadUnitConfigFromFile(Const AFileName: String);'#010+ - ' procedure SaveUnitConfigToFile(Const AFileName: String;ACPU:TC','PU'+ - ';AOS:TOS);'#010+ - ' procedure SaveUnitConfigToStream(S : TStream;ACPU:TCPU;AOS:TOS);'#010+ + ' procedure SaveUnitConfigToFile(Const AFileName: String;ACPU:TCPU;A'+ + 'OS:TOS);'#010+ + ' pr','ocedure SaveUnitConfigToStream(S : TStream;ACPU:TCPU;AOS:TOS);'+ + #010+ ' procedure LoadUnitConfigFromStream(S: TStream);'#010+ ' Public'#010+ ' constructor Create(ACollection: TCollection); override;'#010+ ' destructor destroy; override;'#010+ - ' ',' Procedure GetCleanFiles(List : TStrings; Const APrefixU, APrefix'+ + ' Procedure GetClean','Files(List : TStrings; Const APrefixU, APrefix'+ 'B : String; ACPU:TCPU; AOS : TOS); virtual;'#010+ ' procedure GetInstallFiles(List: TStrings;Types : TTargetTypes;Cons'+ - 't APrefix, APrefixU, APrefixB: String; ACPU:TCPU; AOS : TOS);',#010+ - ' Procedure GetArchiveFiles(List : TStrings; ACPU:TCPU; AOS : TOS); '+ - 'virtual;'#010+ + 't APrefix, APrefixU, APrefixB: String; ACPU:TCPU; AOS : TOS);'#010+ + ' Procedure GetA','rchiveFiles(List : TStrings; ACPU:TCPU; AOS : TOS)'+ + '; virtual;'#010+ ' Procedure GetManifest(Manifest : TStrings);'#010+ ' Property Version : String Read FVersion Write FVersion;'#010+ - ' Property FileName : String Read GetFileName Writ','e FFileName;'#010+ - ' Property ExternalURL : String Read FExternalURL Write FExternalURL'+ - ';'#010+ + ' Property FileName : String Read GetFileName Write FFileName;'#010+ + ' Pr','operty ExternalURL : String Read FExternalURL Write FExternalU'+ + 'RL;'#010+ ' Property Email : String Read FEmail Write FEmail;'#010+ ' Property Author : String Read FAuthor Write FAuthor;'#010+ - ' Property License : String Read FLicense ','Write FLicense;'#010+ - ' Property Directory : String Read FDirectory Write FDirectory;'#010+ + ' Property License : String Read FLicense Write FLicense;'#010+ + ' ',' Property Directory : String Read FDirectory Write FDirectory;'#010+ ' Property Description : String Read GetDescription Write FDescripti'+ 'on;'#010+ ' Property DescriptionFile : String Read FDescriptionFile Write FDes'+ - 'criptionFile;'#010, - ' // Compiler options.'#010+ + 'criptionFile;'#010+ + ' // Compiler opt','ions.'#010+ ' Property OSes : TOSes Read FOSes Write FOSes;'#010+ ' Property CPUs : TCPUs Read FCPUs Write FCPUs;'#010+ ' Property NeedLibC : Boolean Read FNeedLibC Write FNeedLibC;'#010+ - ' Property Options: String Read FOptions Write FO','ptions;'#010+ - ' Property UnitPath : TConditionalStrings Read FUnitPath;'#010+ + ' Property Options: String Read FOptions Write FOptions;'#010+ + ' Propert','y UnitPath : TConditionalStrings Read FUnitPath;'#010+ ' Property ObjectPath : TConditionalStrings Read FObjectPath;'#010+ ' Property IncludePath : TConditionalStrings Read FIncludePath;'#010+ - ' Property SourcePath : TConditionalStri','ngs Read FSourcePath;'#010+ + ' Property SourcePath : TConditionalStrings Read FSourcePat','h;'#010+ ' Property ExamplePath : TConditionalStrings Read FExamplePath;'#010+ ' Property TestPath : TConditionalStrings Read FTestPath;'#010+ ' // Targets and dependencies'#010+ - ' Property InstallFiles : TConditionalStrings Read FInstal','lFiles;'#010+ - ' Property CleanFiles : TConditionalStrings Read FCleanFiles;'#010+ - ' Property ArchiveFiles : TConditionalStrings Read FArchiveFiles;'#010+ + ' Property InstallFiles : TConditionalStrings Read FInstallFiles;'#010+ + ' Propert','y CleanFiles : TConditionalStrings Read FCleanFiles;'#010+ ' Property Dependencies : TDependencies Read FDependencies;'#010+ - ' Property Commands : TCommands Read',' FCommands;'#010+ + ' Property Commands : TCommands Read FCommands;'#010+ ' Property State : TTargetState Read FTargetState;'#010+ - ' Property Targets : TTargets Read FTargets;'#010+ + ' Property Targets :',' TTargets Read FTargets;'#010+ ' Property Sources : TSources Read FSources;'#010+ ' Property UnitDir : String Read FUnitDir Write FUnitDir;'#010+ ' // events'#010+ - ' Pro','perty BeforeCompile : TNotifyEvent Read FBeforeCompile Write '+ - 'FBeforeCompile;'#010+ - ' Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAft'+ - 'erCompile;'#010+ + ' Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FB'+ + 'eforeCompile;'#010+ + ' Proper','ty AfterCompile : TNotifyEvent Read FAfterCompile Write FA'+ + 'fterCompile;'#010+ ' Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FB'+ - 'eforeInstall',';'#010+ + 'eforeInstall;'#010+ ' Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAft'+ 'erInstall;'#010+ - ' Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBefor'+ - 'eClean;'#010+ + ' ','Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBef'+ + 'oreClean;'#010+ ' Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterCl'+ 'ean;'#010+ - ' ','Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write '+ - 'FBeforeArchive;'#010+ - ' Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAft'+ - 'erArchive;'#010+ + ' Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FB'+ + 'eforeArchive;'#010+ + ' Pro','perty AfterArchive : TNotifyEvent Read FAfterArchive Write FA'+ + 'fterArchive;'#010+ ' Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write '+ - 'FBeforeMa','nifest;'#010+ + 'FBeforeManifest;'#010+ ' Property AfterManifest : TNotifyEvent Read FAfterManifest Write FA'+ - 'fterManifest;'#010+ + 'fterManif','est;'#010+ ' end;'#010+ #010+ ' { TPackages }'#010+ @@ -685,15 +684,15 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' TPackages = Class(TNamedCollection)'#010+ ' private'#010+ ' function GetPackage(const AName : String): TPackage;'#010+ - ' function GetPa','ckageItem(AIndex : Integer): TPackage;'#010+ - ' procedure SetPackageItem(AIndex : Integer; const AValue: TPackage)'+ - ';'#010+ + ' function GetPackageItem(AIndex : Integer): TPackage;'#010+ + ' procedure SetPackageItem(AIndex : Integer; c','onst AValue: TPackag'+ + 'e);'#010+ ' Public'#010+ ' Function AddPackage(Const AName : String) : TPackage;'#010+ - ' Property Packages[AName : String] : TPackage Read GetPacka','ge ; D'+ - 'efault;'#010+ + ' Property Packages[AName : String] : TPackage Read GetPackage ; Def'+ + 'ault;'#010+ ' Property PackageItems[AIndex : Integer] : TPackage Read GetPackage'+ - 'Item Write SetPackageItem;'#010+ + 'Ite','m Write SetPackageItem;'#010+ ' end;'#010+ #010+ ' { TCustomDefaults }'#010+ @@ -702,104 +701,104 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Private'#010+ ' FArchive: String;'#010+ ' FCompiler: String;'#010+ - ' ','FCopy: String;'#010+ + ' FCopy: String;'#010+ ' FMkDir: String;'#010+ ' FMove: String;'#010+ ' FOptions: String;'#010+ - ' FCPU: TCPU;'#010+ + ' FCPU: T','CPU;'#010+ ' FOS: TOS;'#010+ ' FMode : TCompilerMode;'#010+ ' FCompilerVersion : String;'#010+ ' FPrefix: String;'#010+ ' FLocalUnitDir,'#010+ ' FGlobalUnitDir,'#010+ - ' FBaseInstall','Dir,'#010+ + ' FBaseInstallDir,'#010+ ' FUnitInstallDir,'#010+ ' FBinInstallDir,'#010+ ' FDocInstallDir,'#010+ - ' FExamplesInstallDir : String;'#010+ + ' FExamplesInstallD','ir : String;'#010+ ' FRemove: String;'#010+ ' FTarget: String;'#010+ ' FUnixPaths: Boolean;'#010+ ' FNoFPCCfg: Boolean;'#010+ ' FSourceExt : String;'#010+ - ' function GetLocalUni','tDir: String;'#010+ + ' function GetLocalUnitDir: String;'#010+ ' function GetGlobalUnitDir: String;'#010+ - ' function GetBaseInstallDir: String;'#010+ + ' function GetBaseInstallDir: St','ring;'#010+ ' function GetBinInstallDir: String;'#010+ ' function GetCompiler: String;'#010+ ' function GetDocInstallDir: String;'#010+ - ' function GetExamplesInstallDir:',' String;'#010+ + ' function GetExamplesInstallDir: String;'#010+ ' function GetUnitInstallDir: String;'#010+ - ' procedure SetLocalUnitDir(const AValue: String);'#010+ + ' procedure SetLocalUnitDir(const AV','alue: String);'#010+ ' procedure SetGlobalUnitDir(const AValue: String);'#010+ ' procedure SetBaseInstallDir(const AValue: String);'#010+ - ' procedure SetCPU(const AV','alue: TCPU);'#010+ + ' procedure SetCPU(const AValue: TCPU);'#010+ ' procedure SetOS(const AValue: TOS);'#010+ - ' procedure SetPrefix(const AValue: String);'#010+ + ' procedure SetPrefix(const AVal','ue: String);'#010+ ' procedure SetTarget(const AValue: String);'#010+ ' Protected'#010+ ' procedure RecalcTarget;'#010+ ' Public'#010+ ' Constructor Create;'#010+ - ' Procedure InitDe','faults;'#010+ + ' Procedure InitDefaults;'#010+ ' procedure CompilerDefaults; virtual;'#010+ - ' Procedure LocalInit(Const AFileName : String);'#010+ + ' Procedure LocalInit(Const AFileNam','e : String);'#010+ ' Procedure LoadFromFile(Const AFileName : String);'#010+ ' Procedure SaveToFile(Const AFileName : String);'#010+ - ' procedure SaveToStream(S : TSt','ream);virtual;'#010+ + ' procedure SaveToStream(S : TStream);virtual;'#010+ ' procedure LoadFromStream(S : TStream);virtual;'#010+ - ' // Compile Information'#010+ + ' // Compile Inform','ation'#010+ ' Property Target : String Read FTarget Write SetTarget;'#010+ ' Property OS : TOS Read FOS Write SetOS;'#010+ - ' Property CPU : TCPU Read FCPU Write SetC','PU;'#010+ + ' Property CPU : TCPU Read FCPU Write SetCPU;'#010+ ' Property Mode : TCompilerMode Read FMode Write FMode;'#010+ - ' Property UnixPaths : Boolean Read FUnixPaths Write FUnixPaths;'#010+ + ' Property UnixPaths : ','Boolean Read FUnixPaths Write FUnixPaths;'#010+ ' Property Options : String Read FOptions Write FOptions; // Defa'+ 'ult compiler options.'#010+ - ' Property Source','Ext : String Read FSourceExt Write FSourceExt;'#010+ - ' Property NoFPCCfg : Boolean Read FNoFPCCfg Write FNoFPCCfg;'#010+ + ' Property SourceExt : String Read FSourceExt Write FSourceExt;'#010+ + ' Property NoFPCCfg : Boolean Read FNo','FPCCfg Write FNoFPCCfg;'#010+ ' // paths etc.'#010+ ' Property LocalUnitDir : String Read GetLocalUnitDir Write SetLocal'+ 'UnitDir;'#010+ - ' Property GlobalUnitDir : Str','ing Read GetGlobalUnitDir Write SetG'+ - 'lobalUnitDir;'#010+ - ' Property Prefix : String Read FPrefix Write SetPrefix;'#010+ + ' Property GlobalUnitDir : String Read GetGlobalUnitDir Write SetGlo'+ + 'balUnitDir;'#010+ + ' Property Prefix : String Read FPr','efix Write SetPrefix;'#010+ ' Property BaseInstallDir : String Read GetBaseInstallDir Write SetB'+ 'aseInstallDir;'#010+ - ' Property UnitInstallDir : String Read GetU','nitInstallDir Write FU'+ - 'nitInstallDir;'#010+ - ' Property BinInstallDir : String Read GetBinInstallDir Write FBinIn'+ - 'stallDir;'#010+ + ' Property UnitInstallDir : String Read GetUnitInstallDir Write FUni'+ + 'tInstallDir;'#010+ + ' Property BinInstallDir : String Read GetBinIns','tallDir Write FBin'+ + 'InstallDir;'#010+ ' Property DocInstallDir : String Read GetDocInstallDir Write FDocIn'+ 'stallDir;'#010+ - ' Property ExamplesInstallDir : String Re','ad GetExamplesInstallDir '+ - 'Write FExamplesInstallDir;'#010+ - ' // Command tools. If not set, internal commands will be used.'#010+ + ' Property ExamplesInstallDir : String Read GetExamplesInstallDir Wr'+ + 'ite FExamplesInstallDir;'#010+ + ' // Command tools. If not set, i','nternal commands will be used.'#010+ ' Property Compiler : String Read GetCompiler Write FCompiler; // Co'+ 'mpiler. Defaults to fpc'#010+ - ' Property Copy : String ','Read FCopy Write FCopy; // co'+ - 'py $(FILES) to $(DEST)'#010+ - ' Property Move : String Read FMove Write FMove; // Move'+ + ' Property Copy : String Read FCopy Write FCopy; // copy'+ ' $(FILES) to $(DEST)'#010+ + ' Property Move : Str','ing Read FMove Write FMove; // Mo'+ + 've $(FILES) to $(DEST)'#010+ ' Property Remove : String Read FRemove Write FRemove; // Dele'+ 'te $(FILES)'#010+ - ' ',' Property MkDir : String Read FMkDir write FMkDir; // Ma'+ - 'ke $(DIRECTORY)'#010+ - ' Property Archive : String Read FArchive Write FArchive; // zip '+ - '$(ARCHIVE) $(FILESORDIRS)'#010+ + ' Property MkDir : String Read FMkDir write FMkDir; // Make'+ + ' $(DIRECTORY)'#010+ + ' Pr','operty Archive : String Read FArchive Write FArchive; // zi'+ + 'p $(ARCHIVE) $(FILESORDIRS)'#010+ ' end;'#010+ #010+ ' { TBasicDefaults }'#010+ #010+ - ' TBasicDefaults = Class(TCustomD','efaults)'#010+ + ' TBasicDefaults = Class(TCustomDefaults)'#010+ ' end;'#010+ #010+ ' { TFPCDefaults }'#010+ #010+ ' TFPCDefaults = Class(TCustomDefaults)'#010+ ' public'#010+ - ' procedure CompilerDefaults; override;'#010+ + ' ',' procedure CompilerDefaults; override;'#010+ ' end;'#010+ #010+ ' { TBuildEngine }'#010+ @@ -807,492 +806,492 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' TBuildEngine = Class(TComponent)'#010+ ' private'#010+ ' // general variables'#010+ - ' FCompiler ',': String;'#010+ + ' FCompiler : String;'#010+ ' FStartDir : String;'#010+ ' FTargetDir : String;'#010+ - ' FForceCompile : Boolean;'#010+ + ' FForceCompile : Boolean;',#010+ ' FListMode : Boolean;'#010+ '{$ifdef HAS_UNIT_ZIPPER}'#010+ ' FZipFile: TZipper;'#010+ '{$endif HAS_UNIT_ZIPPER}'#010+ ' FExternalPackages : TPackages;'#010+ ' // Logging'#010+ - ' ','FLogPrefix : String;'#010+ + ' FLogPrefix : String;'#010+ ' // Events'#010+ ' FOnLog: TLogEvent;'#010+ - ' FAfterArchive: TNotifyEvent;'#010+ + ' FAfterArchive: TNotifyEve','nt;'#010+ ' FAfterClean: TNotifyEvent;'#010+ ' FAfterCompile: TNotifyEvent;'#010+ ' FAfterInstall: TNotifyEvent;'#010+ ' FAfterManifest: TNotifyEvent;'#010+ - ' FBeforeArchive',': TNotifyEvent;'#010+ + ' FBeforeArchive: TNotifyEvent;'#010+ ' FBeforeClean: TNotifyEvent;'#010+ ' FBeforeCompile: TNotifyEvent;'#010+ - ' FBeforeInstall: TNotifyEvent;'#010+ + ' F','BeforeInstall: TNotifyEvent;'#010+ ' FBeforeManifest: TNotifyEvent;'#010+ ' procedure SetTargetDir(const AValue: String);'#010+ ' Protected'#010+ - ' Procedure Error(const M','sg : String);'#010+ + ' Procedure Error(const Msg : String);'#010+ ' Procedure Error(const Fmt : String; const Args : Array of const);'#010+ - ' // Internal copy/delete/move/archive/mkdir files'#010+ + ' ',' // Internal copy/delete/move/archive/mkdir files'#010+ ' Function SysDirectoryExists(const ADir:string):Boolean;'#010+ - ' Function SysFileExists(const AFileNam','e:string):Boolean;'#010+ + ' Function SysFileExists(const AFileName:string):Boolean;'#010+ ' Procedure SysCopyFile(Const Src,Dest : String); virtual;'#010+ - ' Procedure SysMoveFile(Const Src,Dest : String); virtual;'#010+ + ' Pro','cedure SysMoveFile(Const Src,Dest : String); virtual;'#010+ ' Procedure SysDeleteFile(Const AFileName : String); virtual;'#010+ - ' Procedure SysArchiveFiles(List ',': TStrings; Const AFileName : Str'+ - 'ing); virtual;'#010+ + ' Procedure SysArchiveFiles(List : TStrings; Const AFileName : Strin'+ + 'g); virtual;'#010+ ' procedure LogIndent;'#010+ - ' procedure LogUnIndent;'#010+ + ' procedure ','LogUnIndent;'#010+ ' Procedure Log(Level : TVerboseLevel; Const Msg : String);'#010+ ' Procedure Log(Level : TVerboseLevel; Const Fmt : String; const Arg'+ - 's : Arra','y Of Const);'#010+ + 's : Array Of Const);'#010+ ' Procedure EnterDir(ADir : String);'#010+ - ' Function GetCompiler : String;'#010+ + ' Function GetCompiler : String;'#010, ' Function InstallPackageFiles(APAckage : TPackage; tt : TTargetType'+ '; Const Dest : String):Boolean;'#010+ - ' Function FileNewer(const Src,Dest : String) : B','oolean;'#010+ + ' Function FileNewer(const Src,Dest : String) : Boolean;'#010+ ' Procedure LogSearchPath(const ASearchPathName:string;Path:TConditi'+ - 'onalStrings; ACPU:TCPU;AOS:TOS;Const PathPrefix :String='#039#039');'#010+ + 'onalStrin','gs; ACPU:TCPU;AOS:TOS;Const PathPrefix :String='#039#039');'#010+ ' Function FindFileInPath(Path:TConditionalStrings; AFileName:String'+ - '; var FoundPath:String;ACPU:TCP','U;AOS:TOS; Const PathPrefix :String='#039+ + '; var FoundPath:String;ACPU:TCPU;AOS:TOS; Const PathPrefix :String='#039+ #039'):Boolean;'#010+ #010+ ' //package commands'#010+ - ' Procedure ResolveFileNames(APackage : TPackage; ACPU:TCPU;AOS:TOS)'+ - ';'#010+ + ' Procedure ','ResolveFileNames(APackage : TPackage; ACPU:TCPU;AOS:TO'+ + 'S);'#010+ ' Function GetOutputDir(AName: string; APackage : TPackage; Absolut'+ - 'ePath : Boolean = False) ',': String;'#010+ + 'ePath : Boolean = False) : String;'#010+ ' function GetUnitDir(APackage:TPackage):String;'#010+ - ' procedure AddDependencyIncludePaths(L:TStrings;ATarget: TTarget);'#010+ + ' procedure AddDependen','cyIncludePaths(L:TStrings;ATarget: TTarget)'+ + ';'#010+ ' procedure AddDependencyUnitPaths(L:TStrings;APackage: TPackage);'#010+ ' Public'#010+ - ' Constructor Create(AOwner ',': TComponent); override;'#010+ + ' Constructor Create(AOwner : TComponent); override;'#010+ ' destructor Destroy;override;'#010+ - ' // Public Copy/delete/Move/Archive/Mkdir Commands.'#010+ + ' // Public Copy/delete/Mov','e/Archive/Mkdir Commands.'#010+ ' Procedure ExecuteCommand(const Cmd,Args : String; IgnoreError : Bo'+ 'olean = False); virtual;'#010+ - ' Procedure CmdCopyFiles(List ',': TStrings; Const DestDir : String);'+ - #010+ - ' Procedure CmdCreateDir(const DestDir : String);'#010+ + ' Procedure CmdCopyFiles(List : TStrings; Const DestDir : String);'#010+ + ' Procedure CmdCreateDir(const DestDir : String)',';'#010+ ' Procedure CmdMoveFiles(List : TStrings; Const DestDir : String);'#010+ ' Procedure CmdDeleteFiles(List : TStrings);'#010+ - ' Procedure CmdArchiveFiles(List ',': TStrings; Const ArchiveFile : S'+ - 'tring);'#010+ - ' Procedure ExecuteCommands(Commands : TCommands; At : TCommandAt);'#010+ + ' Procedure CmdArchiveFiles(List : TStrings; Const ArchiveFile : Str'+ + 'ing);'#010+ + ' Procedure ExecuteCommands(Commands : TComm','ands; At : TCommandAt)'+ + ';'#010+ ' // Dependency commands'#010+ ' Function DependencyOK(ADependency : TDependency) : Boolean;'#010+ ' // Target commands'#010+ - ' Function ','GetTargetDir(APackage : TPackage; ATarget : TTarget; A'+ - 'bsolutePath : Boolean = False) : String;'#010+ + ' Function GetTargetDir(APackage : TPackage; ATarget : TTarget; Abs'+ + 'olutePath : Boolean = False) : ','String;'#010+ ' Function GetCompilerCommand(APackage : TPackage; ATarget : TTarge'+ 't) : String;'#010+ ' Function TargetOK(ATarget : TTarget) : Boolean;'#010+ - ' Funct','ion NeedsCompile(APackage:TPackage; ATarget : TTarget) : B'+ - 'oolean;'#010+ - ' Procedure Compile(APackage:TPackage; ATarget : TTarget); virtual;'+ - #010+ + ' Function NeedsCompile(APackage:TPackage; ATarget : TTarget) : Boo'+ + 'lean;'#010+ + ' Procedure Compil','e(APackage:TPackage; ATarget : TTarget); virtua'+ + 'l;'#010+ ' Procedure MaybeCompile(APackage:TPackage; ATarget: TTarget);'#010+ - ' Procedure CompileDependencies(APa','ckage:TPackage; ATarget: TTarge'+ - 't);'#010+ + ' Procedure CompileDependencies(APackage:TPackage; ATarget: TTarget)'+ + ';'#010+ ' // Package commands'#010+ - ' Function GetPackageDir(APackage : TPackage; AbsolutePath : Boolea'+ - 'n = False) : String;'#010+ - ' Function GetUnitsOutputDir(APackage : TPackage; AbsolutePath : Bo'+ - 'olean = False) : Str','ing;'#010+ - ' Function GetBinOutputDir(APackage : TPackage; AbsolutePath : Bool'+ + ' Function GetPackageDir(','APackage : TPackage; AbsolutePath : Bool'+ 'ean = False) : String;'#010+ + ' Function GetUnitsOutputDir(APackage : TPackage; AbsolutePath : Bo'+ + 'olean = False) : String;'#010+ + ' Function GetBinOutputDir(APackage : TPackage; AbsolutePath : Bool'+ + 'ean = False)',' : String;'#010+ ' Function PackageOK(APackage : TPackage) : Boolean; virtual;'#010+ ' Procedure DoBeforeCompile(APackage : TPackage);virtual;'#010+ - ' Procedure DoA','fterCompile(APackage : TPackage);virtual;'#010+ - ' Procedure DoBeforeInstall(APackage : TPackage);virtual;'#010+ + ' Procedure DoAfterCompile(APackage : TPackage);virtual;'#010+ + ' Procedure DoBeforeInstall(APackage : TPac','kage);virtual;'#010+ ' Procedure DoAfterInstall(APackage : TPackage);virtual;'#010+ ' Procedure DoBeforeArchive(APackage : TPackage);virtual;'#010+ - ' Procedure DoAft','erArchive(APackage : TPackage);virtual;'#010+ - ' Procedure DoBeforeClean(APackage : TPackage);virtual;'#010+ + ' Procedure DoAfterArchive(APackage : TPackage);virtual;'#010+ + ' Procedure DoBeforeClean(APackage : TPackage',');virtual;'#010+ ' Procedure DoAfterClean(APackage : TPackage);virtual;'#010+ ' Function NeedsCompile(APackage : TPackage) : Boolean; virtual;'#010+ - ' Procedure Comp','ile(APackage : TPackage);'#010+ + ' Procedure Compile(APackage : TPackage);'#010+ ' Procedure MaybeCompile(APackage:TPackage);'#010+ - ' Procedure Install(APackage : TPackage);'#010+ + ' Procedure ','Install(APackage : TPackage);'#010+ ' Procedure Archive(APackage : TPackage);'#010+ ' Procedure Clean(APackage : TPackage);'#010+ - ' Procedure CompileDependencies(APa','ckage : TPackage);'#010+ - ' Procedure GetManifest(APackage : TPackage; Manifest : TStrings);'#010+ + ' Procedure CompileDependencies(APackage : TPackage);'#010+ + ' Procedure GetManifest(APackage : TPackage; Manifest : TStrings);',#010+ ' Function CheckExternalPackage(Const APackageName : String):TPackag'+ 'e;'#010+ ' procedure CreateOutputDir(APackage: TPackage);'#010+ ' // Packages commands'#010+ - ' ',' Procedure Compile(Packages : TPackages);'#010+ - ' Procedure Install(Packages : TPackages);'#010+ + ' Procedure Compile(Packages : TPackages);'#010+ + ' Procedure Install(Packages : TPackages);'#010, ' Procedure Archive(Packages : TPackages);'#010+ ' Procedure Clean(Packages : TPackages);'#010+ - ' Procedure GetManifest(Packages : TPackages; Manifest : TStrin','gs)'+ - ';'#010+ + ' Procedure GetManifest(Packages : TPackages; Manifest : TStrings);'#010+ ' Property ListMode : Boolean Read FListMode Write FListMode;'#010+ - ' Property ForceCompile : Boolean Read FForceCompile Write FForceCom'+ - 'pile;'#010+ + ' Property Force','Compile : Boolean Read FForceCompile Write FForceC'+ + 'ompile;'#010+ '// Property Defaults : TCustomDefaults Read FDefaults Write SetDefa'+ 'ults;'#010+ - ' Property Target','Dir : String Read FTargetDir Write SetTargetDir;'#010+ - ' Property ExternalPackages: TPackages Read FExternalPackages;'#010+ + ' Property TargetDir : String Read FTargetDir Write SetTargetDir;'#010+ + ' Property ExternalPackages: TPackag','es Read FExternalPackages;'#010+ ' // Events'#010+ ' Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FB'+ 'eforeCompile;'#010+ - ' Property AfterCompile : ','TNotifyEvent Read FAfterCompile Write FA'+ - 'fterCompile;'#010+ - ' Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FB'+ - 'eforeInstall;'#010+ + ' Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAft'+ + 'erCompile;'#010+ + ' Property BeforeInstall : TNoti','fyEvent Read FBeforeInstall Write '+ + 'FBeforeInstall;'#010+ ' Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAft'+ 'erInstall;'#010+ - ' Property BeforeCle','an : TNotifyEvent Read FBeforeClean Write FBef'+ - 'oreClean;'#010+ - ' Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterCl'+ - 'ean;'#010+ + ' Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBefor'+ + 'eClean;'#010+ + ' Property AfterClean : TNoti','fyEvent Read FAfterClean Write FAfter'+ + 'Clean;'#010+ ' Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FB'+ 'eforeArchive;'#010+ - ' Property AfterArchive',' : TNotifyEvent Read FAfterArchive Write FA'+ - 'fterArchive;'#010+ - ' Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write '+ - 'FBeforeManifest;'#010+ + ' Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAft'+ + 'erArchive;'#010+ + ' Property BeforeManifest : T','NotifyEvent Read FBeforeManifest Writ'+ + 'e FBeforeManifest;'#010+ ' Property AfterManifest : TNotifyEvent Read FAfterManifest Write FA'+ 'fterManifest;'#010+ - ' Property ','OnLog : TLogEvent Read FOnLog Write FOnlog;'#010+ + ' Property OnLog : TLogEvent Read FOnLog Write FOnlog;'#010+ ' end;'#010+ #010+ ' { TCustomInstaller }'#010+ #010+ - ' TCustomInstaller = Class(TComponent)'#010+ + ' TCustomIn','staller = Class(TComponent)'#010+ ' private'#010+ ' FBuildEngine: TBuildEngine;'#010+ ' FPackages: TPackages;'#010+ ' FRunMode: TRunMode;'#010+ ' FListMode : Boolean;'#010+ - ' FLog','Levels : TVerboseLevels;'#010+ + ' FLogLevels : TVerboseLevels;'#010+ ' Protected'#010+ - ' Procedure Log(Level : TVerboseLevel; Const Msg : String);'#010+ + ' Procedure Log(Level : TVerboseLevel; Const Msg',' : String);'#010+ ' Procedure CreatePackages; virtual;'#010+ ' Procedure CheckPackages; virtual;'#010+ ' Procedure CreateBuildEngine; virtual;'#010+ - ' Procedure Error(co','nst Msg : String);'#010+ + ' Procedure Error(const Msg : String);'#010+ ' Procedure Error(const Fmt : String; Args : Array of const);'#010+ - ' Procedure AnalyzeOptions;'#010+ + ' ','Procedure AnalyzeOptions;'#010+ ' Procedure Usage(const FMT : String; Args : Array of const);'#010+ ' Procedure Compile(Force : Boolean); virtual;'#010+ - ' Procedure ','Clean; virtual;'#010+ + ' Procedure Clean; virtual;'#010+ ' Procedure Install; virtual;'#010+ ' Procedure Archive; virtual;'#010+ - ' Procedure Manifest; virtual;'#010+ + ' Pro','cedure Manifest; virtual;'#010+ ' Property BuildEngine : TBuildEngine Read FBuildEngine;'#010+ ' Public'#010+ ' Constructor Create(AOwner : TComponent); virtual;'#010+ - ' D','estructor destroy; override;'#010+ - ' Function AddPackage(Const AName : String) : TPackage;'#010+ + ' Destructor destroy; override;'#010+ + ' Function AddPackage(Const AName : String) : TPackage;'#010, ' Function Run : Boolean;'#010+ ' //files in package'#010+ ' Property Packages : TPackages Read FPackages;'#010+ ' Property RunMode : TRunMode Read FRunMode;'#010+ - ' P','roperty ListMode : Boolean Read FListMode;'#010+ + ' Property ListMode : Boolean Read FListMode;'#010+ ' end;'#010+ #010+ ' { TFPCInstaller }'#010+ - ' TFPCInstaller = class(TCustomInstaller)'#010+ + ' TFPCInstaller ','= class(TCustomInstaller)'#010+ ' public'#010+ ' Constructor Create(AOwner : TComponent); override;'#010+ ' end;'#010+ #010+ ' { TBasicInstaller }'#010+ - ' TBasicInstaller = class(TCustom','Installer)'#010+ + ' TBasicInstaller = class(TCustomInstaller)'#010+ ' Constructor Create(AOwner : TComponent); override;'#010+ ' end;'#010+ #010+ - ' TReplaceFunction = Function (Const AName,Args : String) : String of '+ - 'Object;'#010+ + ' TReplaceFun','ction = Function (Const AName,Args : String) : String o'+ + 'f Object;'#010+ #010+ ' { TValueItem }'#010+ #010+ ' TValueItem = Class(TObject)'#010+ ' FValue : String;'#010+ - ' Constructor Cr','eate(AValue : String);'#010+ + ' Constructor Create(AValue : String);'#010+ ' end;'#010+ #010+ ' { TFunctionItem }'#010+ #010+ ' TFunctionItem = Class(TObject)'#010+ - ' FFunc : TReplaceFunction;'#010+ + ' ',' FFunc : TReplaceFunction;'#010+ ' Constructor Create(AFunc : TReplaceFunction);'#010+ ' end;'#010+ #010+ ' { TDictionary }'#010+ #010+ ' TDictionary = Class(TComponent)'#010+ - ' FList : TS','tringList;'#010+ + ' FList : TStringList;'#010+ ' Public'#010+ ' Constructor Create(AOwner : TComponent); override;'#010+ - ' Destructor Destroy;override;'#010+ + ' Destruct','or Destroy;override;'#010+ ' Procedure AddVariable(Const AName,Value : String);'#010+ ' Procedure AddFunction(Const AName : String; FReplacement : TReplac'+ - 'eFuncti','on);'#010+ + 'eFunction);'#010+ ' Procedure RemoveItem(Const AName : String);'#010+ - ' Function GetValue(Const AName : String) : String;'#010+ + ' Function GetValue(Const AName ',': String) : String;'#010+ ' Function GetValue(Const AName,Args : String) : String; virtual;'#010+ - ' Function ReplaceStrings(Const ASource : String) : String; vir','tua'+ - 'l;'#010+ + ' Function ReplaceStrings(Const ASource : String) : String; virtual;'+ + #010+ ' end;'#010+ #010+ ' ECollectionError = Class(Exception);'#010+ - ' EDictionaryError = Class(Exception);'#010+ + ' EDictionaryError = Class(Excepti','on);'#010+ ' EInstallerError = Class(Exception);'#010+ #010+ ' TInstallerClass = Class of TCustomInstaller;'#010+ ' TDictionaryClass = Class of TDictionary;'#010+ #010+ 'Type'#010+ - ' TArchiveEve','nt = Procedure (Const AFileName : String; List : TStrin'+ - 'gs) of Object;'#010+ - ' TArchiveProc = Procedure (Const AFileName : String; List : TStrings)'+ - ';'#010+ + ' TArchiveEvent = Procedure (Const AFileName : String; List : TStrings'+ + ') of Object;'#010+ + ' TArchiveProc = ','Procedure (Const AFileName : String; List : TString'+ + 's);'#010+ #010+ 'Var'#010+ ' DictionaryClass : TDictionaryClass = TDictionary;'#010+ ' OnArchiveFiles : TArchiveEvent = Nil;'#010+ - ' ',' ArchiveFilesProc : TArchiveProc = Nil;'#010+ + ' ArchiveFilesProc : TArchiveProc = Nil;'#010+ #010+ - ' Defaults : TCustomDefaults; // Set by installer.'#010+ + ' Defaults : TCustomDefaults; // Set by instal','ler.'#010+ ' Dictionary : TDictionary;'#010+ #010+ #010+ 'Function CurrentOS : String;'#010+ 'Function CurrentCPU : String;'#010+ #010+ - 'Function Installer(InstallerClass: TInstallerClass) : TCus','tomInstall'+ - 'er; overload;'#010+ + 'Function Installer(InstallerClass: TInstallerClass) : TCustomInstaller'+ + '; overload;'#010+ 'Function Installer : TCustomInstaller; overload;'#010+ #010+ - 'Function OSToString(OS: TOS) : String;'#010+ + 'Function OSTo','String(OS: TOS) : String;'#010+ 'Function OSesToString(OSes: TOSes) : String;'#010+ 'Function CPUToString(CPU: TCPU) : String;'#010+ - 'Function CPUSToString(CPUS: TCPUS) : Str','ing;'#010+ + 'Function CPUSToString(CPUS: TCPUS) : String;'#010+ 'Function StringToOS(const S : String) : TOS;'#010+ - 'Function OSesToString(const S : String) : TOSes;'#010+ + 'Function OSesToString(const S : Strin','g) : TOSes;'#010+ 'Function StringToCPU(const S : String) : TCPU;'#010+ 'Function StringToCPUS(const S : String) : TCPUS;'#010+ - 'Function ModeToString(Mode: TCompilerMode) : ','String;'#010+ + 'Function ModeToString(Mode: TCompilerMode) : String;'#010+ 'Function StringToMode(const S : String) : TCompilerMode;'#010+ - 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#010+ + 'Function MakeTargetStr','ing(CPU : TCPU;OS: TOS) : String;'#010+ 'Procedure StringToCPUOS(const S : String; Var CPU : TCPU; Var OS: TOS)'+ ';'#010+ - 'Function FixPath (const APath : String) : Strin','g;'#010+ + 'Function FixPath (const APath : String) : String;'#010+ 'Procedure ChangeDir(const APath : String);'#010+ - 'Function Substitute(Const Source : String; Macros : Array of string) :'+ - ' String;'#010+ + 'Function Substitute(Const Source : String','; Macros : Array of string)'+ + ' : String;'#010+ 'Procedure SplitCommand(Const Cmd : String; Var Exe,Options : String);'#010+ #010+ 'Implementation'#010+ #010+ 'uses typinfo;'#010+ #010+ - 'ResourceStrin','g'#010+ + 'ResourceString'#010+ ' SErrInvalidCPU = '#039'Invalid CPU name "%s"'#039';'#010+ - ' SErrInvalidOS = '#039'Invalid OS name "%s"'#039';'#010+ + ' SErrInvalidOS = '#039'Invalid',' OS name "%s"'#039';'#010+ ' SErrInvalidMode = '#039'Invalid compiler mode "%s"'#039';'#010+ ' SErrInvalidTarget = '#039'Invalid compiler target "%s"'#039';'#010+ - ' SErrNameExists ',' = '#039'Name "%s" already exists in the colle'+ - 'ction.'#039';'#010+ - ' SErrNoSuchName = '#039'Could not find item with name "%s" in t'+ - 'he collection.'#039';'#010+ + ' SErrNameExists = '#039'Name "%s" already exists in the collect'+ + 'ion.'#039';'#010+ + ' SErrNoSuchName = '#039'Could not ','find item with name "%s" in'+ + ' the collection.'#039';'#010+ ' SErrInValidArgument = '#039'Invalid command-line argument at positi'+ 'on %d: %s'#039';'#010+ - ' SErrNeedArgument = '#039'Op','tion at position %d (%s) needs an a'+ - 'rgument'#039';'#010+ - ' SErrNoPackagesDefined = '#039'No action possible: No packages were de'+ - 'fined.'#039';'#010+ + ' SErrNeedArgument = '#039'Option at position %d (%s) needs an arg'+ + 'ument'#039';'#010+ + ' SErrNoPackagesDefined = '#039'No action possi','ble: No packages were '+ + 'defined.'#039';'#010+ ' SErrInstaller = '#039'The installer encountered the following'+ ' error:'#039';'#010+ - ' SErrDepUnknownTarget = '#039'Unknown target in',' dependencies for %s'+ - ': %s'#039';'#010+ - ' SErrExternalCommandFailed = '#039'External command "%s" failed with e'+ - 'xit code %d'#039';'#010+ + ' SErrDepUnknownTarget = '#039'Unknown target in dependencies for %s: '+ + '%s'#039';'#010+ + ' SErrExternalCommandFailed = '#039'External command "%s" failed ','with'+ + ' exit code %d'#039';'#010+ ' SErrCreatingDirectory = '#039'Failed to create directory "%s"'#039';'#010+ ' SErrDeletingFile = '#039'Failed to delete file "%s"'#039';'#010+ - ' SErrMovingFile',' = '#039'Failed to move file "%s" to "%s"'#039';'+ + ' SErrMovingFile = '#039'Failed to move file "%s" to "%s"'#039';'#010+ + ' SErrCopyingFile = '#039'Failed to copy',' file "%s" to "%s"'#039';'+ #010+ - ' SErrCopyingFile = '#039'Failed to copy file "%s" to "%s"'#039';'#010+ ' SErrChangeDirFailed = '#039'Failed to enter directory "%s"'#039';'#010+ ' SErrInvalidArgumentToSubstitute = '#039'Invalid number of arguments t'+ - 'o Subs','titute'#039';'#010+ + 'o Substitute'#039';'#010+ ' SErrNoArchiveSupport = '#039'This binary contains no archive support'+ - '. Please recompile with archive support'#039';'#010+ + '. Please rec','ompile with archive support'#039';'#010+ ' SErrNoDictionaryItem = '#039'No item called "%s" in the dictionary'#039+ ';'#010+ - ' SErrNoDictionaryValue = '#039'The item "%s" in the dictiona','ry is no'+ - 't a value'#039';'#010+ + ' SErrNoDictionaryValue = '#039'The item "%s" in the dictionary is not '+ + 'a value'#039';'#010+ ' SErrNoDictionaryFunc = '#039'The item "%s" in the dictionary is not '+ - 'a function'#039';'#010+ + 'a',' function'#039';'#010+ ' SErrInvalidFPCInfo = '#039'Compiler returns invalid information, c'+ 'heck if fpc -iV works'#039';'#010+ - ' SErrDependencyNotFound = '#039'Could not find unit dir','ectory for de'+ - 'pendency package "%s"'#039';'#010+ - ' SErrAlreadyInitialized = '#039'Installer can only be initialized once'+ - #039';'#010+ + ' SErrDependencyNotFound = '#039'Could not find unit directory for depe'+ + 'ndency package "%s"'#039';'#010+ + ' SErrAlreadyInitialized = '#039'Installer can only be ','initialized on'+ + 'ce'#039';'#010+ #010+ ' SWarnCircularDependency = '#039'Warning: Circular dependency detected'+ ' when compiling target %s with target %s'#039';'#010+ - ' SWarnFailedToSetTime ',' = '#039'Warning: Failed to set timestamp on'+ - ' file "%s"'#039';'#010+ - ' SWarnFailedToGetTime = '#039'Warning: Failed to get timestamp from'+ - ' file "%s"'#039';'#010+ + ' SWarnFailedToSetTime = '#039'Warning: Failed to set timestamp on f'+ + 'ile "%s"'#039';'#010+ + ' SWarnFailedToGetTime = '#039'Warni','ng: Failed to get timestamp fr'+ + 'om file "%s"'#039';'#010+ ' SWarnFileDoesNotExist = '#039'Warning: File "%s" does not exist'#039+ ';'#010+ - ' SWarnAttemptingToCompileNonNeutralTarget ','= '#039'Warning: Attemptin'+ - 'g to compile non-neutral target %s'#039';'#010+ - ' SWarnSourceFileNotFound = '#039'Warning: Source file "%s" not found '+ + ' SWarnAttemptingToCompileNonNeutralTarget = '#039'Warning: Attempting '+ + 'to compile non-neutral target %s'#039';'#010+ + ' SWarnSourceFileNotFound = ',#039'Warning: Source file "%s" not found '+ 'for %s'#039';'#010+ ' SWarnIncludeFileNotFound = '#039'Warning: Include file "%s" not found'+ ' for %s'#039';'#010+ - ' SWarnDepUnitNotFound = '#039'W','arning: Dependency on unit %s is '+ - 'not supported for %s'#039';'#010+ + ' SWarnDepUnitNotFound = '#039'Warning: Dependency on unit %s is no'+ + 't supported for %s'#039';'#010+ #010+ - ' SInfoEnterDir = '#039'Entering directory "%s"'#039';'#010+ + ' SInfoEnterDir = '#039'E','ntering directory "%s"'#039';'#010+ ' SInfoCompilingPackage = '#039'Compiling package %s'#039';'#010+ ' SInfoCompilingTarget = '#039'Compiling target %s'#039';'#010+ - ' SInfoExecutingCommand ',' = '#039'Executing command "%s %s"'#039';'#010+ - ' SInfoCreatingOutputDir = '#039'Creating output dir "%s"'#039';'#010+ + ' SInfoExecutingCommand = '#039'Executing command "%s %s"'#039';'#010+ + ' SInfoCreatingOutputDir = '#039'Creating output dir "%s"'#039';',#010+ ' SInfoInstallingPackage = '#039'Installing package %s'#039';'#010+ ' SInfoArchivingPackage = '#039'Archiving package %s'#039';'#010+ ' SInfoArchivingFile = '#039'Archiving "%s"'#039';'#010+ - ' ',' SInfoCleaningPackage = '#039'Cleaning package %s'#039';'#010+ - ' SInfoCopyingFile = '#039'Copying file "%s" to "%s"'#039';'#010+ + ' SInfoCleaningPackage = '#039'Cleaning package %s'#039';'#010+ + ' SInfoCopyingFile = '#039'Copying ','file "%s" to "%s"'#039';'#010+ ' SInfoSourceNewerDest = '#039'Source file "%s" (%s) is newer than d'+ 'estination "%s" (%s).'#039';'#010+ #010+ - ' SDbgComparingFileTimes = '#039'Comparing f','ile "%s" time "%s" to '+ - '"%s" time "%s".'#039';'#010+ - ' SDbgCompilingDependenciesOfTarget = '#039'Compiling dependencies of t'+ - 'arget %s'#039';'#010+ + ' SDbgComparingFileTimes = '#039'Comparing file "%s" time "%s" to "%'+ + 's" time "%s".'#039';'#010+ + ' SDbgCompilingDependenciesOfTarget = '#039'Compilin','g dependencies of'+ + ' target %s'#039';'#010+ ' SDbgResolvingSourcesOfTarget = '#039'Resolving filenames of target %s'+ ' for %s'#039';'#010+ - ' SDbgResolvedSourceFile = '#039'Resolved source ','file %s to "%s"'#039+ + ' SDbgResolvedSourceFile = '#039'Resolved source file %s to "%s"'#039+ ';'#010+ ' SDbgResolvedIncludeFile = '#039'Resolved include file %s to "%s"'#039+ ';'#010+ - ' SDbgOutputNotYetAvailable = '#039'Output file %s not available'#039';'#010+ + ' S','DbgOutputNotYetAvailable = '#039'Output file %s not available'#039';'+ + #010+ ' SDbgDependencyOnUnit = '#039'Dependency of %s on unit %s'#039';'#010+ - ' SDbgDependencyUnitRecompiled = ',#039'Dependent unit %s is being recom'+ + ' SDbgDependencyUnitRecompiled = '#039'Dependent unit %s is being recom'+ 'piled'#039';'#010+ - ' SDbgMustCompile = '#039'Must compile %s'#039';'#010+ + ' SDbgMustCompile = '#039'Must compile %s',#039';'#010+ ' SDbgSkippingTargetWrongCPU = '#039'Skipping target %s, different CPU '+ '(%s)'#039';'#010+ ' SDbgSkippingTargetWrongOS = '#039'Skipping target %s, different OS ('+ '%s)'#039';'#010+ - ' SDb','gTargetIsNotAUnitOrProgram = '#039'Skipping Target %s, not an un'+ - 'it or program'#039';'#010+ - ' SDbgConsideringTarget = '#039'Considering target %s'#039';'#010+ + ' SDbgTargetIsNotAUnitOrProgram = '#039'Skipping Target %s, not an unit'+ + ' or program'#039';'#010+ + ' SDbgConsid','eringTarget = '#039'Considering target %s'#039';'#010+ ' SDbgConsideringPackage = '#039'Considering package %s'#039';'#010+ - ' SDbgExternalDependency = '#039'External dependency %s ','found in "'+ - '%s"'#039';'#010+ + ' SDbgExternalDependency = '#039'External dependency %s found in "%s'+ + '"'#039';'#010+ ' SDbgBuildEngineArchiving = '#039'Build engine archiving.'#039';'#010+ - ' SDbgBuildEngineCleaning = '#039'Build engine cleaning.'#039';'#010+ + ' SDbgBuildEng','ineCleaning = '#039'Build engine cleaning.'#039';'#010+ ' SDbgGenerating = '#039'Generating "%s"'#039';'#010+ ' SDbgLoading = '#039'Loading "%s"'#039';'#010+ - ' SDbgFound ',' = '#039'Found'#039';'#010+ + ' SDbgFound = '#039'Found'#039';'#010+ ' SDbgNotFound = '#039'Not Found'#039';'#010+ - ' SDbgDirectoryExists = '#039'Directory "%s" %s'#039';'#010+ + ' SDbgDirectoryExists',' = '#039'Directory "%s" %s'#039';'#010+ ' SDbgFileExists = '#039'File "%s" %s'#039';'#010+ ' SDbgSearchPath = '#039'Using %s path "%s"'#039';'#010+ #010+ - ' // Help messages for u','sage'#010+ + ' // Help messages for usage'#010+ ' SValue = '#039'Value'#039';'#010+ - ' SHelpUsage = '#039'Usage: %s command [options]'#039';'#010+ + ' SHelpUsage = '#039'Usage: %s command [optio','ns]'#039';'#010+ ' SHelpCommand = '#039'Where command is one of the following:'#039+ ';'#010+ ' SHelpCompile = '#039'Compile all units in the package(s).'#039';'+ #010+ - ' SHelpBuild ',' = '#039'Build all units in the package(s).'#039';'+ - #010+ - ' SHelpInstall = '#039'Install all units in the package(s).'#039';'+ - #010+ + ' SHelpBuild = '#039'Build all units in the package(s).'#039';'#010+ + ' SHelpInstall = '#039'Install all units',' in the package(s).'#039+ + ';'#010+ ' SHelpClean = '#039'Clean (remove) all units in the package(s'+ ').'#039';'#010+ - ' SHelpArchive = '#039'Create archive (zip) with all units',' in '+ - 'the package(s).'#039';'#010+ + ' SHelpArchive = '#039'Create archive (zip) with all units in th'+ + 'e package(s).'#039';'#010+ ' SHelpHelp = '#039'This message.'#039';'#010+ - ' SHelpManifest = '#039'Create a manifest suitable for import in '+ + ' SHelpManifest = ',#039'Create a manifest suitable for import in '+ 'repository.'#039';'#010+ ' SHelpCmdOptions = '#039'Where options is one or more of the follo'+ 'wing:'#039';'#010+ - ' SHelpCPU =',' '#039'Compile for indicated CPU.'#039';'#010+ + ' SHelpCPU = '#039'Compile for indicated CPU.'#039';'#010+ ' SHelpOS = '#039'Compile for indicated OS'#039';'#010+ - ' SHelpTarget = '#039'Compile for indicated target'#039';'#010+ + ' SH','elpTarget = '#039'Compile for indicated target'#039';'#010+ ' SHelpList = '#039'list commands instead of actually executi'+ 'ng them.'#039';'#010+ - ' SHelpPrefix = ',#039'Use indicated prefix directory for all co'+ + ' SHelpPrefix = '#039'Use indicated prefix directory for all co'+ 'mmands.'#039';'#010+ - ' SHelpNoFPCCfg = '#039'Compiler will not use fpc.cfg'#039';'#010+ + ' SHelpNoFPCCfg = '#039'Compiler w','ill not use fpc.cfg'#039';'#010+ ' SHelpBaseInstallDir = '#039'Use indicated directory as base install d'+ 'ir.'#039';'#010+ - ' SHelpLocalUnitDir = '#039'Use indicated directory as local (','user)'+ - ' unit dir.'#039';'#010+ + ' SHelpLocalUnitDir = '#039'Use indicated directory as local (user) u'+ + 'nit dir.'#039';'#010+ ' SHelpGlobalUnitDir = '#039'Use indicated directory as global unit di'+ - 'r.'#039';'#010+ + 'r.'#039,';'#010+ ' SHelpCompiler = '#039'Use indicated binary as compiler'#039';'#010+ ' SHelpConfig = '#039'Use indicated config file when compiling.'+ #039';'#010+ - ' SHelpVerbose ','= '#039'Be verbose when working.'#039';'#010+ + ' SHelpVerbose = '#039'Be verbose when working.'#039';'#010+ #010+ #010+ 'Const'#010+ ' // Keys for Defaults file. Do not localize.'#010+ - ' KeyCompiler = '#039'Compiler'#039';'#010+ + ' K','eyCompiler = '#039'Compiler'#039';'#010+ ' KeyArchive = '#039'Archive'#039';'#010+ ' KeyCopy = '#039'Copy'#039';'#010+ ' KeyMkDir = '#039'MkDir'#039';'#010+ ' KeyMove = '#039'Move'#039';'#010+ ' KeyRemove = '#039'Remove'#039';'#010+ - ' ','KeyOptions = '#039'Options'#039';'#010+ + ' KeyOptions = '#039'Options'#039';'#010+ ' KeyCPU = '#039'CPU'#039';'#010+ ' KeyOS = '#039'OS'#039';'#010+ - ' KeyMode = '#039'Mode'#039';'#010+ + ' KeyMode = '#039,'Mode'#039';'#010+ ' KeyPrefix = '#039'Prefix'#039';'#010+ ' KeyTarget = '#039'Target'#039';'#010+ ' KeyNoFPCCfg = '#039'NoFPCCfg'#039';'#010+ ' KeyLocalUnitDir = '#039'LocalUnitDir'#039';'#010+ - ' KeyGlobalUnitDir ','= '#039'GlobalUnitDir'#039';'#010+ + ' KeyGlobalUnitDir = '#039'GlobalUnitDir'#039';'#010+ ' KeyBaseInstallDir = '#039'BaseInstallDir'#039';'#010+ - ' KeyUnitInstallDir = '#039'UnitInstallDir'#039';'#010+ + ' KeyUnitInstallDir ','= '#039'UnitInstallDir'#039';'#010+ ' KeyBinInstallDir = '#039'BinInstallDir'#039';'#010+ ' KeyDocInstallDir = '#039'DocInstallDir'#039';'#010+ - ' KeyExamplesInstallDir = '#039'ExamplesInstallDir'#039';',#010+ + ' KeyExamplesInstallDir = '#039'ExamplesInstallDir'#039';'#010+ ' KeySourceExt = '#039'SourceExt'#039';'#010+ ' // Keys for unit config'#010+ ' KeyName = '#039'Name'#039';'#010+ - ' KeyVersion = '#039'Version'#039';'#010+ + ' KeyV','ersion = '#039'Version'#039';'#010+ ' KeyNeedLibC = '#039'NeedLibC'#039';'#010+ ' KeyDepends = '#039'Depends'#039';'#010+ #010+ '{*********************************************************************'+ - '******','*'#010+ + '*******'#010+ ' Helpers'#010+ - '**********************************************************************'+ - '******}'#010+ + '*********************************************','***********************'+ + '********}'#010+ #010+ #010+ 'Procedure SplitVersion(AValue: String; Var Release,Major,Minor : Word;'+ ' Var Suffix : String);'#010+ #010+ - ' Function NextDigit(sep',' : Char; var V : string) : integer;'#010+ + ' Function NextDigit(sep : Char; var V : string) : integer;'#010+ ' Var'#010+ ' P : Integer;'#010+ ' begin'#010+ ' P:=Pos(Sep,V);'#010+ - ' If (P=0) then'#010+ + ' ',' If (P=0) then'#010+ ' P:=Length(V)+1;'#010+ ' Result:=StrToIntDef(Copy(V,1,P-1),-1);'#010+ ' If Result<>-1 then'#010+ ' Delete(V,1,P)'#010+ ' else'#010+ ' Result:=0;'#010+ - ' ','end;'#010+ + ' end;'#010+ #010+ 'Var'#010+ ' P : Integer;'#010+ @@ -1301,32 +1300,32 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Release:=0;'#010+ ' Major:=0;'#010+ ' Minor:=0;'#010+ - ' Suffix:='#039#039';'#010+ + ' Su','ffix:='#039#039';'#010+ ' V:=AValue;'#010+ ' Release:=NextDigit('#039'.'#039',V);'#010+ ' Major:=NextDigit('#039'.'#039',V);'#010+ ' Minor:=NextDigit('#039'-'#039',V);'#010+ ' P:=Pos('#039'-'#039',V);'#010+ ' If (P<>0) then'#010+ - ' Delete(V,','1,P);'#010+ + ' Delete(V,1,P);'#010+ ' Suffix:=V;'#010+ 'end;'#010+ #010+ #010+ 'Function QuoteXML(S : String) : string;'#010+ #010+ - ' Procedure W(Var J : Integer; Var R : String; T : String);'#010+ + ' Procedure W(Var J ',': Integer; Var R : String; T : String);'#010+ ' Var'#010+ ' I: integer;'#010+ ' begin'#010+ ' If J+Length(T)>Length(R) then'#010+ ' SetLength(R,J+Length(T));'#010+ - ' For I:=1 to L','ength(t) do'#010+ + ' For I:=1 to Length(t) do'#010+ ' begin'#010+ ' R[J]:=T[i];'#010+ ' If I'#039': W(J,Result,gtStr);'#010+ - ' // Escape whitespace using CharR','efs to be consistent with W3 s'+ - 'pec X 3.3.3'#010+ + ' // Escape whitespace using CharRefs to be consistent with W3 spe'+ + 'c X 3.3.3'#010+ ' #9: w(J,Result,'#039' '#039');'#010+ - '{ #10: wrtStr('#039' '#039');'#010+ + '{ #10: w','rtStr('#039' '#039');'#010+ ' #13: wrtStr('#039' '#039');}'#010+ ' else'#010+ ' Result[J]:=S[i];'#010+ ' end;'#010+ ' If (J=Length(Result)) and (ILength(Result) then'#010+ ' SetLength(Result,J);'#010+ - 'end;'#010+ + 'end',';'#010+ #010+ #010+ '// Callback for Sysutils getapplicationname.'#010+ @@ -1374,13 +1373,13 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function CurrentOS : String;'#010+ #010+ 'begin'#010+ - ' ',' Result:=OSToString(Defaults.OS);'#010+ + ' Result:=OSToString(Defaults.OS);'#010+ 'end;'#010+ #010+ 'Function CurrentCPU : String;'#010+ #010+ 'begin'#010+ - ' Result:=CPUToString(Defaults.CPU);'#010+ + ' Result:=','CPUToString(Defaults.CPU);'#010+ 'end;'#010+ #010+ 'Function OSToString(OS: TOS) : String;'#010+ @@ -1389,24 +1388,24 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=LowerCase(GetenumName(TypeInfo(TOS),Ord(OS)));'#010+ 'end;'#010+ #010+ - 'Function OS','esToString(OSes: TOSes) : String;'#010+ + 'Function OSesToString(OSes: TOSes) : String;'#010+ #010+ 'begin'#010+ - ' Result:=LowerCase(SetToString(PtypeInfo(TypeInfo(TOSes)),Integer(OSe'+ - 's),False));'#010+ + ' Result:=LowerCase(SetToString(PtypeInfo(Type','Info(TOSes)),Integer(O'+ + 'Ses),False));'#010+ 'end;'#010+ #010+ 'Function CPUToString(CPU: TCPU) : String;'#010+ #010+ 'begin'#010+ ' Result:=LowerCase(GetenumName(TypeInfo(TCPU),Ord(CPU)));'#010+ - 'end',';'#010+ + 'end;'#010+ #010+ 'Function CPUSToString(CPUS: TCPUS) : String;'#010+ #010+ 'begin'#010+ - ' Result:=LowerCase(SetToString(PTypeInfo(TypeInfo(TCPUS)),Integer(CPU'+ - 'S),False));'#010+ + ' Result:=LowerCase(SetToString(','PTypeInfo(TypeInfo(TCPUS)),Integer(C'+ + 'PUS),False));'#010+ 'end;'#010+ #010+ 'Function StringToOS(const S : String) : TOS;'#010+ @@ -1415,10 +1414,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' I : Integer;'#010+ #010+ 'begin'#010+ - ' I:=GetEnumValue(TypeInf','o(TOS),S);'#010+ + ' I:=GetEnumValue(TypeInfo(TOS),S);'#010+ ' if (I=-1) then'#010+ ' Raise EInstallerError.CreateFmt(SErrInvalidOS,[S]);'#010+ - ' Result:=TOS(I);'#010+ + ' R','esult:=TOS(I);'#010+ 'end;'#010+ #010+ #010+ @@ -1428,48 +1427,48 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=TOSes(StringToSet(PTypeInfo(TypeInfo(TOSes)),S));'#010+ 'end;'#010+ #010+ - 'Function ','StringToCPU(const S : String) : TCPU;'#010+ + 'Function StringToCPU(const S : String) : TCPU;'#010+ #010+ 'Var'#010+ ' I : Integer;'#010+ #010+ 'begin'#010+ - ' I:=GetEnumValue(TypeInfo(TCPU),S);'#010+ + ' I:=GetEnumValue(Type','Info(TCPU),S);'#010+ ' if (I=-1) then'#010+ ' Raise EInstallerError.CreateFmt(SErrInvalidCPU,[S]);'#010+ ' Result:=TCPU(I);'#010+ 'end;'#010+ #010+ - 'Function StringToCPUS(const S : String)',' : TCPUS;'#010+ + 'Function StringToCPUS(const S : String) : TCPUS;'#010+ #010+ 'begin'#010+ ' Result:=TCPUS(StringToSet(PTypeInfo(TypeInfo(TCPUS)),S));'#010+ 'end;'#010+ #010+ - 'Function ModeToString(Mode: TCompilerMode) : String;'#010+ + 'Func','tion ModeToString(Mode: TCompilerMode) : String;'#010+ #010+ 'begin'#010+ ' Result:=LowerCase(GetenumName(TypeInfo(TCompilerMode),Ord(Mode)));'#010+ ' Delete(Result,1,2);'#010+ 'end;'#010+ - #010, + #010+ 'Function StringToMode(const S : String) : TCompilerMode;'#010+ #010+ 'Var'#010+ ' I : Integer;'#010+ #010+ 'begin'#010+ - ' I:=GetEnumValue(TypeInfo(TCompilerMode),S);'#010+ + ' I',':=GetEnumValue(TypeInfo(TCompilerMode),S);'#010+ ' if (I=-1) then'#010+ ' Raise EInstallerError.CreateFmt(SErrInvalidMode,[S]);'#010+ ' Result:=TCompilerMode(I);'#010+ 'end;'#010+ #010+ - #010, + #010+ 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#010+ #010+ 'begin'#010+ - ' Result:=CPUToString(CPU)+'#039'-'#039'+OSToString(OS);'#010+ + ' Result:=CPUToString(CP','U)+'#039'-'#039'+OSToString(OS);'#010+ 'end;'#010+ #010+ 'Procedure StringToCPUOS(const S : String; Var CPU : TCPU; Var OS: TOS)'+ @@ -1480,9 +1479,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'begin'#010+ ' P:=Pos('#039'-'#039',S);'#010+ - ' If (P=','0) then'#010+ + ' If (P=0) then'#010+ ' Raise EInstallerError.CreateFmt(SErrInvalidTarget,[S]);'#010+ - ' CPU:=StringToCPU(Copy(S,1,P-1));'#010+ + ' CPU:=StringToCPU(','Copy(S,1,P-1));'#010+ ' OS:=StringToOs(Copy(S,P+1,Length(S)-P));'#010+ 'end;'#010+ #010+ @@ -1490,40 +1489,40 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Procedure ResolveDependencies(L : TDependencies; P : TNamedCollection)'+ ';'#010+ 'Var'#010+ - ' I,J : Int','eger;'#010+ + ' I,J : Integer;'#010+ ' C : TDependency;'#010+ 'begin'#010+ ' If Assigned(L) then'#010+ ' For I:=0 to L.Count-1 do'#010+ - ' begin'#010+ + ' ',' begin'#010+ ' C:=L[i];'#010+ ' if C.DependencyType in [depPackage,depUnit] then'#010+ ' begin'#010+ ' J:=P.IndexOfName(C.Value);'#010+ - ' If J<','>-1 then'#010+ + ' If J<>-1 then'#010+ ' C.Target:=P.Items[J];'#010+ ' end;'#010+ ' end;'#010+ 'end;'#010+ #010+ #010+ - 'function AddConditionalStrings(Dest : TStrings; Src : TConditionalStri'+ - 'ngs;ACPU:TCPU;AOS:TOS; Const APrefix : String='#039#039') : Integer ;'#010+ + 'function ','AddConditionalStrings(Dest : TStrings; Src : TConditionalSt'+ + 'rings;ACPU:TCPU;AOS:TOS; Const APrefix : String='#039#039') : Integer ;'#010+ 'Var'#010+ ' I : Integer;'#010+ - ' C : TCond','itionalString;'#010+ + ' C : TConditionalString;'#010+ ' S : String;'#010+ 'begin'#010+ ' Result:=0;'#010+ - ' Dictionary.AddVariable('#039'CPU'#039',CPUToString(ACPU));'#010+ + ' Dictionary.AddVariable('#039'CPU'#039',CPUToStr','ing(ACPU));'#010+ ' Dictionary.AddVariable('#039'OS'#039',OSToString(AOS));'#010+ ' For I:=0 to Src.Count-1 do'#010+ ' begin'#010+ ' C:=Src[I];'#010+ - ' if (ACPU in C.CPUs) and (AOS in',' C.OSes) then'#010+ + ' if (ACPU in C.CPUs) and (AOS in C.OSes) then'#010+ ' begin'#010+ ' If (APrefix<>'#039#039') then'#010+ - ' S:=APrefix+C.Value'#010+ + ' S:=APrefix+C.Va','lue'#010+ ' else'#010+ ' S:=C.Value;'#010+ ' Dest.Add(Dictionary.ReplaceStrings(S));'#010+ @@ -1533,10 +1532,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function',' FileListToString(List : TStrings; const APrefix : String) :'+ - ' String;'#010+ + 'function FileListToString(List : TStrings; const APrefix : String) : S'+ + 'tring;'#010+ 'Var'#010+ - ' I : integer;'#010+ + ' I : integer;',#010+ ' S : String;'#010+ 'begin'#010+ ' Result:='#039#039';'#010+ @@ -1545,12 +1544,12 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (I>0) then'#010+ ' Result:=Result+'#039' '#039';'#010+ ' S:=APrefix+List[i];'#010+ - ' ',' If (Pos('#039' '#039',S)<>0) then'#010+ + ' If (Pos('#039' '#039',S)<>0) then'#010+ ' S:='#039'"'#039'+S+'#039'"'#039';'#010+ ' Result:=Result+S;'#010+ ' end;'#010+ 'end;'#010+ - #010+ + #010, #010+ 'function FixPath (const APath : String) : String;'#010+ 'Var'#010+ @@ -1560,10 +1559,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (result<>'#039#039') then'#010+ ' begin'#010+ ' P:=PChar(Result);'#010+ - ' ',' While (P^<>#0) do'#010+ + ' While (P^<>#0) do'#010+ ' begin'#010+ ' If P^ in ['#039'/'#039','#039'\'#039'] then'#010+ - ' P^:=PathDelim;'#010+ + ' P^:=Path','Delim;'#010+ ' Inc(P);'#010+ ' end;'#010+ ' end;'#010+ @@ -1573,33 +1572,33 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure ChangeDir(const APath : String);'#010+ 'begin'#010+ ' if Not SetCurrentDir(APath) then'#010+ - ' Raise EInst','allerError.CreateFmt(SErrChangeDirFailed,[APath]);'#010+ + ' Raise EInstallerError.CreateFmt(SErrChangeDirFailed,[APath]);'#010+ 'end;'#010+ #010+ #010+ - 'procedure SearchFiles(const AFileName: string; Recursive: boolean; var'+ - ' List: TStrings);'#010+ + 'procedure SearchFiles(const A','FileName: string; Recursive: boolean; v'+ + 'ar List: TStrings);'#010+ #010+ ' procedure AddRecursiveFiles(const SearchDir, FileMask: string; Recur'+ 'sive: boolean);'#010+ - ' const',#010+ + ' const'#010+ ' IgnoreCase = {$ifdef UNIX}False{$else}True{$endif};'#010+ ' var'#010+ ' Info : TSearchRec;'#010+ - ' begin'#010+ + ' ',' begin'#010+ ' if FindFirst(SearchDir+'#039'*'#039',faAnyFile and faDirectory,Info)'+ '=0 then'#010+ ' begin'#010+ ' repeat'#010+ - ' if ((Info.Attr and faDirectory) = faDirecto','ry) and (Info.N'+ - 'ame <> '#039'.'#039') and (Info.Name <> '#039'..'#039') and (Recursive) th'+ - 'en'#010+ - ' AddRecursiveFiles(SearchDir + Info.Name + PathDelim, FileM'+ - 'ask, Recursive);'#010+ + ' if ((Info.Attr and faDirectory) = faDirectory) and (Info.Nam'+ + 'e <> '#039'.'#039') and (Info.Name <> '#039'..'#039') and (Recursive) then'+ + #010+ + ' Add','RecursiveFiles(SearchDir + Info.Name + PathDelim, Fil'+ + 'eMask, Recursive);'#010+ ' if ((Info.Attr and faDirectory) <> faDirectory) and IsWild(I'+ - 'nfo.Name, F','ileMask, IgnoreCase) then'#010+ + 'nfo.Name, FileMask, IgnoreCase) then'#010+ ' List.Add(SearchDir + Info.Name);'#010+ - ' until FindNext(Info)<>0;'#010+ + ' until Find','Next(Info)<>0;'#010+ ' end;'#010+ ' FindClose(Info);'#010+ ' end;'#010+ @@ -1609,20 +1608,21 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' BasePath: string;'#010+ ' i: integer;'#010+ 'begin'#010+ - ' BasePath := ExtractFilePath(ExpandFileName(','AFileName));'#010+ + ' BasePath := ExtractFilePath(ExpandFileName(AFileName));'#010+ ' AddRecursiveFiles(BasePath, ExtractFileName(AFileName), Recursive);'#010+ #010+ - ' CurrDir:=GetCurrentDir;'#010+ + ' C','urrDir:=GetCurrentDir;'#010+ ' for i := 0 to Pred(List.Count) do'#010+ - ' List[i] := ExtractRelativepath(CurrDir, List[i]);'#010+ + ' List[i] := ExtractRelativepath(IncludeTrailingPathDelimiter(CurrDi'+ + 'r), List[i]);'#010+ 'end;'#010+ #010+ #010+ - 'procedure SplitCommand(const Cmd ',': String; var Exe, Options : String'+ - ');'#010+ + 'procedure SplitCommand(const Cmd : String; var Exe, Options : String);'+ + #010+ #010+ 'Const'#010+ - ' WhiteSpace = [#9,#10,#13,'#039' '#039'];'#010+ + ' WhiteSpace',' = [#9,#10,#13,'#039' '#039'];'#010+ ' QuoteChars = ['#039#039#039#039','#039'"'#039'];'#010+ #010+ 'Var'#010+ @@ -1635,8 +1635,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' S:=Trim(Cmd);'#010+ ' InQuote:=False;'#010+ ' LastQuote:=#0;'#010+ - ' ','I:=1;'#010+ - ' While (I<=Length(S)) and (Inquote or not (S[I] in whiteSpace)) do'#010+ + ' I:=1;'#010+ + ' While (I<=Length(S)) and (Inquote or not (S[I] in',' whiteSpace)) do'#010+ ' begin'#010+ ' If S[i] in QuoteChars then'#010+ ' begin'#010+ @@ -1644,11 +1644,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If InQuote then'#010+ ' LastQuote:=S[i]'#010+ ' else'#010+ - ' LastQuot','e:=#0;'#010+ + ' LastQuote:=#0;'#010+ ' end;'#010+ ' Inc(I);'#010+ ' end;'#010+ - ' Exe:=Copy(S,1,I-1);'#010+ + ' Exe:=Copy(S,1,I-','1);'#010+ ' Delete(S,1,I);'#010+ ' Options:=Trim(S);'#010+ 'end;'#010+ @@ -1659,9 +1659,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'const'#010+ ' BufSize = 1024;'#010+ 'var'#010+ - ' S: TProcess;'#010, + ' S: TProcess;'#010+ ' Buf: array [0..BufSize - 1] of char;'#010+ - ' Count: longint;'#010+ + ' Count: longint;'#010, 'begin'#010+ ' S:=TProcess.Create(Nil);'#010+ ' S.Commandline:=ACompiler+'#039' '#039'+AOptions;'#010+ @@ -1669,37 +1669,38 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' S.execute;'#010+ ' Count:=s.output.read(buf,BufSize);'#010+ ' S.Free;'#010+ - ' SetLength(Result,Cou','nt);'#010+ + ' SetLength(Result,Count);'#010+ ' Move(Buf,Result[1],Count);'#010+ 'end;'#010+ - '{$endif HAS_UNIT_PROCESS}'#010+ + '{$endif HAS_UNIT_P','ROCESS}'#010+ #010+ #010+ '{*********************************************************************'+ '*******'#010+ ' TNamedItem'#010+ - '****************************************************','****************'+ - '********}'#010+ + '**********************************************************************'+ + '******}'#010+ #010+ - 'procedure TNamedItem.SetName(const AValue: String);'#010+ + 'procedure TNamedItem.SetName(c','onst AValue: String);'#010+ #010+ 'begin'#010+ ' if FName=AValue then exit;'#010+ ' With TNamedCollection(Collection) do'#010+ ' If UniqueNames then'#010+ ' If (IndexOfName(AVAlue)<>-1) then'#010+ - ' Raise ECollect','ionError.CreateFmt(SErrNameExists,[AValue]);'#010+ - ' FName:=AValue;'#010+ + ' Raise ECollectionError.CreateFmt(SErrNameExists,[AValue]);'#010+ + ' FName:=AVa','lue;'#010+ 'end;'#010+ #010+ #010+ '{*********************************************************************'+ '*******'#010+ ' TNamedCollection'#010+ - '********************************************','************************'+ - '********}'#010+ + '**********************************************************************'+ + '******}'#010+ + #010+ + 'function TNamedCollect','ion.IndexOfName(const AName: String): Integer;'+ #010+ - 'function TNamedCollection.IndexOfName(const AName: String): Integer;'#010+ #010+ 'begin'#010+ ' Result:=Count-1;'#010+ @@ -1708,7 +1709,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Dec(Result);'#010+ 'end;'#010+ #010+ - 'func','tion TNamedCollection.ItemByName(const AName: String): TNamedIte'+ + 'function TNamedCollection.ItemByName(const AName: String): TN','amedIte'+ 'm;'#010+ #010+ 'Var'#010+ @@ -1722,15 +1723,15 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - '{**','*****************************************************************'+ + '{***********************************************************','********'+ '*********'#010+ ' TNamedItemList'#010+ '**********************************************************************'+ '******}'#010+ #010+ - 'function TNamedItemList.GetNamedItem(Index',' : Integer): TNamedItem;'#010+ + 'function TNamedItemList.GetNamedItem(Index : Integer): TNamedItem;'#010+ 'begin'#010+ - ' Result:=TNamedItem(Items[Index]);'#010+ + ' Result:=TNamedItem(Items','[Index]);'#010+ 'end;'#010+ #010+ #010+ @@ -1741,11 +1742,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TNamedItemList.IndexOfName(const AName',': String): Integer;'#010+ + 'function TNamedItemList.IndexOfName(const AName: String): Integer;'#010+ 'begin'#010+ ' Result:=Count-1;'#010+ - ' While (Result>=0) and (CompareText(GetNamedItem(Result).Name,AName)<'+ - '>0) do'#010+ + ' While (Res','ult>=0) and (CompareText(GetNamedItem(Result).Name,AName'+ + ')<>0) do'#010+ ' Dec(Result);'#010+ 'end;'#010+ #010+ @@ -1753,19 +1754,19 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'function TNamedItemList.ItemByName(const ANAme: String): TNamedItem;'#010+ 'Var'#010+ ' I : Integer;'#010+ - 'begin'#010, + 'begin'#010+ ' I:=IndexOfName(AName);'#010+ ' If (I=-1) Then'#010+ - ' Raise ECollectionError.CreateFmt(SErrNoSuchName,[AName]);'#010+ + ' Raise EColl','ectionError.CreateFmt(SErrNoSuchName,[AName]);'#010+ ' Result:=TNamedItem(Items[i]);'#010+ 'end;'#010+ #010+ #010+ '{*********************************************************************'+ '*******'#010+ - ' ',' TTargets'#010+ - '**********************************************************************'+ - '******}'#010+ + ' TTargets'#010+ + '***********************************','*********************************'+ + '********}'#010+ #010+ 'function TTargets.GetTargetItem(Index : Integer): TTarget;'#010+ 'begin'#010+ @@ -1773,9 +1774,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TTargets.GetTarget(const ','AName : String): TTarget;'#010+ + 'function TTargets.GetTarget(const AName : String): TTarget;'#010+ 'begin'#010+ - ' Result:=TTarget(ItemByName(AName));'#010+ + ' Result:=TTarget(ItemByN','ame(AName));'#010+ 'end;'#010+ #010+ #010+ @@ -1786,9 +1787,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TTargets.AddUnit(Const AUnitName : String) ',': TTarget;'#010+ + 'Function TTargets.AddUnit(Const AUnitName : String) : TTarget;'#010+ 'begin'#010+ - ' Result:=AddUnit(AUnitName,AllCPUs,AllOSes);'#010+ + ' Result:=AddUnit(AUnitName,AllCPUs,AllO','Ses);'#010+ 'end;'#010+ #010+ #010+ @@ -1800,7 +1801,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ '{$ifdef cpu_only_overloads}'#010+ - 'Functi','on TTargets.AddUnit(Const AUnitName : String;const CPUs:TCPUs)'+ + 'Function TTargets.AddUnit(Const AUnitName : String;const CPUs:T','CPUs)'+ ' : TTarget;'#010+ 'begin'#010+ ' Result:=AddUnit(AUnitName,CPUs,AllOSes);'#010+ @@ -1809,10 +1810,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'Function TTargets.AddUnit(Const AUnitName : String;const CPUs:TCPUs;co'+ - 'nst OSes:TOS','es) : TTarget;'#010+ + 'nst OSes:TOSes) : TTarget;'#010+ 'begin'#010+ ' Result:=Add as TTarget;'#010+ - ' Result.Name:=AUnitName;'#010+ + ' Result.N','ame:=AUnitName;'#010+ ' Result.TargetType:=TTUnit;'#010+ ' Result.CPUs:=CPUs;'#010+ ' Result.OSes:=OSes;'#010+ @@ -1820,37 +1821,37 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'Function TTargets.AddImplicitUnit(Const AUnitName : String;InstallUnit'+ - ':boolean=true) : TT','arget;'#010+ + ':boolean=true) : TTarget;'#010+ 'begin'#010+ - ' Result:=AddImplicitUnit(AUnitName,AllCPUs,AllOSes,InstallUnit);'#010+ + ' Result:=AddImplicitUnit(AUnitName,AllCPUs,','AllOSes,InstallUnit);'#010+ 'end;'#010+ #010+ #010+ 'Function TTargets.AddImplicitUnit(Const AUnitName : String;const OSes:'+ 'TOSes;InstallUnit:boolean=true) : TTarget;'#010+ 'begin'#010+ - ' Result:=AddImplicitUnit(AUnitName',',AllCPUs,OSes,InstallUnit);'#010+ + ' Result:=AddImplicitUnit(AUnitName,AllCPUs,OSes,InstallUnit);'#010+ 'end;'#010+ #010+ #010+ - 'Function TTargets.AddImplicitUnit(Const AUnitName : String;const CPUs:'+ - 'TCPUs;InstallUnit:boolean=true) : TTarget;'#010+ + 'Function TTargets.AddI','mplicitUnit(Const AUnitName : String;const CPU'+ + 's:TCPUs;InstallUnit:boolean=true) : TTarget;'#010+ 'begin'#010+ ' Result:=AddImplicitUnit(AUnitName,CPUs,AllOSes,InstallUnit);'#010+ 'end;'#010+ #010+ #010+ - 'Function TTarget','s.AddImplicitUnit(Const AUnitName : String;const CPU'+ - 's:TCPUs;const OSes:TOSes;InstallUnit:boolean=true) : TTarget;'#010+ + 'Function TTargets.AddImplicitUnit(Const AUnitName : String;const CPUs:'+ + 'TCP','Us;const OSes:TOSes;InstallUnit:boolean=true) : TTarget;'#010+ 'begin'#010+ ' Result:=Add as TTarget;'#010+ ' Result.Name:=AUnitName;'#010+ ' Result.CPUs:=CPUs;'#010+ ' Result.OSes:=OSes;'#010+ ' if InstallUnit then'#010+ - ' ','Result.TargetType:=TTImplicitUnit'#010+ + ' Result.TargetType:=TTImplicitUnit'#010+ ' else'#010+ - ' Result.TargetType:=TTCleanOnlyUnit;'#010+ + ' Result.Targe','tType:=TTCleanOnlyUnit;'#010+ 'end;'#010+ #010+ #010+ @@ -1860,8 +1861,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TTargets.','AddProgram(Const AProgramName : String;const OSes:'+ - 'TOSes) : TTarget;'#010+ + 'Function TTargets.AddProgram(Const AProgramName : String;const OSes:TO'+ + 'Ses) ',': TTarget;'#010+ 'begin'#010+ ' Result:=AddProgram(AProgramName,AllCPUs,OSes);'#010+ 'end;'#010+ @@ -1869,9 +1870,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ '{$ifdef cpu_only_overloads}'#010+ 'Function TTargets.AddProgram(Const AProgramName : String;const CPUs:TC'+ - 'PUs) : TTarg','et;'#010+ + 'PUs) : TTarget;'#010+ 'begin'#010+ - ' Result:=AddProgram(AProgramName,CPUs,AllOSes);'#010+ + ' Result:=AddProgram(AProgramName,CPUs,AllOSes)',';'#010+ 'end;'#010+ '{$endif cpu_only_overloads}'#010+ #010+ @@ -1880,9 +1881,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'PUs;const OSes:TOSes) : TTarget;'#010+ 'begin'#010+ ' Result:=Add as TTarget;'#010+ - ' Result.Na','me:=AProgramName;'#010+ + ' Result.Name:=AProgramName;'#010+ ' Result.CPUs:=CPUs;'#010+ - ' Result.OSes:=OSes;'#010+ + ' Result.OSes:=OSe','s;'#010+ ' Result.TargetType:=ttProgram;'#010+ 'end;'#010+ #010+ @@ -1893,7 +1894,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Funct','ion TTargets.AddExampleUnit(Const AUnitName : String;const OSes'+ + 'Function TTargets.AddExampleUnit(Const AUnitName : String;cons','t OSes'+ ':TOSes) : TTarget;'#010+ 'begin'#010+ ' Result:=AddExampleUnit(AUnitName,AllCPUs,OSes);'#010+ @@ -1901,10 +1902,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ '{$ifdef cpu_only_overloads}'#010+ - 'Function TTargets.AddExampleUnit(Const AUnitName : String;const CPU','s'+ - ':TCPUs) : TTarget;'#010+ + 'Function TTargets.AddExampleUnit(Const AUnitName : String;const CPUs:T'+ + 'CPUs) : TTarget;'#010+ 'begin'#010+ - ' Result:=AddExampleUnit(AUnitName,CPUs,AllOSes);'#010+ + ' Result:=AddExampleUnit(AUnitN','ame,CPUs,AllOSes);'#010+ 'end;'#010+ '{$endif cpu_only_overloads}'#010+ #010+ @@ -1912,10 +1913,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TTargets.AddExampleUnit(Const AUnitName : String;const CPUs:T'+ 'CPUs;const OSes:TOSes) : TTarget;'#010+ 'begin'#010+ - ' Result:=Add as TT','arget;'#010+ + ' Result:=Add as TTarget;'#010+ ' Result.Name:=AUnitName;'#010+ ' Result.CPUs:=CPUs;'#010+ - ' Result.OSes:=OSes;'#010+ + ' R','esult.OSes:=OSes;'#010+ ' Result.TargetType:=ttExampleUnit;'#010+ 'end;'#010+ #010+ @@ -1923,20 +1924,20 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TTargets.AddExampleProgram(Const AProgramName : String) : TTa'+ 'rget;'#010+ 'begin'#010+ - ' Result:=AddExampleProgram(AProgramName',',AllCPUs,AllOSes);'#010+ + ' Result:=AddExampleProgram(AProgramName,AllCPUs,AllOSes);'#010+ 'end;'#010+ #010+ #010+ - 'Function TTargets.AddExampleProgram(Const AProgramName : String;const '+ - 'OSes:TOSes) : TTarget;'#010+ + 'Function TTargets.AddExamplePro','gram(Const AProgramName : String;cons'+ + 't OSes:TOSes) : TTarget;'#010+ 'begin'#010+ ' Result:=AddExampleProgram(AProgramName,AllCPUs,OSes);'#010+ 'end;'#010+ #010+ #010+ '{$ifdef cpu_only_overloads}'#010+ - 'Function TTargets.AddExa','mpleProgram(Const AProgramName : String;cons'+ - 't CPUs:TCPUs) : TTarget;'#010+ + 'Function TTargets.AddExampleProgram(Const AProgramName : String;const '+ + 'CPUs:TCPUs)',' : TTarget;'#010+ 'begin'#010+ ' Result:=AddExampleProgram(AProgramName,CPUs,AllOSes);'#010+ 'end;'#010+ @@ -1944,9 +1945,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'Function TTargets.AddExampleProgram(Const AProgramName : String;const '+ - 'CPUs',':TCPUs;const OSes:TOSes) : TTarget;'#010+ + 'CPUs:TCPUs;const OSes:TOSes) : TTarget;'#010+ 'begin'#010+ - ' Result:=Add as TTarget;'#010+ + ' Result:=Add a','s TTarget;'#010+ ' Result.Name:=AProgramName;'#010+ ' Result.CPUs:=CPUs;'#010+ ' Result.OSes:=OSes;'#010+ @@ -1954,20 +1955,20 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - '{******************************************************','*************'+ - '*********'#010+ - ' TSources'#010+ + '{*********************************************************************'+ + '*******'#010+ + ' TS','ources'#010+ '**********************************************************************'+ '******}'#010+ #010+ 'function TSources.GetSourceItem(Index : Integer): TSource;'#010+ 'begin'#010+ - ' Result:=TSource(Items[Index]);',#010+ + ' Result:=TSource(Items[Index]);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TSources.SetSourceItem(Index : Integer; const AValue: TSourc'+ - 'e);'#010+ + 'procedure TSources.SetSourceItem(Index : Integer;',' const AValue: TSou'+ + 'rce);'#010+ 'begin'#010+ ' Items[Index]:=AValue;'#010+ 'end;'#010+ @@ -1977,11 +1978,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' Result:=Add as TSource;'#010+ ' Result.Name:=AFiles;'#010+ - ' Resu','lt.FSourceType:=stDoc;'#010+ + ' Result.FSourceType:=stDoc;'#010+ 'end;'#010+ #010+ #010+ - 'function TSources.AddSrc(const AFiles : String) : TSource;'#010+ + 'function TSources.AddSrc(co','nst AFiles : String) : TSource;'#010+ 'begin'#010+ ' Result:=Add as TSource;'#010+ ' Result.Name:=AFiles;'#010+ @@ -1989,10 +1990,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TSources.AddExample(const AFiles : String) : TSourc','e;'#010+ + 'function TSources.AddExample(const AFiles : String) : TSource;'#010+ 'begin'#010+ ' Result:=Add as TSource;'#010+ - ' Result.Name:=AFiles;'#010+ + ' Result.Name:=AFiles;',#010+ ' Result.FSourceType:=stExample;'#010+ 'end;'#010+ #010+ @@ -2001,12 +2002,12 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' Result:=Add as TSource;'#010+ ' Result.Name:=AFiles;'#010+ - ' Result.FSourceType:=stTes','t;'#010+ + ' Result.FSourceType:=stTest;'#010+ 'end;'#010+ #010+ #010+ - 'procedure TSources.AddDocFiles(const AFileMask: string; Recursive: boo'+ - 'lean);'#010+ + 'procedure TSources.AddDocFiles(const AFileMask:',' string; Recursive: b'+ + 'oolean);'#010+ 'var'#010+ ' List : TStrings;'#010+ ' i: integer;'#010+ @@ -2014,22 +2015,22 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' List := TStringList.Create;'#010+ ' SearchFiles(AFileMask, Recursive, List);'#010+ ' for i:= 0 to Pred(List.Count) do'#010+ - ' ',' AddDoc(List[i]);'#010+ + ' AddDoc(List[i]);'#010+ ' List.Free;'#010+ 'end;'#010+ #010+ #010+ - 'procedure TSources.AddSrcFiles(const AFileMask: string; Recursive: boo'+ - 'lean);'#010+ + 'procedure TSources','.AddSrcFiles(const AFileMask: string; Recursive: b'+ + 'oolean);'#010+ 'var'#010+ ' List : TStrings;'#010+ ' i: integer;'#010+ 'begin'#010+ ' List := TStringList.Create;'#010+ ' SearchFiles(AFileMask, Recursive, List);'#010+ - ' for i:','= 0 to Pred(List.Count) do'#010+ + ' for i:= 0 to Pred(List.Count) do'#010+ ' AddSrc(List[i]);'#010+ - ' List.Free;'#010+ + ' List.Fr','ee;'#010+ 'end;'#010+ #010+ #010+ @@ -2040,8 +2041,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' i: integer;'#010+ 'begin'#010+ ' List := TStringList.Create;'#010+ - ' SearchFiles(AFil','eMask, Recursive, List);'#010+ - ' for i:= 0 to Pred(List.Count) do'#010+ + ' SearchFiles(AFileMask, Recursive, List);'#010+ + ' for i:= 0 to Pred(List.Count) ','do'#010+ ' AddExample(List[i]);'#010+ ' List.Free;'#010+ 'end;'#010+ @@ -2053,8 +2054,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' List : TStrings;'#010+ ' i: integer;'#010+ 'begin'#010+ - ' List := TStr','ingList.Create;'#010+ - ' SearchFiles(AFileMask, Recursive, List);'#010+ + ' List := TStringList.Create;'#010+ + ' SearchFiles(AFileMask, Recursive, List)',';'#010+ ' for i:= 0 to Pred(List.Count) do'#010+ ' AddTest(List[i]);'#010+ ' List.Free;'#010+ @@ -2063,99 +2064,97 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ '{*********************************************************************'+ '*******'#010+ - ' ',' TPackage'#010+ - '**********************************************************************'+ - '******}'#010+ + ' TPackage'#010+ + '*********************************************','***********************'+ + '********}'#010+ #010+ 'constructor TPackage.Create(ACollection: TCollection);'#010+ 'begin'#010+ ' inherited Create(ACollection);'#010+ ' FTargets:=TTargets.Create(TTarget);'#010+ - ' FSources:=TSour','ces.Create(TSource);'#010+ - ' FDependencies:=TDependencies.Create(TDependency);'#010+ + ' FSources:=TSources.Create(TSource);'#010+ + ' FDependencies:=TDependencies.Creat','e(TDependency);'#010+ ' FInstallFiles:=TConditionalStrings.Create(TConditionalString);'#010+ ' FCleanFiles:=TConditionalStrings.Create(TConditionalString);'#010+ - ' FArchiveFiles:=TConditionalStrings.Cr','eate(TConditionalString);'#010+ ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#010+ - ' FObjectPath:=TConditionalStrings.Create(TConditionalString);'#010+ + ' FObjectPath:=TConditionalStrings.','Create(TConditionalString);'#010+ ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#010+ - ' FSourcePath:=TConditiona','lStrings.Create(TConditionalString);'#010+ + ' FSourcePath:=TConditionalStrings.Create(TConditionalString);'#010+ ' FExamplePath:=TConditionalStrings.Create(TConditionalString);'#010+ - ' FTestPath:=TConditionalStrings.Create(TConditionalString);'#010+ + ' FTestPath:=TConditi','onalStrings.Create(TConditionalString);'#010+ ' FCommands:=TCommands.Create(TCommand);'#010+ ' FCPUs:=AllCPUs;'#010+ ' FOSes:=AllOSes;'#010+ - ' ',' // Implicit dependency on RTL'#010+ + ' // Implicit dependency on RTL'#010+ ' FDependencies.Add('#039'rtl'#039');'#010+ 'end;'#010+ #010+ #010+ 'destructor TPackage.destroy;'#010+ 'begin'#010+ - ' FreeAndNil(FDependencies);'#010+ + ' FreeAndNil(FDepende','ncies);'#010+ ' FreeAndNil(FInstallFiles);'#010+ ' FreeAndNil(FCleanFiles);'#010+ - ' FreeAndNil(FArchiveFiles);'#010+ - ' FreeAndNil(FIncludePath',');'#010+ + ' FreeAndNil(FIncludePath);'#010+ ' FreeAndNil(FSourcePath);'#010+ ' FreeAndNil(FExamplePath);'#010+ ' FreeAndNil(FTestPath);'#010+ ' FreeAndNil(FObjectPath);'#010+ ' FreeAndNil(FUnitPath);'#010+ - ' FreeAndNil(FSources);'#010+ + ' FreeAndNil(FSo','urces);'#010+ ' FreeAndNil(FTargets);'#010+ ' inherited destroy;'#010+ 'end;'#010+ #010+ #010+ - 'procedure TPackage.SetName(co','nst AValue: String);'#010+ + 'procedure TPackage.SetName(const AValue: String);'#010+ 'begin'#010+ ' inherited SetName(AValue);'#010+ ' // RTL should not have any dependencies'#010+ ' if AValue='#039'rtl'#039' then'#010+ ' FDependencies.Clear;'#010+ - 'end;'#010+ + 'end;'#010, #010+ #010+ 'Procedure TPackage.GetManifest(Manifest : TStrings);'#010+ 'Var'#010+ ' S : String;'#010+ - ' Release,Minor,','Major : Word;'#010+ + ' Release,Minor,Major : Word;'#010+ ' i : Integer;'#010+ ' D : TConditionalString;'#010+ 'begin'#010+ ' With Manifest do'#010+ ' begin'#010+ ' Add(Format('#039''#039',[QuoteXml(Name)]));'#010+ - ' SplitVersion(Version,Release,Minor,Major,S);'#010+ - ' Add(Format('#039''#039',[Release,Minor,Major,QuoteXMl(S)]));'#010+ + ' ','SplitVersion(Version,Release,Minor,Major,S);'#010+ + ' Add(Format('#039''#039',[Release,Minor,Major,QuoteXMl(S)]));'#010+ ' Add(Format('#039'%s'#039',[QuoteXml(FileName + '+ 'ZipExt)]));'#010+ - ' Add(Format('#039'%s'#039',[QuoteXml(Author)]));'#010+ - ' Add(Format('#039'%s'#039',','[QuoteXml(License)]))'+ - ';'#010+ + ' Add(F','ormat('#039'%s'#039',[QuoteXml(Author)]));'#010+ + ' Add(Format('#039'%s'#039',[QuoteXml(License)]));'#010+ ' if ExternalURL<>'#039#039' then'#010+ ' Add(Format('#039'%s'#039',[QuoteXml(Ext'+ 'ernalURL)]));'#010+ - ' Add(Format('#039'%s'#039',[QuoteXMl(Email)]));'#010+ + ' Add(Format('#039'%','s'#039',[QuoteXMl(Email)]));'#010+ ' S:=Description;'#010+ ' If (S<>'#039#039') then'#010+ - ' Add(Format(',#039'%s'#039',[QuoteXML(S)]'+ + ' Add(Format('#039'%s'#039',[QuoteXML(S)]'+ '));'#010+ ' If (Dependencies.Count>0) then'#010+ ' begin'#010+ ' Add('#039''#039');'#010+ - ' for I:=0 to Dependencies.Count-1 do'#010+ + ' for I:=0 to Depe','ndencies.Count-1 do'#010+ ' begin'#010+ ' D:=Dependencies[i];'#010+ ' S:='#039#039';'#010+ - ' ',' if (D.OSes<>AllOSes) then'#010+ + ' if (D.OSes<>AllOSes) then'#010+ ' S:=S+'#039' os="'#039'+OSesToString(D.OSes)+'#039'"'#039';'#010+ ' if (D.CPUs<>AllCPUs) then'#010+ - ' S:=S+'#039' cpu="'#039'+CPUsToString(D.CPUs)+'#039'"'#039';'#010+ - ' Add(Format('#039''#039',[S,QuoteXML(D.Value)]));'#010+ + ' S:=S+'#039' cpu','="'#039'+CPUsToString(D.CPUs)+'#039'"'#039';'+ + #010+ + ' Add(Format('#039'<'+ + '/dependency>'#039',[S,QuoteXML(D.Value)]));'#010+ ' end;'#010+ ' Add('#039''#039');'#010+ ' end;'#010+ @@ -2164,48 +2163,46 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TPackage.GetCleanFiles(List: TStrings; Const APrefixU, APref'+ - 'ixB : String; ACPU:TCPU; AO','S : TOS);'#010+ + 'procedur','e TPackage.GetCleanFiles(List: TStrings; Const APrefixU, APr'+ + 'efixB : String; ACPU:TCPU; AOS : TOS);'#010+ 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ ' AddConditionalStrings(List,CleanFiles,ACPU,AOS,APrefixU);'#010+ ' For I:=0 to FTargets.Count-1 do'#010+ - ' FTargets.TargetItems[I].GetCleanFiles(List, APrefixU, APrefixB, AC'+ - 'PU, AOS);'#010+ + ' FTargets.TargetIte','ms[I].GetCleanFiles(List, APrefixU, APrefixB, '+ + 'ACPU, AOS);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TPackage.GetIn','stallFiles(List: TStrings;Types : TTargetTyp'+ - 'es;Const APrefix, APrefixU, APrefixB: String; ACPU:TCPU; AOS : TOS);'#010+ + 'procedure TPackage.GetInstallFiles(List: TStrings;Types : TTargetTypes'+ + ';Const APrefix, APrefixU, APrefixB: String; ACPU:TCPU; AOS : TOS);'#010+ 'Var'#010+ ' I : Integer;'#010+ ' T : TTarget;'#010+ - 'begin'#010+ + 'begi','n'#010+ ' AddConditionalStrings(List,InstallFiles,ACPU,AOS,APrefix);'#010+ - ' For I:=0 to FTargets.Cou','nt-1 do'#010+ + ' For I:=0 to FTargets.Count-1 do'#010+ ' begin'#010+ ' T:=FTargets.TargetItems[I];'#010+ - ' if (T.TargetType in Types) then'#010+ - ' T.GetInstallFiles(List, APrefixU, APrefixB, ACPU, AOS);'#010+ + ' if (T.TargetType in Types) and (T.Install) then'#010+ + ' T.GetInstallFiles(List, APrefixU, APr','efixB, ACPU, AOS);'#010+ ' end;'#010+ 'end;'#010+ #010+ #010+ - 'procedure TPackage.GetArchiveFiles(List: TStrings; ACPU:TCPU; AOS : T', - 'OS);'#010+ + 'procedure TPackage.GetArchiveFiles(List: TStrings; ACPU:TCPU; AOS : TO'+ + 'S);'#010+ 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ ' // Targets only'#010+ ' For I:=0 to FTargets.Count-1 do'#010+ - ' FTargets.TargetItems[I].GetArchiveFiles(List,ACPU,AOS);'#010+ - ' // Additional archive files'#010+ - ' AddConditionalStrings(List,ArchiveFiles,ACPU,AOS);'#010+ + ' FTargets.TargetItems[I].GetArchiveFiles(List,ACPU,','AOS);'#010+ 'end;'#010+ #010+ #010+ - 'Function',' TPackage.GetDescription : string;'#010+ + 'Function TPackage.GetDescription : string;'#010+ 'Var'#010+ ' FN : String;'#010+ ' L : TStringList;'#010+ @@ -2215,16 +2212,16 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' else'#010+ ' If (FDescriptionFile<>'#039#039') then'#010+ ' begin'#010+ - ' // Always relative to binary name.'#010+ - ' FN',':=ExtractFilePath(ParamStr(0));'#010+ + ' // Always relative to bi','nary name.'#010+ + ' FN:=ExtractFilePath(ParamStr(0));'#010+ ' FN:=FN+FDescriptionFile;'#010+ ' If FileExists(FN) then'#010+ ' begin'#010+ ' L:=TStringList.Create;'#010+ ' Try'#010+ ' L.LoadFromFile(FN);'#010+ - ' Result:=L.Text;'#010+ - ' F','inally'#010+ + ' Result:=','L.Text;'#010+ + ' Finally'#010+ ' L.Free;'#010+ ' end;'#010+ ' end;'#010+ @@ -2238,7 +2235,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=FFileName'#010+ ' else'#010+ ' if Version <> '#039#039' then'#010+ - ' Result := Name + '#039'-'#039' + Versi','on'#010+ + ' Result ',':= Name + '#039'-'#039' + Version'#010+ ' else'#010+ ' Result := Name;'#010+ 'end;'#010+ @@ -2250,9 +2247,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' F:=TFileStream.Create(AFileName,fmOpenRead);'#010+ ' Try'#010+ - ' LoadUnitConfigFromStream(F);'#010+ + ' LoadUnitConfigFromStream','(F);'#010+ ' Finally'#010+ - ' F.','Free;'#010+ + ' F.Free;'#010+ ' end;'#010+ 'end;'#010+ #010+ @@ -2264,9 +2261,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' F:=TFileStream.Create(AFileName,fmCreate);'#010+ ' Try'#010+ - ' SaveUnitConfigToStream(F,ACPU,AOS);'#010+ + ' SaveUnitConfigToStream(F,ACPU,A','OS);'#010+ ' Finally'#010+ - ' F.','Free;'#010+ + ' F.Free;'#010+ ' end;'#010+ 'end;'#010+ #010+ @@ -2281,24 +2278,24 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' L:=TStringList.Create;'#010+ ' try'#010+ - ' With L do'#010+ + ' With L do'#010, ' begin'#010+ - ' V','alues[KeyName]:=Name;'#010+ + ' Values[KeyName]:=Name;'#010+ ' Values[KeyVersion]:=Version;'#010+ ' Values[KeyCPU]:=CPUToString(ACPU);'#010+ ' Values[KeyOS]:=OSToString(AOS);'#010+ ' Deps:='#039#039';'#010+ ' for i:=0 to Dependencies.Count-1 do'#010+ - ' begin'#010+ - ' D:=Depen','dencies[i];'#010+ + ' begin',#010+ + ' D:=Dependencies[i];'#010+ ' if (ACPU in D.CPUs) and (AOS in D.OSes) then'#010+ ' begin'#010+ ' if Deps='#039#039' then'#010+ ' Deps:=D.Value'#010+ ' else'#010+ ' Deps:=Deps+'#039','#039'+D.Value;'#010+ - ' end;'#010+ - ' ',' end;'#010+ + ' ',' end;'#010+ + ' end;'#010+ ' Values[KeyDepends]:=Deps;'#010+ ' if NeedLibC then'#010+ ' Values[KeyNeedLibC]:='#039'Y'#039#010+ @@ -2309,10 +2306,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Finally'#010+ ' L.Free;'#010+ ' end;'#010+ - 'end;'#010+ + 'end',';'#010+ #010+ #010+ - 'procedure TPackag','e.LoadUnitConfigFromStream(S: TStream);'#010+ + 'procedure TPackage.LoadUnitConfigFromStream(S: TStream);'#010+ 'Var'#010+ ' L,L2 : TStrings;'#010+ ' Line : String;'#010+ @@ -2324,7 +2321,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Try'#010+ ' L.LoadFromStream(S);'#010+ ' // Fix lines.'#010+ - ' For I:=L.Count-1 downto 0 do',#010+ + ' For I:=','L.Count-1 downto 0 do'#010+ ' begin'#010+ ' Line:=L[I];'#010+ ' P:=Pos('#039'='#039',Line);'#010+ @@ -2332,7 +2329,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (P=0) or ((PC<>0) and (PC'#039#039') then'#010+ + 'beg','in'#010+ + ' If (FBinInstallDir<>'#039#039') then'#010+ ' Result:=FBinInstallDir'#010+ ' else'#010+ ' If UnixPaths then'#010+ @@ -2445,9 +2442,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TCustomDefaults.GetExamplesInstallDir: String;'#010+ + 'function TCustomDefaults.GetExamplesInstallDir: Stri','ng;'#010+ 'begin'#010+ - ' If (FExam','plesInstallDir<>'#039#039') then'#010+ + ' If (FExamplesInstallDir<>'#039#039') then'#010+ ' Result:=FExamplesInstallDir'#010+ ' else'#010+ ' If UnixPaths then'#010+ @@ -2458,7 +2455,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TCustomDefaults.GetUn','itInstallDir: String;'#010+ + 'function ','TCustomDefaults.GetUnitInstallDir: String;'#010+ 'begin'#010+ ' If (FUnitInstallDir<>'#039#039') then'#010+ ' Result:=FUnitInstallDir'#010+ @@ -2466,8 +2463,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If UnixPaths then'#010+ ' Result:=BaseInstallDir+'#039'units'#039'+PathDelim+Target'#010+ ' else'#010+ - ' Result:=BaseInstallDir+'#039'units'#039'+PathDelim+Target;'#010+ - 'end;'#010, + ' Result:=BaseInstallDir+'#039'units'#039'+Pa','thDelim+Target;'#010+ + 'end;'#010+ #010+ #010+ 'function TCustomDefaults.GetLocalUnitDir: String;'#010+ @@ -2481,7 +2478,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (FGlobalUnitDir<>'#039#039') then'#010+ ' Result:=FGlobalUnitDir'#010+ ' else'#010+ - ' Result:=UnitInstallDir;'#010, + ' Res','ult:=UnitInstallDir;'#010+ 'end;'#010+ #010+ #010+ @@ -2490,9 +2487,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' // Use ExpandFileName to support ~/ expansion'#010+ ' if AValue<>'#039#039' then'#010+ ' FLocalUnitDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValue)'+ - ')'#010+ + ')'#010, ' else'#010+ - ' FLocalUnit','Dir:='#039#039';'#010+ + ' FLocalUnitDir:='#039#039';'#010+ 'end;'#010+ #010+ #010+ @@ -2500,10 +2497,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' // Use ExpandFileName to support ~/ expansion'#010+ ' if AValue<>'#039#039' then'#010+ - ' FGlobalUnitDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValue'+ - '))'#010+ + ' FGlobalUnitDir:=IncludeTrailingPathDelimiter(ExpandFileNam','e(AVal'+ + 'ue))'#010+ ' else'#010+ - ' ',' FGlobalUnitDir:='#039#039';'#010+ + ' FGlobalUnitDir:='#039#039';'#010+ 'end;'#010+ #010+ #010+ @@ -2511,8 +2508,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' // Use ExpandFileName to support ~/ expansion'#010+ ' if AValue<>'#039#039' then'#010+ - ' FBaseInstallDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValu', - 'e))'#010+ + ' FBaseInstallDir:=IncludeTrailingPathDelimiter','(ExpandFileName(AVa'+ + 'lue))'#010+ ' else'#010+ ' FBaseInstallDir:='#039#039';'#010+ ' UnitInstallDir:='#039#039';'#010+ @@ -2528,7 +2525,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomDefaults.SetPre','fix(const AValue: String);'#010+ + 'procedure T','CustomDefaults.SetPrefix(const AValue: String);'#010+ 'begin'#010+ ' if FPrefix=AValue then exit;'#010+ ' FPrefix:=IncludeTrailingPathDelimiter(AValue);'#010+ @@ -2538,18 +2535,18 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TCustomDefaults.SetTarget(const AValue: String);'#010+ 'Var'#010+ - ' P : Integer;'#010+ + ' P : Integer;',#010+ 'begin'#010+ - ' if FTarget<>','AValue then'#010+ + ' if FTarget<>AValue then'#010+ ' begin'#010+ ' P:=Pos('#039'-'#039',AValue);'#010+ ' If (P<>0) then'#010+ ' begin'#010+ ' FOS:=StringToOS(System.Copy(Avalue,P+1,Length(AValue)-P));'#010+ ' FCPU:=StringToCPU(System.Copy(Avalue,1,P-1));'#010+ - ' end'#010+ + ' end',#010+ ' else'#010+ - ' F','OS:=StringToOS(AValue);'#010+ + ' FOS:=StringToOS(AValue);'#010+ ' FTarget:=AValue;'#010+ ' end;'#010+ 'end;'#010+ @@ -2563,11 +2560,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'constructor TCustomDefaults.Create;'#010+ 'begin'#010+ - ' InitDefaults;'#010+ + ' InitDefau','lts;'#010+ 'end;'#010+ #010+ #010+ - 'procedure',' TCustomDefaults.InitDefaults;'#010+ + 'procedure TCustomDefaults.InitDefaults;'#010+ 'begin'#010+ '{$ifdef unix}'#010+ ' UnixPaths:=True;'#010+ @@ -2581,7 +2578,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomDefaults.LocalInit(Const AFileName :',' String);'#010+ + 'procedure TCustomDefaults.LocalI','nit(Const AFileName : String);'#010+ 'Var'#010+ ' FN : String;'#010+ 'begin'#010+ @@ -2592,8 +2589,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' FN:=GetEnvironmentVariable('#039'FPMAKECFG'#039');'#010+ ' If (FN<>'#039#039') then'#010+ ' If not FileExists(FN) then'#010+ - ' FN:='#039#039';'#010+ - ' // User conf','ig file fpmake.cfg'#010+ + ' FN:','='#039#039';'#010+ + ' // User config file fpmake.cfg'#010+ ' If (FN='#039#039') then'#010+ ' begin'#010+ ' FN:=GetAppConfigFile(False);'#010+ @@ -2603,7 +2600,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' // Global config file fpmake.cfg'#010+ ' If (FN='#039#039') then'#010+ ' begin'#010+ - ' FN:=GetAppConfigFil','e(True);'#010+ + ' ',' FN:=GetAppConfigFile(True);'#010+ ' If Not FileExists(FN) then'#010+ ' FN:='#039#039';'#010+ ' end;'#010+ @@ -2615,40 +2612,40 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TCustomDefaults.CompilerDefaults;'#010+ '{$ifdef HAS_UNIT_PROCESS}'#010+ - 'var'#010+ - ' infoSL : TStringLis','t;'#010+ + 'var'#010, + ' infoSL : TStringList;'#010+ '{$endif HAS_UNIT_PROCESS}'#010+ 'begin'#010+ ' if (CPU=cpuNone) or (OS=osNone) or (FCompilerVersion='#039#039') then'#010+ ' begin'#010+ '{$ifdef HAS_UNIT_PROCESS}'#010+ ' // Detect compiler version/target from -i option'#010+ - ' infosl:=TStringList.Create;'#010+ - ' infosl.Del','imiter:='#039' '#039';'#010+ + ' infosl:=TStringList.Cre','ate;'#010+ + ' infosl.Delimiter:='#039' '#039';'#010+ ' infosl.DelimitedText:=GetCompilerInfo(GetCompiler,'#039'-iVTPTO'#039+ ');'#010+ ' if infosl.Count<>3 then'#010+ ' Raise EInstallerError.Create(SErrInvalidFPCInfo);'#010+ ' if FCompilerVersion='#039#039' then'#010+ - ' FCompilerVersion:=infosl[0];'#010, + ' FCompile','rVersion:=infosl[0];'#010+ ' if CPU=cpuNone then'#010+ ' CPU:=StringToCPU(infosl[1]);'#010+ ' if OS=osNone then'#010+ ' OS:=StringToOS(infosl[2]);'#010+ '{$else HAS_UNIT_PROCESS}'#010+ ' // Defaults taken from compiler used to build fpmake'#010+ - ' if CPU=cpuNone then'#010+ - ' ','CPU:=StringToCPU({$I %FPCTARGETCPU%});'#010+ + ' if CPU=','cpuNone then'#010+ + ' CPU:=StringToCPU({$I %FPCTARGETCPU%});'#010+ ' if OS=osNone then'#010+ ' OS:=StringToOS({$I %FPCTARGETOS%});'#010+ ' if FCompilerVersion='#039#039' then'#010+ ' FCompilerVersion:={$I %FPCVERSION%};'#010+ '{$endif HAS_UNIT_PROCESS}'#010+ - ' end;'#010+ + ' end',';'#010+ 'end;'#010+ #010+ #010+ - 'procedure TC','ustomDefaults.LoadFromFile(Const AFileName: String);'#010+ + 'procedure TCustomDefaults.LoadFromFile(Const AFileName: String);'#010+ 'Var'#010+ ' F : TFileStream;'#010+ 'begin'#010+ @@ -2661,7 +2658,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomDefaults.SaveToFile(Const AFi','leName: String);'#010+ + 'procedure TCustomDefaults','.SaveToFile(Const AFileName: String);'#010+ 'Var'#010+ ' F : TFileStream;'#010+ 'begin'#010+ @@ -2676,9 +2673,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TCustomDefaults.SaveToStream(S : TStream);'#010+ 'Var'#010+ - ' L : TStringList;'#010+ + ' L : TS','tringList;'#010+ 'begin'#010+ - ' L:','=TStringList.Create;'#010+ + ' L:=TStringList.Create;'#010+ ' try'#010+ ' With L do'#010+ ' begin'#010+ @@ -2686,26 +2683,26 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Values[KeyCompiler]:=FCompiler;'#010+ ' Values[KeyCopy]:=FCopy;'#010+ ' Values[KeyMkDir]:=FMkDir;'#010+ - ' Values[KeyMove]:=FMove;'#010+ - ' Values[KeyOptio','ns]:=FOptions;'#010+ + ' Values[KeyMove]:=FMove;'#010, + ' Values[KeyOptions]:=FOptions;'#010+ ' Values[KeyCPU]:=CPUToString(FCPU);'#010+ ' Values[KeyOS]:=OSToString(FOS);'#010+ ' Values[KeyMode]:=ModeToString(FMode);'#010+ ' Values[KeyLocalUnitDir]:=FLocalUnitDir;'#010+ - ' Values[KeyGlobalUnitDir]:=FGlobalUnitDir;'#010+ - ' Va','lues[KeyPrefix]:=FPrefix;'#010+ + ' Values[KeyGlobalUnitDir]:=FGl','obalUnitDir;'#010+ + ' Values[KeyPrefix]:=FPrefix;'#010+ ' Values[KeyBaseInstallDir]:=FBaseInstallDir;'#010+ ' Values[KeyUnitInstallDir]:=FUnitInstallDir;'#010+ ' Values[KeyBinInstallDir]:=FBinInstallDir;'#010+ - ' Values[KeyDocInstallDir]:=FDocInstallDir;'#010+ - ' Values[KeyEx','amplesInstallDir]:=FExamplesInstallDir;'#010+ + ' Values[KeyDocInstallDir]:=FDocInstallDi','r;'#010+ + ' Values[KeyExamplesInstallDir]:=FExamplesInstallDir;'#010+ ' Values[KeyRemove]:=FRemove;'#010+ ' Values[KeyTarget]:=FTarget;'#010+ ' Values[KeySourceExt]:=FSourceExt;'#010+ ' if FNoFPCCfg then'#010+ ' Values[KeyNoFPCCfg]:='#039'Y'#039';'#010+ ' end;'#010+ - ' L.SaveToStream(S);'#010, + ' ',' L.SaveToStream(S);'#010+ ' Finally'#010+ ' L.Free;'#010+ ' end;'#010+ @@ -2721,8 +2718,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' L:=TStringList.Create;'#010+ ' Try'#010+ ' L.LoadFromStream(S);'#010+ - ' // Fix lines.'#010+ - ' For I:=L.','Count-1 downto 0 do'#010+ + ' // Fix',' lines.'#010+ + ' For I:=L.Count-1 downto 0 do'#010+ ' begin'#010+ ' Line:=L[I];'#010+ ' P:=Pos('#039'='#039',Line);'#010+ @@ -2730,7 +2727,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (P=0) or ((PC<>0) and (PC'#039#039') then'#010+ - ' FOS:=StringToOS(L','ine);'#010+ + ' ',' FOS:=StringToOS(Line);'#010+ ' Line:=Values[KeyMode];'#010+ ' If (Line<>'#039#039') then'#010+ ' FMode:=StringToMode(Line);'#010+ ' FTarget:=Values[KeyTarget];'#010+ ' FLocalUnitDir:=Values[KeyLocalUnitDir];'#010+ - ' FGlobalUnitDir:=Values[KeyGlobalUnitDir];'#010+ - ' FPrefix:=Va','lues[KeyPrefix];'#010+ + ' FGlobalUnitDir:=Values[KeyGlobalUnitDi','r];'#010+ + ' FPrefix:=Values[KeyPrefix];'#010+ ' FBaseInstallDir:=Values[KeyBaseInstallDir];'#010+ ' FUnitInstallDir:=Values[KeyUnitInstallDir];'#010+ ' FBinInstallDir:=Values[KeyBinInstallDir];'#010+ ' FDocInstallDir:=Values[KeyDocInstallDir];'#010+ - ' FExamplesInstallDir:=','Values[KeyExamplesInstallDir];'#010+ + ' ','FExamplesInstallDir:=Values[KeyExamplesInstallDir];'#010+ ' FSourceExt:=Values[KeySourceExt];'#010+ ' If (FSourceExt='#039#039') then'#010+ ' FSourceExt:=PPExt;'#010+ @@ -2767,19 +2764,19 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ ' Finally'#010+ ' L.Free;'#010+ - ' end;'#010+ + ' end;',#010+ 'end;'#010+ #010+ #010+ - '{************','*******************************************************'+ - '*********'#010+ + '{*********************************************************************'+ + '*******'#010+ ' TFPCDefaults'#010+ '**********************************************************************'+ '******}'#010+ #010+ - 'procedure TFPCDefaults.CompilerDefaults;'#010+ + 'procedure TFPCDefaults.CompilerDe','faults;'#010+ 'var'#010+ - ' BD : St','ring;'#010+ + ' BD : String;'#010+ 'begin'#010+ ' inherited CompilerDefaults;'#010+ #010+ @@ -2788,16 +2785,16 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'));'#010+ ' if BD='#039#039' then'#010+ ' begin'#010+ - ' BD:='#039'/usr/local/lib/fpc/'#039'+FCompilerVersio','n;'#010+ + ' BD:='#039'/usr/local/lib/','fpc/'#039'+FCompilerVersion;'#010+ ' if not DirectoryExists(BD) and'#010+ ' DirectoryExists('#039'/usr/lib/fpc/'#039'+FCompilerVersion) the'+ 'n'#010+ ' BD:='#039'/usr/lib/fpc/'#039'+FCompilerVersion;'#010+ ' end;'#010+ '{$else unix}'#010+ - ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'));'#010+ + ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'))',';'#010+ ' if BD='#039#039' then'#010+ - ' ',' begin'#010+ + ' begin'#010+ ' BD:=ExtractFilePath(FCompiler)+'#039'..'#039';'#010+ ' if not(DirectoryExists(BD+'#039'/units'#039')) and'#010+ ' not(DirectoryExists(BD+'#039'/rtl'#039')) then'#010+ @@ -2805,24 +2802,24 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ '{$endif unix}'#010+ #010+ - ' // Where to install by default'#010+ - ' if (','FBaseInstallDir='#039#039') and (FPrefix='#039#039') then'#010+ + ' // Where to inst','all by default'#010+ + ' if (FBaseInstallDir='#039#039') and (FPrefix='#039#039') then'#010+ ' BaseInstallDir:=BD;'#010+ #010+ ' // Where to find the units by default'#010+ ' if (FGlobalUnitDir='#039#039') then'#010+ ' GlobalUnitDir:=IncludeTrailingPathDelimiter(BD)+'#039'units'#039'+Pa'+ 'thDelim+Target;'#010+ - 'end;'#010+ + 'end;',#010+ #010+ #010+ - '{*****************','**************************************************'+ - '*********'#010+ + '{*********************************************************************'+ + '*******'#010+ ' TCustomInstaller'#010+ '**********************************************************************'+ '******}'#010+ #010+ - 'constructor TCustomInstaller.Create(AOwner: TComponent);',#010+ + 'constructor TCustomInstaller.Create','(AOwner: TComponent);'#010+ 'begin'#010+ ' Dictionary:=DictionaryClass.Create(Nil);'#010+ ' AnalyzeOptions;'#010+ @@ -2838,7 +2835,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomInstaller','.Log(Level: TVerboseLevel; const Msg: Stri'+ + 'proce','dure TCustomInstaller.Log(Level: TVerboseLevel; const Msg: Stri'+ 'ng);'#010+ 'begin'#010+ ' If Level in FLogLevels then'#010+ @@ -2849,9 +2846,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Writeln(StdOut,Msg);'#010+ ' end;'#010+ 'end;'#010+ + #010, #010+ - #010+ - 'procedure TCustomIns','taller.CreatePackages;'#010+ + 'procedure TCustomInstaller.CreatePackages;'#010+ 'begin'#010+ ' FPAckages:=TPackages.Create(TPackage);'#010+ 'end;'#010+ @@ -2861,7 +2858,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' FBuildEngine:=TBuildEngine.Create(Self);'#010+ '// FBuildEngine.Defaults:=Defaults;'#010+ - ' FBuildEngine.ListMode:=FListM','ode;'#010+ + ' FBuildEn','gine.ListMode:=FListMode;'#010+ ' FBuildEngine.OnLog:=@Self.Log;'#010+ 'end;'#010+ #010+ @@ -2873,9 +2870,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'procedure TCustomInstaller.Error(const Fmt: String; Args: array of con'+ - 'st);'#010+ + 's','t);'#010+ 'begin'#010+ - ' Raise EIn','stallerError.CreateFmt(Fmt,Args);'#010+ + ' Raise EInstallerError.CreateFmt(Fmt,Args);'#010+ 'end;'#010+ #010+ #010+ @@ -2887,7 +2884,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TCustomInstaller.AnalyzeOptions;'#010+ #010+ - ' Function CheckOption(Index : In','teger;const Short,Long : String): B'+ + ' Function C','heckOption(Index : Integer;const Short,Long : String): B'+ 'oolean;'#010+ ' var'#010+ ' O : String;'#010+ @@ -2897,7 +2894,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( '1,Length(Long)+3)=('#039'--'#039'+long+'#039'='#039'));'#010+ ' end;'#010+ #010+ - ' Function CheckCommand(Index : Integer;const',' Short,Long : String): '+ + ' Function CheckCommand(','Index : Integer;const Short,Long : String): '+ 'Boolean;'#010+ ' var'#010+ ' O : String;'#010+ @@ -2910,7 +2907,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Var'#010+ ' P : Integer;'#010+ ' begin'#010+ - ' if (Length(ParamStr(','Index))>1) and (Paramstr(Index)[2]<>'#039'-'#039+ + ' ',' if (Length(ParamStr(Index))>1) and (Paramstr(Index)[2]<>'#039'-'#039+ ') then'#010+ ' begin'#010+ ' If Index2 then'#010+ ' begin'#010+ ' P:=Pos('#039'='#039',Paramstr(Index));'#010+ @@ -2928,8 +2925,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Error(SErrNeedArgument,[Index,ParamStr(Index)])'#010+ ' else'#010+ ' begin'#010+ - ' Result:=Paramstr(Index);'#010+ - ' De','lete(Result,1,P);'#010+ + ' Result:=Params','tr(Index);'#010+ + ' Delete(Result,1,P);'#010+ ' end;'#010+ ' end;'#010+ ' end;'#010+ @@ -2944,43 +2941,43 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' While (I'#039#039' the','n'#010+ + ' If Def','aultsFileName<>'#039#039' then'#010+ ' Defaults.LocalInit(DefaultsFileName);'#010+ ' Defaults.CompilerDefaults;'#010+ 'end;'#010+ @@ -3000,7 +2997,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ ' Procedure LogCmd(const LC,Msg : String);'#010+ ' begin'#010+ - ' Log(vlInfo,Format('#039' %-12s %s'#039,',[LC,MSG]));'#010+ + ' Log(vlIn','fo,Format('#039' %-12s %s'#039',[LC,MSG]));'#010+ ' end;'#010+ #010+ ' Procedure LogOption(const C,LC,Msg : String);'#010+ @@ -3010,7 +3007,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ ' Procedure LogArgOption(const C,LC,Msg : String);'#010+ ' begin'#010+ - ' Log(vlInfo,Format('#039' -%s --%-20s %s'#039',[C',',LC+'#039'='#039'+SV'+ + ' Log(vlInfo,Format','('#039' -%s --%-20s %s'#039',[C,LC+'#039'='#039'+SV'+ 'alue,MSG]));'#010+ ' end;'#010+ #010+ @@ -3020,29 +3017,29 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (FMT<>'#039#039') then'#010+ ' Log(vlInfo,Format(Fmt,Args));'#010+ ' Log(vlInfo,Format(SHelpUsage,[Paramstr(0)]));'#010+ - ' Log(vlInfo,SHelpCommand);'#010+ - ' LogC','md('#039'compile'#039',SHelpCompile);'#010+ + ' Log(vlInfo,','SHelpCommand);'#010+ + ' LogCmd('#039'compile'#039',SHelpCompile);'#010+ ' LogCmd('#039'build'#039',SHelpBuild);'#010+ ' LogCmd('#039'install'#039',SHelpInstall);'#010+ ' LogCmd('#039'clean'#039',SHelpClean);'#010+ ' LogCmd('#039'archive'#039',SHelpArchive);'#010+ ' LogCmd('#039'manifest'#039',SHelpManifest);'#010+ - ' Log(vlInfo,SHelpCmdOptions);'#010+ - ' LogOption('#039'h'#039','#039,'help'#039',SHelpHelp);'#010+ + ' Log(vlInfo,SHelpCmdOption','s);'#010+ + ' LogOption('#039'h'#039','#039'help'#039',SHelpHelp);'#010+ ' LogOption('#039'l'#039','#039'list-commands'#039',SHelpList);'#010+ ' LogOption('#039'n'#039','#039'nofpccfg'#039',SHelpNoFPCCfg);'#010+ ' LogOption('#039'v'#039','#039'verbose'#039',SHelpVerbose);'#010+ ' LogArgOption('#039'C'#039','#039'cpu'#039',SHelpCPU);'#010+ ' LogArgOption('#039'O'#039','#039'os'#039',SHelpOS);'#010+ - ' LogArgOption('#039't'#039','#039'targ','et'#039',SHelpTarget);'#010+ + ' L','ogArgOption('#039't'#039','#039'target'#039',SHelpTarget);'#010+ ' LogArgOption('#039'P'#039','#039'prefix'#039',SHelpPrefix);'#010+ ' LogArgOption('#039'B'#039','#039'baseinstalldir'#039',SHelpBaseInstalldi'+ 'r);'#010+ ' LogArgOption('#039'UL'#039','#039'localunitdir'#039',SHelpLocalUnitdir);'+ #010+ - ' LogArgOption('#039'UG'#039','#039'globalunitdir'#039',SHelpGlobalUnitdir'+ - ');'#010+ - ' LogArgOp','tion('#039'r'#039','#039'compiler'#039',SHelpCompiler);'#010+ + ' LogArgOption('#039'UG'#039','#039'globalunitdir'#039',SHelpGloba','lUnitd'+ + 'ir);'#010+ + ' LogArgOption('#039'r'#039','#039'compiler'#039',SHelpCompiler);'#010+ ' LogArgOption('#039'f'#039','#039'config'#039',SHelpConfig);'#010+ ' Log(vlInfo,'#039#039');'#010+ ' If (FMT<>'#039#039') then'#010+ @@ -3054,7 +3051,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TCustomInstaller.Compile(Force: Boolean);'#010+ 'begin'#010+ - ' FBuildEngine.ForceCompile',':=Force;'#010+ + ' FBui','ldEngine.ForceCompile:=Force;'#010+ ' FBuildEngine.Compile(FPackages);'#010+ 'end;'#010+ #010+ @@ -3071,7 +3068,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomInstaller.','Archive;'#010+ + 'proced','ure TCustomInstaller.Archive;'#010+ 'begin'#010+ ' // Force generation of manifest.xml, this is required for the reposi'+ 'tory'#010+ @@ -3084,9 +3081,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Var'#010+ ' L : TStrings;'#010+ 'begin'#010+ - ' L:=TStringList.Create;'#010+ + ' L:=TString','List.Create;'#010+ ' Try'#010+ - ' ',' Log(vlDebug, Format(SDbgGenerating, [ManifestFile]));'#010+ + ' Log(vlDebug, Format(SDbgGenerating, [ManifestFile]));'#010+ ' L.Add('#039''#039');'#010+ ' BuildEngine.GetManifest(FPackages,L);'#010+ ' L.SaveToFile(ManifestFile);'#010+ @@ -3096,7 +3093,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TCustomInstaller.CheckPackag','es;'#010+ + 'procedure TCustom','Installer.CheckPackages;'#010+ 'begin'#010+ ' If (FPackages.Count=0) then'#010+ ' Error(SErrNoPackagesDefined);'#010+ @@ -3109,8 +3106,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=True;'#010+ ' try'#010+ ' CheckPackages;'#010+ - ' CreateBuildEngine;'#010+ - ' Case R','unMode of'#010+ + ' CreateBu','ildEngine;'#010+ + ' Case RunMode of'#010+ ' rmCompile : Compile(False);'#010+ ' rmBuild : Compile(True);'#010+ ' rmInstall : Install;'#010+ @@ -3119,8 +3116,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' rmManifest : Manifest;'#010+ ' end;'#010+ ' except'#010+ - ' On E : Exception do'#010+ - ' begin'#010, + ' On E : Exce','ption do'#010+ + ' begin'#010+ ' Log(vlError,SErrInstaller);'#010+ ' Log(vlError,E.Message);'#010+ ' Result:=False;'#010+ @@ -3132,7 +3129,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - '{*********************************************','**********************'+ + '{************************','*******************************************'+ '*********'#010+ ' TFPCInstaller'#010+ '**********************************************************************'+ @@ -3140,7 +3137,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'constructor TFPCInstaller.Create(AOwner: TComponent);'#010+ 'begin'#010+ - ' if assigned(Defaults)',' then'#010+ + ' ','if assigned(Defaults) then'#010+ ' Error(SErrAlreadyInitialized);'#010+ ' Defaults:=TFPCDefaults.Create;'#010+ ' inherited Create(AOwner);'#010+ @@ -3149,33 +3146,33 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ '{*********************************************************************'+ '*******'#010+ - ' TBasicInstaller'#010+ - '****','****************************************************************'+ - '********}'#010+ + ' ',' TBasicInstaller'#010+ + '**********************************************************************'+ + '******}'#010+ #010+ 'constructor TBasicInstaller.Create(AOwner: TComponent);'#010+ 'begin'#010+ ' if assigned(Defaults) then'#010+ ' Error(SErrAlreadyInitialized);'#010+ - ' Defaults:=TBasicDefaults.Create;'#010+ - ' in','herited Create(AOwner);'#010+ + ' Defaults:=TBasic','Defaults.Create;'#010+ + ' inherited Create(AOwner);'#010+ 'end;'#010+ #010+ #010+ '{*********************************************************************'+ '*******'#010+ ' TBuildEngine'#010+ - '**********************************************************************'+ - '******}'#010+ + '****************************************************************','****'+ + '********}'#010+ #010+ - 'constr','uctor TBuildEngine.Create(AOwner: TComponent);'#010+ + 'constructor TBuildEngine.Create(AOwner: TComponent);'#010+ 'begin'#010+ ' inherited Create(AOwner);'#010+ ' // Maybe this should be the current directory ?'#010+ ' // Or have it as a command-line option.'#010+ - ' // Would allow to put all '#039'installers'#039' in one dir and call t'+ - 'hem'#010+ - ' ',' // With --start-dir=/path/to/sources.'#010+ + ' // Would allow to put all '#039'installers'#039' in on','e dir and call'+ + ' them'#010+ + ' // With --start-dir=/path/to/sources.'#010+ ' FStartDir:=includeTrailingPathDelimiter(GetCurrentDir);'#010+ ' FExternalPackages:=TPackages.Create(TPackage);'#010+ 'end;'#010+ @@ -3183,8 +3180,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'destructor TBuildEngine.Destroy;'#010+ 'begin'#010+ - ' FreeAndNil(FExternalPackages);'#010+ - ' inherited Des','troy;'#010+ + ' FreeAndNil(FExternalPacka','ges);'#010+ + ' inherited Destroy;'#010+ 'end;'#010+ #010+ #010+ @@ -3200,7 +3197,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Error(const',' Fmt: String; const Args: array of'+ + 'procedure TBu','ildEngine.Error(const Fmt: String; const Args: array of'+ ' const);'#010+ 'begin'#010+ ' Raise EInstallerError.CreateFmt(Fmt,Args);'#010+ @@ -3211,16 +3208,16 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'rror : Boolean = False);'#010+ 'Var'#010+ ' E : Integer;'#010+ - 'begin'#010+ - ' Log(vlInfo,SInfoE','xecutingCommand,[Cmd,Args]);'#010+ + 'begi','n'#010+ + ' Log(vlInfo,SInfoExecutingCommand,[Cmd,Args]);'#010+ ' if ListMode then'#010+ ' Log(vlCommand,'#039'%s %s'#039',[Cmd,Args])'#010+ ' else'#010+ ' begin'#010+ ' // We should check cmd for spaces, and move all after first spac'+ 'e to args.'#010+ - ' E:=ExecuteProcess(cmd,args);'#010+ - ' If (E<>0) and (','not IgnoreError) then'#010+ + ' E:=ExecuteProcess(cmd,args);'#010, + ' If (E<>0) and (not IgnoreError) then'#010+ ' Error(SErrExternalCommandFailed,[Cmd,E]);'#010+ ' end;'#010+ 'end;'#010+ @@ -3229,8 +3226,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TBuildEngine.SysDirectoryExists(const ADir:string):Boolean;'#010+ 'begin'#010+ ' result:=SysUtils.DirectoryExists(ADir);'#010+ - ' if result then'#010+ - ' Log(vlDebug,SD','bgDirectoryExists,[ADir,SDbgFound])'#010+ + ' if result th','en'#010+ + ' Log(vlDebug,SDbgDirectoryExists,[ADir,SDbgFound])'#010+ ' else'#010+ ' Log(vlDebug,SDbgDirectoryExists,[ADir,SDbgNotFound]);'#010+ 'end;'#010+ @@ -3238,8 +3235,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'Function TBuildEngine.SysFileExists(const AFileName:string):Boolean;'#010+ 'begin'#010+ - ' result:=SysUtils.FileExists(AFileName);'#010+ - ' if result the','n'#010+ + ' result:=SysUtils.FileExists(AFileN','ame);'#010+ + ' if result then'#010+ ' Log(vlDebug,SDbgFileExists,[AFileName,SDbgFound])'#010+ ' else'#010+ ' Log(vlDebug,SDbgFileExists,[AFileName,SDbgNotFound]);'#010+ @@ -3249,8 +3246,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure TBuildEngine.SysCopyFile(Const Src,Dest : String);'#010+ 'Var'#010+ ' D,S : String;'#010+ - ' Fin,FOut : TFileStream;'#010+ - ' Cou','nt : Int64;'#010+ + ' Fin,FOut',' : TFileStream;'#010+ + ' Count : Int64;'#010+ ' A : Integer;'#010+ 'begin'#010+ ' Log(vlInfo,SInfoCopyingFile,[Src,Dest]);'#010+ @@ -3258,8 +3255,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Try'#010+ ' D:=IncludeTrailingPathDelimiter(Dest);'#010+ ' If DirectoryExists(D) then'#010+ - ' S:=D+ExtractFileName(Src)'#010+ - ' else'#010, + ' S:=D+ExtractFi','leName(Src)'#010+ + ' else'#010+ ' S:=Dest;'#010+ ' FOut:=TFileStream.Create(S,fmCreate);'#010+ ' Try'#010+ @@ -3269,7 +3266,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Finally'#010+ ' FreeAndNil(Fout);'#010+ ' end;'#010+ - ' A:=FileGetDate(FIn.','Handle);'#010+ + ' ',' A:=FileGetDate(FIn.Handle);'#010+ ' If (A=-1) then'#010+ ' log(vlWarning,SWarnFailedToGetTime,[Src])'#010+ ' else'#010+ @@ -3281,7 +3278,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.SysM','oveFile(Const Src,Dest : String);'#010+ + 'proced','ure TBuildEngine.SysMoveFile(Const Src,Dest : String);'#010+ 'Var'#010+ ' S : String;'#010+ 'begin'#010+ @@ -3289,8 +3286,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' S:=IncludeTrailingPathDelimiter(Dest)+ExtractFileName(Src)'#010+ ' else'#010+ ' S:=Dest;'#010+ - ' If Not RenameFile(Src,S) then'#010+ - ' b','egin'#010+ + ' If Not RenameF','ile(Src,S) then'#010+ + ' begin'#010+ ' Try'#010+ ' SysCopyFile(Src,S);'#010+ ' SysDeleteFile(Src);'#010+ @@ -3302,7 +3299,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.SysDeleteFile(Const AFileName : Strin','g);'#010+ + 'procedure TBuildEngine.SysDeleteFile(Co','nst AFileName : String);'#010+ 'begin'#010+ ' if not FileExists(AFileName) then'#010+ ' Log(vlWarning,SWarnFileDoesNotExist,[AFileName])'#010+ @@ -3311,15 +3308,15 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.SysArchiveFiles(List: TString','s;Const AFileNam'+ + 'procedure TBuildEngine.SysArchi','veFiles(List: TStrings;Const AFileNam'+ 'e: String);'#010+ 'begin'#010+ ' If Not (Assigned(OnArchivefiles) or Assigned(ArchiveFilesProc)) then'+ #010+ ' Raise EInstallerError.Create(SErrNoArchiveSupport);'#010+ ' If Assigned(ArchiveFilesProc) then'#010+ - ' ArchiveFilesProc(AFileName,List)'#010+ - ' els','e'#010+ + ' ArchiveFilesProc(','AFileName,List)'#010+ + ' else'#010+ ' OnArchiveFiles(AFileName,List);'#010+ 'end;'#010+ #010+ @@ -3336,7 +3333,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Log(Level: TVerbose','Level; const Msg: String);'+ + 'procedure TBuildEngin','e.Log(Level: TVerboseLevel; const Msg: String);'+ #010+ 'begin'#010+ ' If Assigned(FOnLog) then'#010+ @@ -3349,7 +3346,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Log(Level: TVerb','oseLevel; const Fmt: String;c'+ + 'procedure TBuildEn','gine.Log(Level: TVerboseLevel; const Fmt: String;c'+ 'onst Args: array of const);'#010+ 'begin'#010+ ' Log(Level,Format(Fmt,Args));'#010+ @@ -3362,8 +3359,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' D:=FStartDir;'#010+ ' D:=D+ADir;'#010+ - ' Log(vlInfo,SInfoEnterDir,[D]);'#010+ - ' If N','ot SetCurrentDir(D) then'#010+ + ' Log(vlInfo,SInfo','EnterDir,[D]);'#010+ + ' If Not SetCurrentDir(D) then'#010+ ' Error(SErrChangeDirFailed,[D]);'#010+ 'end;'#010+ #010+ @@ -3377,7 +3374,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'begin'#010+ ' CmdCreateDir(DestDir);'#010+ - ' If (Defaults.Copy<>'#039#039') th','en'#010+ + ' If (','Defaults.Copy<>'#039#039') then'#010+ ' begin'#010+ ' Args:=FileListToString(List,'#039#039');'#010+ ' Args:=Args+'#039' '#039'+DestDir;'#010+ @@ -3389,7 +3386,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Cmd','CreateDir(const DestDir: String);'#010+ + 'proce','dure TBuildEngine.CmdCreateDir(const DestDir: String);'#010+ 'begin'#010+ ' If (Defaults.MkDir<>'#039#039') then'#010+ ' ExecuteCommand(Defaults.MkDir,DestDir)'#010+ @@ -3399,7 +3396,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.C','mdMoveFiles(List: TStrings; Const DestDir: S'+ + 'pro','cedure TBuildEngine.CmdMoveFiles(List: TStrings; Const DestDir: S'+ 'tring);'#010+ 'Var'#010+ ' Args : String;'#010+ @@ -3409,8 +3406,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (Defaults.Move<>'#039#039') then'#010+ ' begin'#010+ ' Args:=FileListToString(List,'#039#039');'#010+ - ' Args:=Args+'#039' '#039'+DestDir;'#010+ - ' Execut','eCommand(Defaults.Move,Args);'#010+ + ' Args:=Args+'#039' '#039'+','DestDir;'#010+ + ' ExecuteCommand(Defaults.Move,Args);'#010+ ' end'#010+ ' else'#010+ ' For I:=0 to List.Count-1 do'#010+ @@ -3423,7 +3420,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Args : String;'#010+ ' I : Integer;'#010+ 'begin'#010+ - ' If (Defaults.Remove<>',#039#039') then'#010+ + ' ','If (Defaults.Remove<>'#039#039') then'#010+ ' begin'#010+ ' Args:=FileListToString(List,'#039#039');'#010+ ' ExecuteCommand(Defaults.Remove,Args);'#010+ @@ -3434,7 +3431,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.CmdArchiveFiles(List: TStrings;',' Const Archive'+ + 'procedure TBuildEngine.CmdArchive','Files(List: TStrings; Const Archive'+ 'File: String);'#010+ 'Var'#010+ ' S,C,O : String;'#010+ @@ -3444,8 +3441,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' else'#010+ ' begin'#010+ ' S:=FileListToString(List,'#039#039');'#010+ - ' SplitCommand(Defaults.Archive,C,O);'#010+ - ' If (O='#039#039') th','en'#010+ + ' SplitCommand(Defaults.Archive,C,O',');'#010+ + ' If (O='#039#039') then'#010+ ' O:=ArchiveFile+'#039' '#039'+S'#010+ ' else'#010+ ' O:=Substitute(O,['#039'ARCHIVE'#039',ArchiveFile,'#039'FILESORDIR'+ @@ -3456,8 +3453,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'Function TBuildEngine.FileNewer(const Src,Dest : String) : Boolean;'#010+ #010+ - 'Var'#010+ - ' DS,DD : Longint;',#010+ + 'V','ar'#010+ + ' DS,DD : Longint;'#010+ ' D1,D2 : TDateTime;'#010+ #010+ 'begin'#010+ @@ -3467,8 +3464,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' D2:=FileDateToDateTime(DD);'#010+ ' Log(vlDebug,SDbgComparingFileTimes,[Src,DateTimeToStr(D1),Dest,DateT'+ 'imeToStr(D2)]);'#010+ - ' Result:=D1>=D2;'#010+ - ' If R','esult then'#010+ + ' R','esult:=D1>=D2;'#010+ + ' If Result then'#010+ ' Log(vlInfo,SInfoSourceNewerDest,[Src,DateTimeToStr(D1),Dest,DateTi'+ 'meToStr(D2)]);'#010+ 'end;'#010+ @@ -3479,8 +3476,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Var'#010+ ' C : TCommand;'#010+ ' I : Integer;'#010+ - ' Cmd,O : String;'#010+ - ' E : B','oolean;'#010+ + ' Cm','d,O : String;'#010+ + ' E : Boolean;'#010+ 'begin'#010+ ' For I:=0 to Commands.Count-1 do'#010+ ' begin'#010+ @@ -3490,20 +3487,20 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' E:=True;'#010+ ' If (C.SourceFile<>'#039#039') and (C.DestFile<>'#039#039') then'+ #010+ - ' E:=FileNewer(C.Sour','ceFile,IncludeTrailingPathDelimiter(D'+ + ' ',' E:=FileNewer(C.SourceFile,IncludeTrailingPathDelimiter(D'+ 'ictionary.GetValue('#039'OUTPUTDIR'#039'))+C.DestFile);'#010+ ' If E then'#010+ ' begin'#010+ ' If Assigned(C.BeforeCommand) then'#010+ ' C.BeforeCommand(C);'#010+ - ' O:=Substitute(C.Options,['#039'S','OURCE'#039',C.SourceFile,'#039+ + ' O:=Sub','stitute(C.Options,['#039'SOURCE'#039',C.SourceFile,'#039+ 'DEST'#039',C.DestFile]);'#010+ ' Cmd:=C.Command;'#010+ ' If (ExtractFilePath(Cmd)='#039#039') then'#010+ ' Cmd:=FileSearch(Cmd,GetEnvironmentvariable('#039'PATH'#039+ '));'#010+ - ' ExecuteCommand(Cmd,O,C.IgnoreResult);'#010+ - ' ',' If Assigned(C.AfterCommand) then'#010+ + ' ExecuteCommand(Cmd,O,C.Ig','noreResult);'#010+ + ' If Assigned(C.AfterCommand) then'#010+ ' C.AfterCommand(C);'#010+ ' end;'#010+ ' end;'#010+ @@ -3512,16 +3509,16 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'Function TBuildEngine.GetTargetDir(APackage : TPackage; ATarget : TTar'+ - 'get; AbsolutePath : Boolean = False) : String;'#010+ + 'get; AbsolutePath : Boolean = Fal','se) : String;'#010+ 'begin'#010+ - ' ',' If AbsolutePath then'#010+ + ' If AbsolutePath then'#010+ ' Result:=IncludeTrailingPathDelimiter(FStartDir)'#010+ ' else'#010+ ' Result:='#039#039';'#010+ ' If (APackage.Directory<>'#039#039') then'#010+ ' Result:=Result+IncludeTrailingPathDelimiter(APackage.Directory);'#010+ - ' If (ATarget.Directory<>'#039#039') then'#010+ - ' R','esult:=IncludeTrailingPathDelimiter(Result+ATarget.Directory);'#010+ + ' If (ATarget.Dire','ctory<>'#039#039') then'#010+ + ' Result:=IncludeTrailingPathDelimiter(Result+ATarget.Directory);'#010+ 'end;'#010+ #010+ #010+ @@ -3529,8 +3526,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ':TConditionalStrings; ACPU:TCPU;AOS:TOS;Const PathPrefix :String='#039#039+ ');'#010+ 'var'#010+ - ' S,Prefix : String;'#010+ - ' I :',' Integer;'#010+ + ' S,P','refix : String;'#010+ + ' I : Integer;'#010+ ' C : TConditionalString;'#010+ 'begin'#010+ ' if PathPrefix<>'#039#039' then'#010+ @@ -3541,7 +3538,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' for i:=0 to Path.Count-1 do'#010+ ' begin'#010+ ' C:=Path[I];'#010+ - ' if (ACPU in C.CPUs) and ','(AOS in C.OSes) then'#010+ + ' if ','(ACPU in C.CPUs) and (AOS in C.OSes) then'#010+ ' begin'#010+ ' if S<>'#039#039' then'#010+ ' S:=S+PathSeparator;'#010+ @@ -3549,8 +3546,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ ' end;'#010+ ' if S<>'#039#039' then'#010+ - ' Log(vlDebug,SDbgSearchPath,[ASearchPathName,S]);'#010+ - 'e','nd;'#010+ + ' Log(vlDebug,SDbgSearchPath,[A','SearchPathName,S]);'#010+ + 'end;'#010+ #010+ #010+ 'Function TBuildEngine.FindFileInPath(Path:TConditionalStrings; AFileNa'+ @@ -3559,9 +3556,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'var'#010+ ' Prefix : String;'#010+ ' I : Integer;'#010+ - ' C : TConditionalString;'#010+ + ' C : TCondition','alString;'#010+ 'begin'#010+ - ' Res','ult:=false;'#010+ + ' Result:=false;'#010+ ' if PathPrefix<>'#039#039' then'#010+ ' Prefix:=IncludeTrailingPathDelimiter(PathPrefix)'#010+ ' else'#010+ @@ -3569,108 +3566,160 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' for i:=0 to Path.Count-1 do'#010+ ' begin'#010+ ' C:=Path[I];'#010+ - ' if (ACPU in C.CPUs) and (AOS in C.OSes) then'#010+ + ' if (ACPU in C.CPUs) and (AOS in C.OSes) th','en'#010+ ' begin'#010+ - ' ',' FoundPath:=IncludeTrailingPathDelimiter(Dictionary.Replace'+ - 'Strings(Prefix+C.Value));'#010+ + ' FoundPath:=IncludeTrailingPathDelimiter(Dictionary.ReplaceSt'+ + 'rings(Prefix+C.Value));'#010+ ' if FileExists(FoundPath+AFileName) then'#010+ ' begin'#010+ ' result:=true;'#010+ ' exit;'#010+ - ' end;'#010+ + ' e','nd;'#010+ ' end;'#010+ - ' ','end;'#010+ + ' end;'#010+ ' FoundPath:='#039#039';'#010+ 'end;'#010+ #010+ #010+ 'Procedure TBuildEngine.ResolveFileNames(APackage : TPackage; ACPU:TCPU'+ ';AOS:TOS);'#010+ + #010+ + ' procedure FindMainSource(T:TTarget);'#010+ + ' var'#010+ + ' SD,SF : String;'#010+ + ' begin'#010+ + ' LogSearchPath('#039'package source'#039,',APackage.SourcePath,ACPU,A'+ + 'OS,APackage.Directory);'#010+ + ' SD:=Dictionary.ReplaceStrings(T.Directory);'#010+ + ' SF:=Dictionary.ReplaceStrings(T.SourceFileName);'#010+ + ' if SD='#039#039' then'#010+ + ' FindFileInPath(APackage.SourcePath,SF,SD,ACPU,AOS,APackage.Direc', + 'tory)'#010+ + ' else'#010+ + ' if APackage.Directory<>'#039#039' then'#010+ + ' SD:=IncludeTrailingPathDelimiter(APackage.Directory)+SD;'#010+ + ' if SD<>'#039#039' then'#010+ + ' SD:=IncludeTrailingPathDelimiter(SD);'#010+ + ' T.FTargetSourceFileName:=SD+SF;'#010+ + ' if FileExists(T.Targ','etSourceFileName) then'#010+ + ' Log(vlDebug,SDbgResolvedSourceFile,[T.SourceFileName,T.TargetSou'+ + 'rceFileName])'#010+ + ' else'#010+ + ' begin'#010+ + ' Log(vlWarning,SWarnSourceFileNotFound,[T.SourceFileName,MakeTa'+ + 'rgetString(ACPU,AOS)]);'#010+ + ' T.FTargetS','ourceFileName:='#039#039';'#010+ + ' end;'#010+ + ' end;'#010+ + #010+ + ' procedure FindIncludeSources(T:TTarget);'#010+ + ' var'#010+ + ' SD,SF : String;'#010+ + ' D : TDependency;'#010+ + ' j : integer;'#010+ + ' begin'#010+ + ' LogSearchPath('#039'target include'#039',T.IncludePath,ACPU,AOS,APac'+ + 'kage.Directory);'#010+ + ' Log','SearchPath('#039'package include'#039',APackage.IncludePath,ACP'+ + 'U,AOS,APackage.Directory);'#010+ + ' for j:=0 to T.Dependencies.Count-1 do'#010+ + ' begin'#010+ + ' D:=T.Dependencies[j];'#010+ + ' if (D.DependencyType=depInclude) then'#010+ + ' begin'#010+ + ' D.','TargetFileName:='#039#039';'#010+ + ' if (ACPU in D.CPUs) and (AOS in D.OSes) then'#010+ + ' begin'#010+ + ' if ExtractFilePath(D.Value)='#039#039' then'#010+ + ' begin'#010+ + ' SF:=Dictionary.ReplaceStrings(D.Value);'#010+ + ' ',' SD:='#039#039';'#010+ + ' // first check the target specific path'#010+ + ' if not FindFileInPath(T.IncludePath,SF,SD,ACPU,AOS'+ + ',APackage.Directory) then'#010+ + ' FindFileInPath(APackage.IncludePath,SF,SD',',ACPU'+ + ',AOS,APackage.Directory);'#010+ + ' if SD<>'#039#039' then'#010+ + ' SD:=IncludeTrailingPathDelimiter(SD);'#010+ + ' D.TargetFileName:=SD+SF;'#010+ + ' end'#010+ + ' else'#010+ + ' D.Tar','getFileName:=D.Value;'#010+ + ' if FileExists(D.TargetFileName) then'#010+ + ' Log(vlDebug,SDbgResolvedIncludeFile,[D.Value,D.Targe'+ + 'tFileName])'#010+ + ' else'#010+ + ' begin'#010+ + ' Log(vlWarning,SWar','nIncludeFileNotFound,[D.Value,'+ + 'MakeTargetString(ACPU,AOS)]);'#010+ + ' D.TargetFileName:='#039#039';'#010+ + ' end;'#010+ + ' end;'#010+ + ' end;'#010+ + ' end;'#010+ + ' end;'#010+ + #010+ + ' procedure FindExampleSource(T:TTarget);'#010+ + ' var'#010+ + ' SD,SF : S','tring;'#010+ + ' begin'#010+ + ' LogSearchPath('#039'package example'#039',APackage.ExamplePath,ACPU,'+ + 'AOS,APackage.Directory);'#010+ + ' SD:=Dictionary.ReplaceStrings(T.Directory);'#010+ + ' SF:=Dictionary.ReplaceStrings(T.SourceFileName);'#010+ + ' if SD='#039#039' then'#010+ + ' FindFileInPat','h(APackage.ExamplePath,SF,SD,ACPU,AOS,APackage.Di'+ + 'rectory)'#010+ + ' else'#010+ + ' if APackage.Directory<>'#039#039' then'#010+ + ' SD:=IncludeTrailingPathDelimiter(APackage.Directory)+SD;'#010+ + ' if SD<>'#039#039' then'#010+ + ' SD:=IncludeTrailingPathDelimiter(SD);'#010+ + ' T.FT','argetSourceFileName:=SD+SF;'#010+ + ' if FileExists(T.TargetSourceFileName) then'#010+ + ' Log(vlDebug,SDbgResolvedSourceFile,[T.SourceFileName,T.TargetSou'+ + 'rceFileName])'#010+ + ' else'#010+ + ' begin'#010+ + ' Log(vlWarning,SWarnSourceFileNotFound,[T.SourceFileN','ame,Make'+ + 'TargetString(ACPU,AOS)]);'#010+ + ' T.FTargetSourceFileName:='#039#039';'#010+ + ' end;'#010+ + ' end;'#010+ + #010+ 'var'#010+ - ' SD,SF : String;'#010+ - ' D : TDependency;'#010+ ' T : TTarget;'#010+ - ' i,j : Integer;'#010+ + ' i : Integer;'#010+ 'begin'#010+ - ' Dictionary.AddVariable('#039'CPU'#039',CPUToString(ACPU)',');'#010+ + ' if not((ACPU in APackage.CPUs) and (AOS in APackage.OSes)) then'#010+ + ' exit;'#010+ + ' Dictionary.AddVariable('#039'CPU'#039',CPU','ToString(ACPU));'#010+ ' Dictionary.AddVariable('#039'OS'#039',OSToString(AOS));'#010+ ' For I:=0 to APackage.Targets.Count-1 do'#010+ ' begin'#010+ ' T:=APackage.FTargets.TargetItems[I];'#010+ ' if (ACPU in T.CPUs) and (AOS in T.OSes) then'#010+ ' begin'#010+ - ' // Debug informatio','n'#010+ + ' // De','bug information'#010+ ' Log(vlDebug,SDbgResolvingSourcesOfTarget,[T.Name,MakeTargetS'+ 'tring(ACPU,AOS)]);'#010+ ' LogIndent;'#010+ #010+ - ' // Log Search paths'#010+ - ' LogSearchPath('#039'package source'#039',APackage.SourcePath,A'+ - 'CPU,AOS,APackage.Directory);'#010+ - ' ',' LogSearchPath('#039'target include'#039',T.IncludePath,ACPU,'+ - 'AOS,APackage.Directory);'#010+ - ' LogSearchPath('#039'package include'#039',APackage.IncludePath'+ - ',ACPU,AOS,APackage.Directory);'#010+ - #010+ - ' // Main source file'#010+ - ' SD:=Dictionary.ReplaceStrin','gs(T.Directory);'#010+ - ' SF:=Dictionary.ReplaceStrings(T.SourceFileName);'#010+ - ' if SD='#039#039' then'#010+ - ' FindFileInPath(APackage.SourcePath,SF,SD,ACPU,AOS,APackage'+ - '.Directory)'#010+ - ' else'#010+ - ' if APackage.Directory<>'#039#039' then'#010, - ' SD:=IncludeTrailingPathDelimiter(APackage.Directory)+SD;'+ - #010+ - ' if SD<>'#039#039' then'#010+ - ' SD:=IncludeTrailingPathDelimiter(SD);'#010+ - ' T.FTargetSourceFileName:=SD+SF;'#010+ - ' if FileExists(T.TargetSourceFileName) then',#010+ - ' Log(vlDebug,SDbgResolvedSourceFile,[T.SourceFileName,T.Tar'+ - 'getSourceFileName])'#010+ - ' else'#010+ - ' begin'#010+ - ' Log(vlWarning,SWarnSourceFileNotFound,[T.SourceFileName,'+ - 'MakeTargetString(ACPU,AOS)]);'#010+ - ' T.','FTargetSourceFileName:='#039#039';'#010+ - ' end;'#010+ - #010+ - ' // Include files'#010+ - ' for j:=0 to T.Dependencies.Count-1 do'#010+ - ' begin'#010+ - ' D:=T.Dependencies[j];'#010+ - ' if (D.DependencyType=depInclude) then'#010+ - ' ',' begin'#010+ - ' D.TargetFileName:='#039#039';'#010+ - ' if (ACPU in D.CPUs) and (AOS in D.OSes) then'#010+ - ' begin'#010+ - ' if ExtractFilePath(D.Value)='#039#039' then'#010+ - ' begin'#010+ - ' ',' SF:=Dictionary.ReplaceStrings(D.Value);'#010+ - ' SD:='#039#039';'#010+ - ' // first check the target specific path'#010+ - ' if not FindFileInPath(T.IncludePath,SF,SD,AC'+ - 'PU,AOS,APackage.Dir','ectory) then'#010+ - ' FindFileInPath(APackage.IncludePath,SF,SD,'+ - 'ACPU,AOS,APackage.Directory);'#010+ - ' if SD<>'#039#039' then'#010+ - ' SD:=IncludeTrailingPathDelimiter(SD);'#010+ - ' ',' D.TargetFileName:=SD+SF;'#010+ - ' end'#010+ - ' else'#010+ - ' D.TargetFileName:=D.Value;'#010+ - ' if FileExists(D.TargetFileName) then'#010+ - ' Log(vlDebug,SDbgR','esolvedIncludeFile,[D.Value'+ - ',D.TargetFileName])'#010+ - ' else'#010+ - ' begin'#010+ - ' Log(vlWarning,SWarnIncludeFileNotFound,[D.Va'+ - 'lue,MakeTargetString(ACPU,AOS)]);'#010+ - ' D.Targ','etFileName:='#039#039';'#010+ - ' end;'#010+ - ' end;'#010+ - ' end;'#010+ - ' end;'#010+ + ' case T.TargetType of'#010+ + ' ttProgram,'#010+ + ' ttUnit,'#010+ + ' ttImplicitUnit :'#010+ + ' ',' begin'#010+ + ' FindMainSource(T);'#010+ + ' if T.Dependencies.Count>0 then'#010+ + ' FindIncludeSources(T);'#010+ + ' end;'#010+ + ' ttExampleUnit,'#010+ + ' ttExampleProgram :'#010+ + ' begin'#010+ + ' ',' FindExampleSource(T);'#010+ + ' end;'#010+ + ' end;'#010+ #010+ ' LogUnIndent;'#010+ ' end;'#010+ @@ -3680,22 +3729,22 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'function TBuildEngine.GetUnitDir(APackage:TPackage):String;'#010+ 'begin'#010+ - ' if (APackag','e.UnitDir='#039#039') and'#010+ - ' (Defaults.LocalUnitDir<>'#039#039') then'#010+ + ' if (APackage.UnitDir='#039#039') and'#010+ + ' (Defaults.LocalUnitDir<','>'#039#039') then'#010+ ' begin'#010+ ' APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.LocalUni'+ 'tDir)+APackage.Name;'#010+ ' if not SysDirectoryExists(APackage.UnitDir) then'#010+ - ' APackage.UnitDir:='#039#039,';'#010+ + ' APackage.UnitDir:='#039#039';'#010+ ' end;'#010+ ' if APackage.UnitDir='#039#039' then'#010+ - ' begin'#010+ + ' b','egin'#010+ ' APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.GlobalUn'+ 'itDir)+APackage.Name;'#010+ ' if not SysDirectoryExists(APackage.UnitDir) then'#010+ ' APackage.UnitDir:=DirNotFound;'#010+ - ' ',' end;'#010+ - ' // Special error marker to prevent searches in case of error'#010+ + ' end;'#010+ + ' // Special error marker to prevent sea','rches in case of error'#010+ ' if APackage.UnitDir=DirNotFound then'#010+ ' Result:='#039#039#010+ ' else'#010+ @@ -3704,20 +3753,20 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'procedure TBuildEngine.AddDependencyIncludePaths(L:TStrings;ATarget: T'+ - 'Tar','get);'#010+ + 'Target);'#010+ 'Var'#010+ ' I : Integer;'#010+ ' D : TDependency;'#010+ - ' SD : String;'#010+ + ' ','SD : String;'#010+ 'begin'#010+ ' For I:=0 to ATarget.Dependencies.Count-1 do'#010+ ' begin'#010+ ' D:=ATarget.Dependencies[i];'#010+ ' if (D.DependencyType=depInclude) and'#010+ - ' (Defaults.CPU in D.CPUs) and (Def','aults.OS in D.OSes) then'#010+ + ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+ ' begin'#010+ - ' SD:=ExcludeTrailingPathDelimiter(ExtractFilePath(D.TargetFil'+ - 'eName));'#010+ + ' ',' SD:=ExcludeTrailingPathDelimiter(ExtractFilePath(D.TargetF'+ + 'ileName));'#010+ ' if SD<>'#039#039' then'#010+ ' L.Add(SD);'#010+ ' end;'#010+ @@ -3725,10 +3774,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.AddDependencyUnitPaths','(L:TStrings;APackage: T'+ - 'Package);'#010+ + 'procedure TBuildEngine.AddDependencyUnitPaths(L:TStrings;APackage: TPa'+ + 'ckage);'#010+ 'Var'#010+ - ' I : Integer;'#010+ + ' I : Int','eger;'#010+ ' P : TPackage;'#010+ ' D : TDependency;'#010+ ' S : String;'#010+ @@ -3736,28 +3785,28 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' For I:=0 to APackage.Dependencies.Count-1 do'#010+ ' begin'#010+ ' D:=APackage.Dependencies[i];'#010+ - ' if (D.DependencyType=depPackage) an','d'#010+ - ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+ + ' if (D.DependencyType=depPackage) and'#010+ + ' (Defaults.CPU in D.CPUs) and (Defau','lts.OS in D.OSes) then'#010+ ' begin'#010+ ' P:=TPackage(D.Target);'#010+ ' If Assigned(P) then'#010+ ' begin'#010+ ' // Already processed?'#010+ ' S:=GetUnitDir(P);'#010+ - ' ',' if L.IndexOf(S)=-1 then'#010+ - ' begin'#010+ + ' if L.IndexOf(S)=-1 then'#010+ + ' ','begin'#010+ ' // Add this package and then dependencies'#010+ ' L.Add(S);'#010+ ' AddDependencyUnitPaths(L,P);'#010+ ' end;'#010+ ' end;'#010+ ' end;'#010+ - ' ',' end;'#010+ + ' end;'#010+ 'end;'#010+ #010+ #010+ - 'Function TBuildEngine.GetCompilerCommand(APackage : TPackage; ATarget '+ - ': TTarget) : String;'#010+ + 'Function TBuildEngine.GetCompile','rCommand(APackage : TPackage; ATarge'+ + 't : TTarget) : String;'#010+ 'Var'#010+ ' PD,OD : String;'#010+ ' L : TStringList;'#010+ @@ -3767,9 +3816,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ ' Result := '#039#039';'#010+ #010+ - ' //compiler config','uration'#010+ + ' //compiler configuration'#010+ ' if Defaults.NoFPCCfg then'#010+ - ' Result := '#039'-n'#039';'#010+ + ' Result',' := '#039'-n'#039';'#010+ #010+ ' // Target OS'#010+ ' Result:=Result+'#039' -T'#039'+OSToString(Defaults.OS);'#010+ @@ -3777,64 +3826,64 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' // Compile mode'#010+ ' If ATarget.Mode<>cmFPC then'#010+ ' Result:=Result+'#039' -M'#039'+ModeToString(ATarget.Mode)'#010+ - ' else If Defaults.','Mode<>cmFPC then'#010+ - ' Result:=Result+'#039' -M'#039'+ModeToString(Defaults.Mode);'#010+ + ' else If Defaults.Mode<>cmFPC then'#010+ + ' Result:=Result+'#039' -M'#039'+Mode','ToString(Defaults.Mode);'#010+ ' // Output file paths'#010+ ' If ATarget.TargetType in ProgramTargets then'#010+ ' begin'#010+ ' OD:=GetBinOutputDir(APackage,True);'#010+ - ' Result:=Result+'#039' -FE'#039' + ExtractRelativePa','th(PD,OD);'#010+ + ' Result:=Result+'#039' -FE'#039' + ExtractRelativePath(PD,OD);'#010+ ' end;'#010+ - ' OD:=GetUnitsOutputDir(APackage,True);'#010+ + ' OD:=GetUnitsOutputDir(AP','ackage,True);'#010+ ' Result := Result + '#039' -FU'#039' + ExtractRelativePath(PD,OD);'#010+ ' // Object Path'#010+ ' L:=TStringList.Create;'#010+ ' L.Sorted:=true;'#010+ ' L.Duplicates:=dupIgnore;'#010+ - ' AddConditionalStrings(L,APackage.','ObjectPath,Defaults.CPU,Defaults.'+ - 'OS);'#010+ - ' AddConditionalStrings(L,ATarget.ObjectPath,Defaults.CPU,Defaults.OS)'+ - ';'#010+ + ' AddConditionalStrings(L,APackage.ObjectPath,Defaults.CPU,Defaults.OS'+ + ');'#010+ + ' AddCon','ditionalStrings(L,ATarget.ObjectPath,Defaults.CPU,Defaults.O'+ + 'S);'#010+ ' for i:=0 to L.Count-1 do'#010+ ' Result:=Result+'#039' -Fo'#039'+L[i];'#010+ ' FreeAndNil(L);'#010+ ' // Unit Dirs'#010+ ' L:=TStringList.Create;'#010+ - ' L.Sorted:=tr','ue;'#010+ + ' L.Sorted:=true;'#010+ ' L.Duplicates:=dupIgnore;'#010+ - ' AddDependencyUnitPaths(L,APackage);'#010+ + ' AddDependency','UnitPaths(L,APackage);'#010+ ' AddConditionalStrings(L,APackage.UnitPath,Defaults.CPU,Defaults.OS);'+ #010+ ' AddConditionalStrings(L,ATarget.UnitPath,Defaults.CPU,Defaults.OS);'#010+ ' for i:=0 to L.Count-1 do'#010+ - ' ',' Result:=Result+'#039' -Fu'#039'+L[i];'#010+ - ' FreeAndNil(L);'#010+ + ' Result:=Result+'#039' -Fu'#039'+L[i];'#010+ + ' FreeAndNil(L);'#010, ' // Include Path'#010+ ' L:=TStringList.Create;'#010+ ' L.Sorted:=true;'#010+ ' L.Duplicates:=dupIgnore;'#010+ ' AddDependencyIncludePaths(L,ATarget);'#010+ - ' AddConditionalStrings(L,APackage.IncludePath,Defaults.CPU,Defaul','ts'+ - '.OS);'#010+ - ' AddConditionalStrings(L,ATarget.IncludePath,Defaults.CPU,Defaults.OS'+ - ');'#010+ + ' AddConditionalStrings(L,APackage.IncludePath,Defaults.CPU,Defaults.O'+ + 'S);'#010+ + ' AddConditionalStrings(L,ATarget.Incl','udePath,Defaults.CPU,Defaults.'+ + 'OS);'#010+ ' for i:=0 to L.Count-1 do'#010+ ' Result:=Result+'#039' -Fi'#039'+L[i];'#010+ ' FreeAndNil(L);'#010+ ' // Custom Options'#010+ ' If (Defaults.Options<>'#039#039') then'#010+ - ' Result:=Result+'#039' '#039'+Default','s.Options;'#010+ + ' Result:=Result+'#039' '#039'+Defaults.Options;'#010+ ' If (APackage.Options<>'#039#039') then'#010+ - ' Result:=Result+'#039' '#039'+APackage.Options;'#010+ + ' ',' Result:=Result+'#039' '#039'+APackage.Options;'#010+ ' If (ATarget.Options<>'#039#039') then'#010+ ' Result:=Result+'#039' '#039'+ATarget.Options;'#010+ ' // Add Filename to compile'#010+ - ' Result:=Result+'#039' '#039'+ExtractRelativePath(PD, ExpandFil','eName('+ - 'ATarget.TargetSourceFileName));'#010+ + ' Result:=Result+'#039' '#039'+ExtractRelativePath(PD, ExpandFileName(AT'+ + 'arget.TargetSourceFileName));'#010+ 'end;'#010+ #010+ #010+ - 'Function TBuildEngine.GetCompiler : String;'#010+ + 'F','unction TBuildEngine.GetCompiler : String;'#010+ 'Var'#010+ ' S : String;'#010+ 'begin'#010+ @@ -3842,10 +3891,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (FCompiler='#039#039') then'#010+ ' begin'#010+ ' FCompiler:=Defaults.Compiler;'#010+ - ' If (ExtractFilePath','(FCompiler)='#039#039') then'#010+ + ' If (ExtractFilePath(FCompiler)='#039#039') then'#010+ ' begin'#010+ - ' S:=FileSearch(FCompiler,GetEnvironmentVariable('#039'PATH'#039'));'+ - #010+ + ' S:=File','Search(FCompiler,GetEnvironmentVariable('#039'PATH'#039')'+ + ');'#010+ ' If (S<>'#039#039') then'#010+ ' FCompiler:=S;'#010+ ' end;'#010+ @@ -3854,34 +3903,34 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TBuildEngine.GetPackageDir(APackage: TPack','age; AbsolutePath'+ - ': Boolean): String;'#010+ + 'function TBuildEngine.GetPackageDir(APackage: TPackage; AbsolutePath: '+ + 'Boolean): String;'#010+ 'begin'#010+ - ' If AbsolutePath then'#010+ + ' I','f AbsolutePath then'#010+ ' Result:= IncludeTrailingPathDelimiter(FStartDir)'#010+ ' else'#010+ ' Result:='#039#039';'#010+ ' Result:=Result+APackage.Directory;'#010+ ' If (Result<>'#039#039') then'#010+ - ' Result:= IncludeTrailingPathDelimi','ter(Result);'#010+ + ' Result:= IncludeTrailingPathDelimiter(Result);'#010+ 'end;'#010+ #010+ #010+ - 'Function TBuildEngine.GetOutputDir(AName: string; APackage : TPackage;'+ - ' AbsolutePath : Boolean = False) : String;'#010+ + 'Function TBuildEngine.GetO','utputDir(AName: string; APackage : TPackag'+ + 'e; AbsolutePath : Boolean = False) : String;'#010+ 'begin'#010+ ' If (TargetDir<>'#039#039') then'#010+ ' Result:=IncludeTrailingPathDelimiter(TargetDir)'#010+ ' else'#010+ ' begin'#010+ - ' ','If AbsolutePath then'#010+ - ' Result:=IncludeTrailingPathDelimiter(FStartDir)'#010+ + ' If AbsolutePath then'#010+ + ' Result:=IncludeTr','ailingPathDelimiter(FStartDir)'#010+ ' else'#010+ ' Result:='#039#039';'#010+ ' If (APackage.Directory<>'#039#039') then'#010+ ' Result:=IncludeTrailingPathDelimiter(Result+APackage.Directory'+ ');'#010+ - ' Result := Incl','udeTrailingPathDelimiter(Result + AName + PathDe'+ + ' Result := IncludeTrailingPathDelimiter(Result + AName + Path','De'+ 'lim + Defaults.Target);'#010+ ' end;'#010+ 'end;'#010+ @@ -3890,21 +3939,21 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TBuildEngine.GetUnitsOutputDir(APackage : TPackage; AbsoluteP'+ 'ath : Boolean = False) : String;'#010+ 'begin'#010+ - ' Result := GetOutputDir('#039'units'#039', APackage,',' AbsolutePath);'#010+ + ' Result := GetOutputDir('#039'units'#039', APackage, AbsolutePath);'#010+ 'end;'#010+ #010+ #010+ - 'Function TBuildEngine.GetBinOutputDir(APackage : TPackage; AbsolutePat'+ - 'h : Boolean = False) : String;'#010+ + 'Function TBuildEngine.G','etBinOutputDir(APackage : TPackage; AbsoluteP'+ + 'ath : Boolean = False) : String;'#010+ 'begin'#010+ ' Result := GetOutputDir('#039'bin'#039', APackage, AbsolutePath);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.CreateOutputDir(APackag','e: TPackage);'#010+ + 'procedure TBuildEngine.CreateOutputDir(APackage: TPackage);'#010+ 'Var'#010+ ' D : String;'#010+ - ' i: integer;'#010+ + ' i: integer;'#010, 'begin'#010+ ' //create a units directory'#010+ ' D:=GetUnitsOutputDir(APackage,True);'#010+ @@ -3912,17 +3961,17 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' begin'#010+ ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#010+ ' CmdCreateDir(D);'#010+ - ' e','nd;'#010+ + ' end;'#010+ #010+ - ' //also create a bin directory for programtargets'#010+ + ' //also create a bin directory for progr','amtargets'#010+ ' For i := 0 to Pred(APackage.Targets.Count) do'#010+ ' begin'#010+ ' if APackage.Targets.TargetItems[i].TargetType in ProgramTargets th'+ 'en'#010+ ' begin'#010+ ' D:=GetBinOutputDir(APackage,True);'#010+ - ' ',' If not SysDirectoryExists(D) then'#010+ - ' begin'#010+ + ' If not SysDirectoryExists(D) then'#010+ + ' be','gin'#010+ ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#010+ ' CmdCreateDir(D);'#010+ ' end;'#010+ @@ -3932,7 +3981,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TBuildE','ngine.DependencyOK(ADependency : TDependency) : Bool'+ + 'Function TBuildEngine.DependencyOK(ADependency : TDependency) ',': Bool'+ 'ean;'#010+ 'begin'#010+ ' Result:=(Defaults.CPU in ADependency.CPUs) and (Defaults.OS in ADepe'+ @@ -3942,7 +3991,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'Function TBuildEngine.TargetOK(ATarget : TTarget) : Boolean;'#010+ 'begin'#010+ - ' Result:=(Defaults','.CPU in ATarget.CPUs) and (Defaults.OS in ATarget'+ + ' Result:=(Defaults.CPU in ATarget.CPUs) and (Defaults.OS in ATar','get'+ '.OSes);'#010+ 'end;'#010+ #010+ @@ -3954,17 +4003,17 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngin','e.DoBeforeCompile(APackage: TPackage);'#010+ + 'procedure TBuildEngine.DoBeforeCompile(APackage: TPackage);'#010+ 'begin'#010+ - ' ExecuteCommands(APackage.Commands,caBeforeCompile);'#010+ + ' ',' ExecuteCommands(APackage.Commands,caBeforeCompile);'#010+ ' If Assigned(APackage.BeforeCompile) then'#010+ ' APackage.BeforeCompile(APackage);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.DoAfterCompile(APackage: TPack','age);'#010+ + 'procedure TBuildEngine.DoAfterCompile(APackage: TPackage);'#010+ 'begin'#010+ - ' If Assigned(APackage.AfterCompile) then'#010+ + ' If Assigned(APackage.AfterCompil','e) then'#010+ ' APackage.AfterCompile(APackage);'#010+ ' ExecuteCommands(APackage.Commands,caAfterCompile);'#010+ 'end;'#010+ @@ -3973,10 +4022,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TBuildEngine.NeedsCompile(APackage:TPackage;ATarget: TTarget)'+ ': Boolean;'#010+ 'Var'#010+ - ' I ',': Integer;'#010+ + ' I : Integer;'#010+ ' D : TDependency;'#010+ ' T : TTarget;'#010+ - ' OD,OFN : String;'#010+ + ' ',' OD,OFN : String;'#010+ 'begin'#010+ ' Result:=False;'#010+ ' case ATarget.State of'#010+ @@ -3987,12 +4036,12 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ ' tsNoCompile,'#010+ ' tsCompiling,'#010+ - ' tsCompiled :',#010+ + ' tsCompiled :'#010+ ' exit;'#010+ ' end;'#010+ #010+ ' // Forced recompile?'#010+ - ' if FForceCompile then'#010+ + ' ','if FForceCompile then'#010+ ' Result:=true;'#010+ #010+ ' // Check output file'#010+ @@ -4000,14 +4049,14 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' begin'#010+ ' if ATarget.TargetType in ProgramTargets then'#010+ ' OD:=GetBinOutputDir(APackage, True)'#010+ - ' ',' else'#010+ - ' OD:=GetUnitsOutputDir(APackage, True);'#010+ + ' else'#010+ + ' OD:=GetUnitsOutputDir(APackage,',' True);'#010+ ' If (OD<>'#039#039') then'#010+ ' OD:=IncludeTrailingPathDelimiter(OD);'#010+ ' OFN:=OD+ATarget.GetOutPutFileName(Defaults.OS);'#010+ ' Result:=Not FileExists(OFN);'#010+ ' if Result then'#010+ - ' ',' Log(vlDebug,SDbgOutputNotYetAvailable,[OFN]);'#010+ + ' Log(vlDebug,SDbgOutputNotYetAvailable,[OFN]);',#010+ ' end;'#010+ #010+ ' // Check main source'#010+ @@ -4017,43 +4066,43 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=FileNewer(ATarget.TargetSourceFileName,OFN)'#010+ ' end;'#010+ #010+ - ' //',' Check unit and include dependencies'#010+ - ' If not Result then'#010+ + ' // Check unit and include dependencies'#010+ + ' If not ','Result then'#010+ ' begin'#010+ ' ResolveDependencies(ATarget.Dependencies,ATarget.Collection as T'+ 'Targets);'#010+ ' I:=0;'#010+ ' for i:=0 to ATarget.Dependencies.Count-1 do'#010+ ' begin'#010+ - ' D:=ATa','rget.Dependencies[i];'#010+ - ' if (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'+ - #010+ + ' D:=ATarget.Dependencies[i];'#010+ + ' if (Defaults.C','PU in D.CPUs) and (Defaults.OS in D.OSes) th'+ + 'en'#010+ ' begin'#010+ ' case D.DependencyType of'#010+ ' depUnit :'#010+ ' begin'#010+ - ' T:=TTarget(D.Target)',';'#010+ + ' T:=TTarget(D.Target);'#010+ ' If (T=Nil) then'#010+ - ' Error(SErrDepUnknownTarget,[ATarget.Name,D.Value'+ - ']);'#010+ + ' ',' Error(SErrDepUnknownTarget,[ATarget.Name,D.Val'+ + 'ue]);'#010+ ' // If a dependent package is compiled we always ne'+ 'ed to recompile'#010+ - ' Log(vldebug, SDbgDepen','dencyOnUnit, [ATarget.Name'+ - ',T.Name]);'#010+ - ' Result:=(T.State in [tsNeedCompile,tsCompiling,tsC'+ - 'ompiled]) or NeedsCompile(APackage,T);'#010+ + ' Log(vldebug, SDbgDependencyOnUnit, [ATarget.Name,T'+ + '.Name]);'#010+ + ' ',' Result:=(T.State in [tsNeedCompile,tsCompiling,t'+ + 'sCompiled]) or NeedsCompile(APackage,T);'#010+ ' if Result then'#010+ - ' Log(vldebug, SDbgDependencyUnitRecomp','iled, [T.'+ - 'Name]);'#010+ + ' Log(vldebug, SDbgDependencyUnitRecompiled, [T.Na'+ + 'me]);'#010+ ' end;'#010+ - ' depInclude :'#010+ + ' ',' depInclude :'#010+ ' begin'#010+ ' if D.TargetFileName<>'#039#039' then'#010+ ' Result:=FileNewer(D.TargetFileName,OFN)'#010+ ' end;'#010+ - ' ',' end;'#010+ + ' end;'#010+ ' if result then'#010+ - ' break;'#010+ + ' ',' break;'#010+ ' end;'#010+ ' end;'#010+ ' end;'#010+ @@ -4062,9 +4111,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' if result then'#010+ ' begin'#010+ ' ATarget.FTargetState:=tsNeedCompile;'#010+ - ' Log(vlDeb','ug,SDbgMustCompile,[ATarget.Name]);'#010+ + ' Log(vlDebug,SDbgMustCompile,[ATarget.Name]);'#010+ ' end'#010+ - ' else'#010+ + ' ','else'#010+ ' ATarget.FTargetState:=tsNoCompile;'#010+ 'end;'#010+ #010+ @@ -4073,20 +4122,20 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Var'#010+ ' S : String;'#010+ 'begin'#010+ - ' if ATarget.State in [tsNeutral,tsNeedCompile] t','hen'#010+ + ' if ATarget.State in [tsNeutral,tsNeedCompile] then'#010+ ' begin'#010+ - ' Log(vlInfo,SInfoCompilingTarget,[ATarget.Name]);'#010+ + ' Log(vlInfo,SInfoCompilingT','arget,[ATarget.Name]);'#010+ ' LogIndent;'#010+ ' ATarget.FTargetState:=tsCompiling;'#010+ ' ExecuteCommands(ATarget.Commands,caBeforeCompile);'#010+ ' If Assigned(ATarget.BeforeCompile) then'#010+ - ' AT','arget.BeforeCompile(ATarget);'#010+ - ' S:=GetCompilerCommand(APackage,ATarget);'#010+ + ' ATarget.BeforeCompile(ATarget);'#010+ + ' S:=GetComp','ilerCommand(APackage,ATarget);'#010+ ' ExecuteCommand(GetCompiler,S);'#010+ ' If Assigned(ATarget.AfterCompile) then'#010+ ' ATarget.AfterCompile(ATarget);'#010+ - ' ExecuteCommands(ATarget.Commands,caA','fterCompile);'#010+ - ' ATarget.FTargetState:=tsCompiled;'#010+ + ' ExecuteCommands(ATarget.Commands,caAfterCompile);'#010+ + ' ATarget.FTargetState:=tsCo','mpiled;'#010+ ' LogUnIndent;'#010+ ' end'#010+ ' else if ATarget.State<>tsCompiled then'#010+ @@ -4095,8 +4144,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Co','mpileDependencies(APackage:TPackage; ATarge'+ - 't: TTarget);'#010+ + 'procedure TBuildEngine.CompileDependencies(APackage:TPackage; ATarget:'+ + ' ','TTarget);'#010+ 'Var'#010+ ' I : Integer;'#010+ ' T : TTarget;'#010+ @@ -4104,37 +4153,37 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' if ATarget.State in [tsCompiled,tsCompiling,tsNoCompile] then'#010+ ' exit;'#010+ - ' Log(vlDebug, Format(SDbgCompilingDependenciesOfTa','rget, [ATarget.Na'+ - 'me]));'#010+ + ' Log(vlDebug, Format(SDbgCompilingDependenciesOfTarget, [ATarget.Name'+ + ']));'#010+ ' LogIndent;'#010+ - ' For I:=0 to ATarget.Dependencies.Count-1 do'#010+ + ' For I:=','0 to ATarget.Dependencies.Count-1 do'#010+ ' begin'#010+ ' D:=ATarget.Dependencies[i];'#010+ ' if (D.DependencyType=depUnit) and'#010+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+ - ' ',' begin'#010+ + ' begin'#010+ ' T:=TTarget(D.Target);'#010+ - ' if Assigned(T) and (T<>ATarget) then'#010+ + ' ',' if Assigned(T) and (T<>ATarget) then'#010+ ' begin'#010+ ' if TargetOK(T) then'#010+ ' begin'#010+ ' // We don'#039't need to compile implicit units, they'+ ' are only'#010+ - ' ',' // used for dependency checking'#010+ + ' // used for dependency checking',#010+ ' if (T.TargetType<>ttImplicitUnit) then'#010+ ' begin'#010+ ' if T.State=tsCompiling then'#010+ - ' Log(vlWarning,SWarnCircularDependenc','y,[ATarg'+ - 'et.Name,T.Name]);'#010+ - ' MaybeCompile(APackage,T);'#010+ + ' Log(vlWarning,SWarnCircularDependency,[ATarget'+ + '.Name,T.Name]);'#010+ + ' ',' MaybeCompile(APackage,T);'#010+ ' end;'#010+ ' end'#010+ ' else'#010+ ' Log(vlWarning, Format(SWarnDepUnitNotFound, [T.Name, M'+ - 'akeTargetString(Defaults.CPU,Def','aults.OS)]));'#010+ + 'akeTargetString(Defaults.CPU,Defaults.OS)]));'#010+ ' end'#010+ ' else'#010+ - ' Error(SErrDepUnknownTarget,[ATarget.Name,D.Value]);'#010+ + ' ',' Error(SErrDepUnknownTarget,[ATarget.Name,D.Value]);'#010+ ' end;'#010+ ' end;'#010+ ' LogUnIndent;'#010+ @@ -4144,14 +4193,14 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure TBuildEngine.MaybeCompile(APackage: TPackage; ATarget: TTarg'+ 'et);'#010+ 'begin'#010+ - ' if n','ot(ATarget.State in [tsNeutral,tsNeedCompile]) then'#010+ + ' if not(ATarget.State in [tsNeutral,tsNeedCompile])',' then'#010+ ' exit;'#010+ ' Log(vlDebug, Format(SDbgConsideringTarget, [ATarget.Name]));'#010+ ' LogIndent;'#010+ ' ResolveDependencies(ATarget.Dependencies,ATarget.Collection as TTarg'+ 'ets);'#010+ - ' CompileDependencies(APac','kage, ATarget);'#010+ - ' if NeedsCompile(APackage, ATarget) then'#010+ + ' CompileDependencies(APackage, ATarget);'#010+ + ' if NeedsCompile(APackage, AT','arget) then'#010+ ' Compile(APackage,ATarget);'#010+ ' LogUnIndent;'#010+ 'end;'#010+ @@ -4163,9 +4212,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' P : TPackage;'#010+ ' D : TDependency;'#010+ 'begin'#010+ - ' Re','sult:=False;'#010+ + ' Result:=False;'#010+ ' case APackage.State of'#010+ - ' tsNeedCompile :'#010+ + ' tsNe','edCompile :'#010+ ' begin'#010+ ' result:=true;'#010+ ' exit;'#010+ @@ -4178,9 +4227,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' exit;'#010+ ' end;'#010+ #010+ - ' // Forced recompi','le?'#010+ + ' // Forced recompile?'#010+ ' if FForceCompile then'#010+ - ' Result:=true;'#010+ + ' Result:=true;'#010, #010+ ' // Recompile becuase of Package Dependencies?'#010+ ' if not Result then'#010+ @@ -4188,15 +4237,15 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' I:=0;'#010+ ' For I:=0 to APackage.Dependencies.Count-1 do'#010+ ' begin'#010+ - ' D:=APackage.Dependencie','s[i];'#010+ - ' if (D.DependencyType=depPackage) and'#010+ + ' D:=APackage.Dependencies[i];'#010+ + ' if (D.DependencyType=depPacka','ge) and'#010+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) the'+ 'n'#010+ ' begin'#010+ ' P:=TPackage(D.Target);'#010+ ' if Assigned(P) and (P<>APackage) then'#010+ - ' ',' begin'#010+ - ' Result:=NeedsCompile(P);'#010+ + ' begin'#010+ + ' Result:=','NeedsCompile(P);'#010+ ' if Result then'#010+ ' break;'#010+ ' end;'#010+ @@ -4205,9 +4254,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ #010+ ' // Recompile a Target of this package?'#010+ - ' If Not R','esult then'#010+ + ' If Not Result then'#010+ ' begin'#010+ - ' for i:=0 to APackage.Targets.Count-1 do'#010+ + ' for i:=0 to APackag','e.Targets.Count-1 do'#010+ ' begin'#010+ ' Result:=NeedsCompile(APackage,APackage.Targets.TargetItems[i'+ ']);'#010+ @@ -4216,8 +4265,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' end;'#010+ ' end;'#010+ #010+ - ' // Upate also ta','rget state so a second check is faster'#010+ - ' if result then'#010+ + ' // Upate also target state so a second check is faster'#010+ + ' if re','sult then'#010+ ' begin'#010+ ' APackage.FTargetState:=tsNeedCompile;'#010+ ' Log(vlDebug,SDbgMustCompile,[APackage.Name]);'#010+ @@ -4227,46 +4276,46 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuild','Engine.Compile(APackage: TPackage);'#010+ + 'procedure TBuildEngine.Compile(APackage: TPackage);'#010+ 'Var'#010+ - ' T : TTarget;'#010+ + ' T : ','TTarget;'#010+ ' I : Integer;'#010+ 'begin'#010+ ' Try'#010+ ' Log(vlInfo,SInfoCompilingPackage,[APackage.Name]);'#010+ ' APackage.FTargetState:=tsCompiling;'#010+ ' If (APackage.Directory<>'#039#039') then'#010+ - ' EnterDir(APackage.Di','rectory);'#010+ + ' EnterDir(APackage.Directory);'#010+ ' CreateOutputDir(APackage);'#010+ - ' Dictionary.AddVariable('#039'UNITSOUTPUTDIR'#039',GetUnitsOutputDir('+ - 'APackage));'#010+ + ' D','ictionary.AddVariable('#039'UNITSOUTPUTDIR'#039',GetUnitsOutputDi'+ + 'r(APackage));'#010+ ' Dictionary.AddVariable('#039'BINOUTPUTDIR'#039',GetBinOutputDir(APac'+ 'kage));'#010+ ' DoBeforeCompile(APackage);'#010+ - ' For I:=0 to APackage','.Targets.Count-1 do'#010+ + ' For I:=0 to APackage.Targets.Count-1 do'#010+ ' begin'#010+ - ' T:=APackage.Targets.TargetItems[i];'#010+ + ' T:=APa','ckage.Targets.TargetItems[i];'#010+ ' if (T.TargetType in [ttUnit,ttProgram]) then'#010+ ' begin'#010+ ' if TargetOK(T) then'#010+ ' MaybeCompile(APackage,T)'#010+ ' else'#010+ - ' ',' begin'#010+ - ' if not(Defaults.CPU in T.CPUs) then'#010+ + ' begin'#010+ + ' if not(Defaults.C','PU in T.CPUs) then'#010+ ' Log(vldebug, Format(SDbgSkippingTargetWrongCPU, [T.N'+ 'ame, CPUsToString(T.CPUs)]));'#010+ ' if not(Defaults.OS in T.OSes) then'#010+ - ' Log(vl','debug, Format(SDbgSkippingTargetWrongOS, [T.'+ - 'Name, OSesToString(T.OSes)]));'#010+ + ' Log(vldebug, Format(SDbgSkippingTargetWrongOS, [T.Na', + 'me, OSesToString(T.OSes)]));'#010+ ' end;'#010+ ' end'#010+ ' else'#010+ ' log(vldebug, SDbgTargetIsNotAUnitOrProgram,[T.Name]);'#010+ ' end;'#010+ ' DoAfterCompile(APackage);'#010+ - ' APackage.F','TargetState:=tsCompiled;'#010+ + ' APackage.FTargetState:=tsCompiled;'#010+ ' Finally'#010+ - ' If (APackage.Directory<>'#039#039') then'#010+ + ' If (APa','ckage.Directory<>'#039#039') then'#010+ ' EnterDir('#039#039');'#010+ ' end;'#010+ 'end;'#010+ @@ -4276,14 +4325,14 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' if not(APackage.State in [tsNeutral,tsNeedCompile]) then'#010+ ' exit;'#010+ - ' ','Log(vlDebug,SDbgConsideringPackage,[APackage.Name]);'#010+ + ' Log(vlDebug,SDbgConsideringPackage,[APackage.N','ame]);'#010+ ' LogIndent;'#010+ ' ResolveDependencies(APackage.Dependencies,(APackage.Collection as TP'+ 'ackages));'#010+ ' CompileDependencies(APackage);'#010+ ' ResolveFileNames(APackage,Defaults.CPU,Defaults.OS);'#010+ - ' If ','NeedsCompile(APackage) then'#010+ - ' Compile(APackage);'#010+ + ' If NeedsCompile(APackage) then'#010+ + ' Compile(APacka','ge);'#010+ ' LogUnIndent;'#010+ 'end;'#010+ #010+ @@ -4295,33 +4344,33 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' I : Integer;'#010+ 'begin'#010+ ' // Already checked?'#010+ - ' I:=ExternalPackages.In','dexOfName(APackageName);'#010+ + ' I:=ExternalPackages.IndexOfName(APackageName);'#010+ ' if I<>-1 then'#010+ - ' begin'#010+ + ' b','egin'#010+ ' result:=ExternalPackages.PackageItems[I];'#010+ ' exit;'#010+ ' end;'#010+ ' // Create new external package'#010+ ' Result:=ExternalPackages.AddPackage(APackageName);'#010+ - ' Result.FTargetState:=tsNotFound;',#010+ + ' Result.FTargetState:=tsNotFound;'#010+ ' // Load unit config'#010+ - ' S:=GetUnitDir(Result);'#010+ + ' S:=GetUnitDir(Result)',';'#010+ ' if S<>'#039#039' then'#010+ ' begin'#010+ ' Log(vldebug, SDbgExternalDependency, [APackageName,S]);'#010+ ' Result.FTargetState:=tsInstalled;'#010+ ' // Load unit config if it exists'#010+ - ' S:=IncludeTrailingP','athDelimiter(S)+UnitConfigFile;'#010+ - ' if FileExists(S) then'#010+ + ' S:=IncludeTrailingPathDelimiter(S)+UnitConfigFile;'#010+ + ' if FileE','xists(S) then'#010+ ' begin'#010+ ' Log(vlDebug, Format(SDbgLoading, [S]));'#010+ ' Result.LoadUnitConfigFromFile(S);'#010+ ' end;'#010+ ' // Check recursive implicit dependencies'#010+ - ' Compil','eDependencies(Result);'#010+ + ' CompileDependencies(Result);'#010+ ' end'#010+ ' else'#010+ - ' Error(SErrDependencyNotFound,[APackageName]);'#010+ + ' Erro','r(SErrDependencyNotFound,[APackageName]);'#010+ 'end;'#010+ #010+ #010+ @@ -4331,26 +4380,26 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' P : TPackage;'#010+ ' D : TDependency;'#010+ 'begin'#010+ - ' For I:=0 to APackag','e.Dependencies.Count-1 do'#010+ + ' For I:=0 to APackage.Dependencies.Count-1 do'#010+ ' begin'#010+ - ' D:=APackage.Dependencies[i];'#010+ + ' D:=A','Package.Dependencies[i];'#010+ ' if (D.DependencyType=depPackage) and'#010+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+ ' begin'#010+ ' P:=TPackage(D.Target);'#010+ - ' //',' If it already was compiled, then State<>tsNeutral, and '+ + ' // If it already was compiled, then State<>tsNeu','tral, and '+ 'it won'#039't be compiled again.'#010+ ' If Assigned(P) and (P<>APackage) then'#010+ ' Compile(P)'#010+ ' else'#010+ ' D.Target:=CheckExternalPackage(D.Value);'#010+ ' end;'#010+ - ' ','end;'#010+ + ' end;'#010+ 'end;'#010+ #010+ #010+ - 'Function TBuildEngine.InstallPackageFiles(APAckage : TPackage; tt : TT'+ - 'argetType; Const Dest : String):Boolean;'#010+ + 'Function TBuildEngine.InstallPacka','geFiles(APAckage : TPackage; tt : '+ + 'TTargetType; Const Dest : String):Boolean;'#010+ 'Var'#010+ ' List : TStringList;'#010+ ' PD,UD,BD : string;'#010+ @@ -4358,17 +4407,17 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=False;'#010+ ' List:=TStringList.Create;'#010+ ' Try'#010+ - ' UD:=GetUn','itsOutputDir(APackage);'#010+ - ' BD:=GetBinOutputDir(APackage);'#010+ + ' UD:=GetUnitsOutputDir(APackage);'#010+ + ' BD:=GetBinOutputDi','r(APackage);'#010+ ' PD:=GetPackageDir(APackage);'#010+ ' APackage.GetInstallFiles(List,[tt],PD, UD, BD, Defaults.CPU, Defau'+ 'lts.OS);'#010+ ' if (List.Count>0) then'#010+ ' begin'#010+ ' Result:=True;'#010+ - ' ','CmdCopyFiles(List,Dest);'#010+ + ' CmdCopyFiles(List,Dest);'#010+ ' end;'#010+ - ' Finally'#010+ + ' Finally'#010, ' List.Free;'#010+ ' end;'#010+ 'end;'#010+ @@ -4378,19 +4427,19 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' ExecuteCommands(APackage.Commands,caBeforeInstall);'#010+ ' If Assigned(APackage.BeforeInstall) then'#010+ - ' ',' APackage.BeforeInstall(APackage);'#010+ + ' APackage.BeforeInstall(APackage);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.DoAfterInstall(APackage: TPackage);'#010+ + 'pro','cedure TBuildEngine.DoAfterInstall(APackage: TPackage);'#010+ 'begin'#010+ ' If Assigned(APackage.AfterInstall) then'#010+ ' APackage.AfterInstall(APackage);'#010+ - ' ExecuteCommands(APackage.Commands,caAfterInstall);'#010, + ' ExecuteCommands(APackage.Commands,caAfterInstall);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Install(APackage: TPackage);'#010+ + 'procedure TBuildEngine.Install(APackage',': TPackage);'#010+ 'Var'#010+ ' UC,D : String;'#010+ ' B : Boolean;'#010+ @@ -4398,24 +4447,24 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If (Apackage.State<>tsCompiled) then'#010+ ' Compile(APackage);'#010+ ' Log(vlInfo,SInfoInstallingPackage,[APackage.Name]);'#010+ - ' DoBeforeInstall(APack','age);'#010+ + ' DoBeforeInstall(APackage);'#010+ ' // units'#010+ ' B:=false;'#010+ - ' D:=IncludeTrailingPathDelimiter(Defaults.UnitInstallDir)+APackage.Na'+ - 'me;'#010+ + ' D:=IncludeTrail','ingPathDelimiter(Defaults.UnitInstallDir)+APackage.'+ + 'Name;'#010+ ' if InstallPackageFiles(APAckage,ttUnit,D) then'#010+ ' B:=true;'#010+ ' if InstallPackageFiles(APAckage,ttImplicitUnit,D) then'#010+ ' B:=true;'#010+ - ' // ','Unit (dependency) configuration if there were units installed'#010+ + ' // Unit (dependency) configuration if there were ','units installed'#010+ ' if B then'#010+ ' begin'#010+ ' UC:=IncludeTrailingPathDelimiter(D)+UnitConfigFile;'#010+ ' Log(vlInfo, Format(SDbgGenerating, [UC]));'#010+ - ' APackage.SaveUnitConfigToFile(UC,Defaults.C','PU,Defaults.OS);'#010+ + ' APackage.SaveUnitConfigToFile(UC,Defaults.CPU,Defaults.OS);'#010+ ' end;'#010+ ' // Programs'#010+ - ' D:=IncludeTrailingPathDelimiter(Defaults.BinInstallDir);'#010+ + ' D:=I','ncludeTrailingPathDelimiter(Defaults.BinInstallDir);'#010+ ' InstallPackageFiles(APAckage,ttProgram,D);'#010+ ' // Done.'#010+ ' APackage.FTargetState:=tsInstalled;'#010+ @@ -4423,7 +4472,7 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TB','uildEngine.DoBeforeArchive(APackage: TPackage);'#010+ + 'procedure TBuildEngine.DoBeforeArchive(APackage: TPackage)',';'#010+ 'begin'#010+ ' ExecuteCommands(APackage.Commands,caBeforeArchive);'#010+ ' If Assigned(APackage.BeforeArchive) then'#010+ @@ -4431,9 +4480,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.DoAfterArchive(APacka','ge: TPackage);'#010+ + 'procedure TBuildEngine.DoAfterArchive(APackage: TPackage);'#010+ 'begin'#010+ - ' If Assigned(APackage.AfterArchive) then'#010+ + ' If Assigned(APackage.Af','terArchive) then'#010+ ' APackage.AfterArchive(APackage);'#010+ ' ExecuteCommands(APackage.Commands,caAfterArchive);'#010+ 'end;'#010+ @@ -4442,10 +4491,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure TBuildEngine.Archive(APackage: TPackage);'#010+ 'Var'#010+ ' L : TStringList;'#010+ - ' PD,','A : String;'#010+ + ' PD,A : String;'#010+ ' i: integer;'#010+ ' ICPU : TCPU;'#010+ - ' IOS : TOS;'#010+ + ' IOS',' : TOS;'#010+ 'begin'#010+ ' Log(vlInfo,SInfoArchivingPackage,[APackage.Name]);'#010+ ' DoBeforeArchive(Apackage);'#010+ @@ -4453,32 +4502,32 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' L.Sorted:=true;'#010+ ' L.Duplicates:=dupIgnore;'#010+ ' Try'#010+ - ' // Add fpmake.pp ','& manifest.xml always'#010+ - ' PD:=GetPackageDir(APackage,False);'#010+ + ' // Add fpmake.pp & manifest.xml always'#010+ + ' PD:=GetPackageDir(AP','ackage,False);'#010+ ' L.Add(PD+FPMakePPFile);'#010+ ' L.Add(PD+ManifestFile);'#010+ ' //get all files from all targets'#010+ ' for ICPU:=Low(TCPU) to high(TCPU) do'#010+ ' for IOS:=Low(TOS) to high(TOS) do'#010+ - ' ',' if OSCPUSupported[IOS,ICPU] then'#010+ - ' begin'#010+ + ' if OSCPUSupported[IOS,ICPU] then'#010+ + ' ','begin'#010+ ' ResolveFileNames(APackage,ICPU,IOS);'#010+ ' APackage.GetArchiveFiles(L, ICPU, IOS);'#010+ ' end;'#010+ ' //from sources'#010+ ' for i := 0 to APackage.Sources.Count-1 do'#010+ - ' L','.Add(APackage.Sources[i].Name);'#010+ + ' L.Add(APackage.Sources[i].Name);'#010+ #010+ - ' //show all files'#010+ + ' //show al','l files'#010+ ' for i := 0 to L.Count-1 do'#010+ ' Log(vlInfo, Format(SInfoArchivingFile, [L[i]]));'#010+ #010+ ' A:=APackage.FileName + ZipExt;'#010+ #010+ '{$ifdef HAS_UNIT_ZIPPER}'#010+ - ' if not Assigned(ArchiveFilesProc) ','then'#010+ + ' if not Assigned(ArchiveFilesProc) then'#010+ ' begin'#010+ - ' FZipFile := TZipper.Create;'#010+ + ' FZipFile := TZipper.C','reate;'#010+ ' FZipFile.ZipFiles(A, L);'#010+ ' end'#010+ ' else'#010+ @@ -4488,9 +4537,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' L.Free;'#010+ #010+ '{$ifdef HAS_UNIT_ZIPPER}'#010+ - ' if not Assigned(ArchiveFilesPr','oc) then'#010+ + ' if not Assigned(ArchiveFilesProc) then'#010+ ' FZipFile.Free;'#010+ - '{$endif HAS_UNIT_ZIPPER}'#010+ + '{$endif HAS_UNIT','_ZIPPER}'#010+ ' end;'#010+ ' DoAfterArchive(Apackage);'#010+ 'end;'#010+ @@ -4499,8 +4548,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure TBuildEngine.DoBeforeClean(APackage: TPackage);'#010+ 'begin'#010+ ' ExecuteCommands(APackage.Commands,caBeforeClean);'#010+ - ' If Assigned(APackage.Befo','reClean) then'#010+ - ' APackage.BeforeClean(APackage);'#010+ + ' If Assigned(APackage.BeforeClean) then'#010+ + ' APackage.BeforeClean(APackag','e);'#010+ 'end;'#010+ #010+ #010+ @@ -4508,11 +4557,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' If Assigned(APackage.AfterClean) then'#010+ ' APackage.AfterClean(APackage);'#010+ - ' ExecuteCommands(APackage.Commands,caAfterCl','ean);'#010+ + ' ExecuteCommands(APackage.Commands,caAfterClean);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Clean(APackage: TPackage);'#010+ + 'procedure TBuildEngine.Clean(APac','kage: TPackage);'#010+ 'Var'#010+ ' OU : String;'#010+ ' OB : String;'#010+ @@ -4520,17 +4569,17 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' Log(vlInfo,SInfoCleaningPackage,[APackage.Name]);'#010+ ' DoBeforeClean(Apackage);'#010+ - ' OU:=IncludeTrailingPathDelimiter(G','etUnitsOutputDir(APAckage));'#010+ - ' OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(APAckage));'#010+ + ' OU:=IncludeTrailingPathDelimiter(GetUnitsOutputDir(APAckage));'#010+ + ' OB:=IncludeTrai','lingPathDelimiter(GetBinOutputDir(APAckage));'#010+ ' List:=TStringList.Create;'#010+ ' try'#010+ ' APackage.GetCleanFiles(List,OU, OB, Defaults.CPU,Defaults.OS);'#010+ ' if (List.Count>0) then'#010+ - ' CmdDeleteFiles','(List);'#010+ + ' CmdDeleteFiles(List);'#010+ ' Finally'#010+ ' List.Free;'#010+ ' end;'#010+ - ' DoAfterClean(Apackage);'#010+ + ' DoAf','terClean(Apackage);'#010+ 'end;'#010+ #010+ #010+ @@ -4541,10 +4590,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Compile(Packages: T','Packages);'#010+ + 'procedure TBuildEngine.Compile(Packages: TPackages);'#010+ 'Var'#010+ ' I : Integer;'#010+ - ' P : TPackage;'#010+ + ' P : TPackage;'#010, 'begin'#010+ ' If Assigned(BeforeCompile) then'#010+ ' BeforeCompile(Self);'#010+ @@ -4552,10 +4601,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' begin'#010+ ' P:=Packages.PackageItems[i];'#010+ ' If PackageOK(P) then'#010+ - ' MaybeCompile(P)',';'#010+ + ' MaybeCompile(P);'#010+ ' end;'#010+ ' If Assigned(AfterCompile) then'#010+ - ' AfterCompile(Self);'#010+ + ' ',' AfterCompile(Self);'#010+ 'end;'#010+ #010+ #010+ @@ -4566,9 +4615,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'begin'#010+ ' If Assigned(BeforeInstall) then'#010+ ' BeforeInstall(Self);'#010+ - ' For I:=0 t','o Packages.Count-1 do'#010+ + ' For I:=0 to Packages.Count-1 do'#010+ ' begin'#010+ - ' P:=Packages.PackageItems[i];'#010+ + ' P:=Packa','ges.PackageItems[i];'#010+ ' If PackageOK(P) then'#010+ ' Install(P);'#010+ ' end;'#010+ @@ -4577,22 +4626,21 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'procedure TBuildEngine.Archive(Packages: TPackages);'#010, + 'procedure TBuildEngine.Archive(Packages: TPackages);'#010+ 'Var'#010+ ' I : Integer;'#010+ ' P : TPackage;'#010+ 'begin'#010+ - ' If Assigned(BeforeArchive) then'#010+ + ' If ','Assigned(BeforeArchive) then'#010+ ' BeforeArchive(Self);'#010+ ' Log(vlDebug, SDbgBuildEngineArchiving);'#010+ ' For I:=0 to Packages.Count-1 do'#010+ ' begin'#010+ - ' P:=Packages.PackageItems[i];'#010+ - ' If PackageOK(P) t','hen'#010+ + ' P:=Packages.PackageItems[i];'#010+ ' Archive(P);'#010+ ' end;'#010+ ' If Assigned(AfterArchive) then'#010+ - ' AfterArchive(Self);'#010+ + ' A','fterArchive(Self);'#010+ 'end;'#010+ #010+ #010+ @@ -4602,9 +4650,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' P : TPackage;'#010+ 'begin'#010+ ' If Assigned(BeforeClean) then'#010+ - ' BeforeClean(Self)',';'#010+ + ' BeforeClean(Self);'#010+ ' Log(vldebug, SDbgBuildEngineCleaning);'#010+ - ' For I:=0 to Packages.Count-1 do'#010+ + ' For I:=0 to Packages.Cou','nt-1 do'#010+ ' begin'#010+ ' P:=Packages.PackageItems[i];'#010+ ' If PackageOK(P) then'#010+ @@ -4615,8 +4663,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Procedure ','TBuildEngine.GetManifest(Packages : TPackages; Manifest : '+ - 'TStrings);'#010+ + 'Procedure TBuildEngine.GetManifest(Packages : TPackages; Manifest : TS'+ + 'trings);'#010, 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ @@ -4624,18 +4672,18 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' BeforeManifest(Self);'#010+ ' Manifest.Add('#039''#039');'#010+ ' For I:=0 to Packages.Count-1 do'#010+ - ' GetManifest(Packa','ges.PackageItems[i],Manifest);'#010+ + ' GetManifest(Packages.PackageItems[i],Manifest);'#010+ ' Manifest.Add('#039''#039');'#010+ - ' If Assigned(AfterManifest) then'#010+ + ' If As','signed(AfterManifest) then'#010+ ' AfterManifest(Self);'#010+ 'end;'#010+ #010+ #010+ '{*********************************************************************'+ '*******'#010+ - ' T','Target'#010+ - '**********************************************************************'+ - '******}'#010+ + ' TTarget'#010+ + '**************************************************************','******'+ + '********}'#010+ #010+ 'constructor TTarget.Create(ACollection: TCollection);'#010+ 'begin'#010+ @@ -4643,15 +4691,15 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' FInstall:=True;'#010+ ' FCPUs:=AllCPUs;'#010+ ' FOSes:=AllOSes;'#010+ - ' FUnit','Path:=TConditionalStrings.Create(TConditionalString);'#010+ - ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#010+ + ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#010+ + ' FIncludePath:','=TConditionalStrings.Create(TConditionalString);'#010+ ' FObjectPath:=TConditionalStrings.Create(TConditionalString);'#010+ ' FDependencies:=TDependencies.Create(TDependency);'#010+ - ' FComm','ands:=TCOmmands.Create(TCommand);'#010+ + ' FCommands:=TCOmmands.Create(TCommand);'#010+ 'end;'#010+ #010+ #010+ - 'destructor TTarget.Destroy;'#010+ + 'destructor TTarget.Destroy;'#010, 'begin'#010+ ' FreeAndNil(FUnitPath);'#010+ ' FreeAndNil(FObjectPath);'#010+ @@ -4662,9 +4710,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'fun','ction TTarget.GetSourceFileName: String;'#010+ + 'function TTarget.GetSourceFileName: String;'#010+ 'begin'#010+ - ' Result:=Name+FExtension;'#010+ + ' Result:=Name+FExtens','ion;'#010+ 'end;'#010+ #010+ #010+ @@ -4679,10 +4727,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Result:=Name+ObjExt;'#010+ 'end;'#010+ #010+ - #010, + #010+ 'function TTarget.GetRSTFileName: String;'#010+ 'begin'#010+ - ' Result:=Name+RSText;'#010+ + ' Result:=Name+RSText;',#010+ 'end;'#010+ #010+ #010+ @@ -4695,9 +4743,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'fun','ction TTarget.GetOutputFileName(AOs: TOS): String;'#010+ + 'function TTarget.GetOutputFileName(AOs: TOS): String;'#010+ 'begin'#010+ - ' if TargetType in UnitTargets then'#010+ + ' if TargetT','ype in UnitTargets then'#010+ ' Result:=GetUnitFileName'#010+ ' else'#010+ ' Result:=GetProgramFileName(AOs);'#010+ @@ -4706,11 +4754,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TTarget.SetName(const AValue: String);'#010+ 'Var'#010+ - ' D,N,E : Strin','g;'#010+ + ' D,N,E : String;'#010+ 'begin'#010+ ' N:=FixPath(AValue);'#010+ ' D:=ExtractFilePath(N);'#010+ - ' E:=ExtractFileExt(N);'#010+ + ' E:=ExtractF','ileExt(N);'#010+ ' N:=ExtractFileName(N);'#010+ ' If (E<>'#039#039') then'#010+ ' N:=Copy(N,1,Length(N)-Length(E))'#010+ @@ -4718,46 +4766,46 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' E:=Defaults.SourceExt;'#010+ ' inherited SetName(N);'#010+ ' FExtension:=E;'#010+ - ' FDi','rectory:=D;'#010+ + ' FDirectory:=D;'#010+ 'end;'#010+ #010+ #010+ - 'procedure TTarget.GetCleanFiles(List: TStrings; const APrefixU, APrefi'+ - 'xB : String; ACPU: TCPU; AOS : TOS);'#010+ + 'procedure TTarget.GetCleanFiles(List: TStrings; co','nst APrefixU, APre'+ + 'fixB : String; ACPU: TCPU; AOS : TOS);'#010+ 'begin'#010+ ' If not(ACPU in CPUs) or not(AOS in OSes) then'#010+ ' exit;'#010+ ' List.Add(APrefixU + ObjectFileName);'#010+ - ' If (Targe','tType in [ttUnit,ttImplicitUnit,ttExampleUnit, ttCleanOnl'+ - 'yUnit]) then'#010+ + ' If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit, ttCleanOnlyU'+ + 'nit]) then',#010+ ' List.Add(APrefixU + UnitFileName)'#010+ ' else If (TargetType in [ttProgram,ttExampleProgram]) then'#010+ ' List.Add(APrefixB + GetProgramFileName(AOS));'#010+ - ' If ResourceStrings t','hen'#010+ + ' If ResourceStrings then'#010+ ' List.Add(APrefixU + RSTFileName);'#010+ - ' // Maybe add later ? AddConditionalStrings(List,CleanFiles);'#010+ + ' // Maybe add later ? Add','ConditionalStrings(List,CleanFiles);'#010+ 'end;'#010+ #010+ #010+ 'procedure TTarget.GetInstallFiles(List: TStrings; const APrefixU, APre'+ 'fixB: String; ACPU: TCPU; AOS : TOS);'#010+ 'begin'#010+ - ' If not(ACPU',' in CPUs) or not(AOS in OSes) then'#010+ + ' If not(ACPU in CPUs) or not(AOS in OSes) then'#010+ ' exit;'#010+ - ' If Not (TargetType in [ttProgram,ttExampleProgram]) then'#010+ + ' If Not (TargetType in ','[ttProgram,ttExampleProgram]) then'#010+ ' List.Add(APrefixU + ObjectFileName);'#010+ ' If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit]) then'#010+ - ' List.Add(APrefixU + UnitFil','eName)'#010+ + ' List.Add(APrefixU + UnitFileName)'#010+ ' else If (TargetType in [ttProgram,ttExampleProgram]) then'#010+ - ' List.Add(APrefixB + GetProgramFileName(AOS));'#010+ + ' ',' List.Add(APrefixB + GetProgramFileName(AOS));'#010+ ' If ResourceStrings then'#010+ ' List.Add(APrefixU + RSTFileName);'#010+ - ' // Maybe add later ? AddConditionalStrings(List,InstallF','iles);'#010+ + ' // Maybe add later ? AddConditionalStrings(List,InstallFiles);'#010+ 'end;'#010+ #010+ #010+ - 'procedure TTarget.GetArchiveFiles(List: TStrings; ACPU: TCPU; AOS : TO'+ - 'S);'#010+ + 'procedure TTarget.GetArchiveFiles(List: TStrings; ACPU:',' TCPU; AOS : '+ + 'TOS);'#010+ 'var'#010+ ' i : integer;'#010+ ' D : TDependency;'#010+ @@ -4765,28 +4813,28 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' If not(ACPU in CPUs) or not(AOS in OSes) then'#010+ ' exit;'#010+ ' // Main source'#010+ - ' if TargetSourceFileName<>'#039#039' the','n'#010+ + ' if TargetSourceFileName<>'#039#039' then'#010+ ' List.Add(TargetSourceFileName);'#010+ ' // Includes'#010+ - ' for i:=0 to Dependencies.Count-1 do'#010+ + ' for i:=0 to Dep','endencies.Count-1 do'#010+ ' begin'#010+ ' D:=Dependencies[i];'#010+ ' if (D.DependencyType=depInclude) and'#010+ ' (D.TargetFileName<>'#039#039') then'#010+ - ' List.Add(D.TargetFileName)',';'#010+ + ' List.Add(D.TargetFileName);'#010+ ' end;'#010+ 'end;'#010+ #010+ #010+ - '{*********************************************************************'+ - '*******'#010+ + '{**************************************************','*****************'+ + '*********'#010+ ' TSource'#010+ '**********************************************************************'+ '******}'#010+ #010+ - 'constructor TSource.Crea','te(ACollection: TCollection);'#010+ + 'constructor TSource.Create(ACollection: TCollection);'#010+ 'begin'#010+ - ' inherited Create(ACollection);'#010+ + ' inherited Create(ACollection);'#010, 'end;'#010+ #010+ #010+ @@ -4798,18 +4846,18 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ '{*********************************************************************'+ '*******'#010+ - ' ',' TCommands'#010+ - '**********************************************************************'+ - '******}'#010+ + ' TCommands'#010+ + '**************************************************','******************'+ + '********}'#010+ #010+ 'function TCommands.GetCommand(const Dest : String): TCommand;'#010+ 'begin'#010+ ' Result:=TCommand(ItemByName(Dest));'#010+ 'end;'#010+ #010+ - 'function TCommands.GetCommandI','tem(Index : Integer): TCommand;'#010+ + 'function TCommands.GetCommandItem(Index : Integer): TCommand;'#010+ 'begin'#010+ - ' Result:=TCommand(Items[Index]);'#010+ + ' Result:=TCommand(Items[Index]',');'#010+ 'end;'#010+ #010+ #010+ @@ -4820,10 +4868,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TCommands.AddCommand(const Cmd: String',') : TCommand;'#010+ + 'Function TCommands.AddCommand(const Cmd: String) : TCommand;'#010+ 'begin'#010+ ' Result:=AddCommand(fdefaultAt,Cmd,'#039#039','#039#039','#039#039');'#010+ - 'end;'#010+ + 'en','d;'#010+ #010+ #010+ 'function TCommands.AddCommand(const Cmd, Options: String): TCommand;'#010+ @@ -4832,32 +4880,32 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TCommands.AddCommand(co','nst Cmd, Options, Dest, Source: Stri'+ - 'ng ): TCommand;'#010+ + 'function TCommands.AddCommand(const Cmd, Options, Dest, Source: String'+ + ' ): TCommand;'#010+ 'begin'#010+ - ' Result:=AddCommand(fdefaultAt,Cmd,options,Dest,Source);'#010+ + ' Result:=A','ddCommand(fdefaultAt,Cmd,options,Dest,Source);'#010+ 'end;'#010+ #010+ #010+ 'Function TCommands.AddCommand(At: TCommandAt; const Cmd: String) : TCo'+ 'mmand;'#010+ 'begin'#010+ - ' Result:=AddCommand(At,Cmd,'#039#039','#039#039',',#039#039');'#010+ + ' Result:=AddCommand(At,Cmd,'#039#039','#039#039','#039#039');'#010+ 'end;'#010+ #010+ #010+ - 'function TCommands.AddCommand(At: TCommandAt; const Cmd, Options: Stri'+ - 'ng ): TCommand;'#010+ + 'function TCommands.AddCommand(At: TCommandAt; const Cmd, ','Options: St'+ + 'ring ): TCommand;'#010+ 'begin'#010+ ' Result:=AddCommand(At,Cmd,Options,'#039#039','#039#039');'#010+ 'end;'#010+ #010+ #010+ 'function TCommands.AddCommand(At: TCommandAt; const Cmd, Options, Dest'+ - ', Source: Stri','ng): TCommand;'#010+ + ', Source: String): TCommand;'#010+ 'begin'#010+ ' Result:=Add as TCommand;'#010+ - ' Result.Command:=Cmd;'#010+ + ' Result.Command:=Cmd',';'#010+ ' Result.Options:=Options;'#010+ ' Result.At:=At;'#010+ ' Result.SourceFile:=Source;'#010+ @@ -4865,44 +4913,44 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - '{***************************************************************','****'+ - '*********'#010+ + '{*********************************************************************'+ + '*******'#010+ ' TConditionalStrings'#010+ - '**********************************************************************'+ - '******}'#010+ + '********','************************************************************'+ + '********}'#010+ #010+ 'Constructor TConditionalStrings.Create(AClass:TClass);'#010+ 'begin'#010+ ' inherited Create;'#010+ - ' FCSClass:=AClass;',#010+ + ' FCSClass:=AClass;'#010+ 'end;'#010+ #010+ #010+ - 'function TConditionalStrings.GetConditionalString(Index : Integer): TC'+ - 'onditionalString;'#010+ + 'function TConditionalStrings.GetConditionalString(Index : Int','eger): '+ + 'TConditionalString;'#010+ 'begin'#010+ ' Result:=TConditionalString(Items[Index]);'#010+ 'end;'#010+ #010+ #010+ 'procedure TConditionalStrings.SetConditionalString(Index : Integer; co'+ - 'nst AValue: TCond','itionalString);'#010+ + 'nst AValue: TConditionalString);'#010+ 'begin'#010+ ' Items[Index]:=AValue;'#010+ 'end;'#010+ #010+ #010+ - 'Function TConditionalStrings.Add(Const Value : String) : TConditionalS'+ - 'tring;'#010+ + 'Function TCondit','ionalStrings.Add(Const Value : String) : TConditiona'+ + 'lString;'#010+ 'begin'#010+ ' result:=Add(Value,AllCPUs,AllOSes);'#010+ 'end;'#010+ #010+ #010+ '{$ifdef cpu_only_overloads}'#010+ - 'Function TConditionalStrings.Ad','d(Const Value : String;const CPUs:TCP'+ - 'Us) : TConditionalString;'#010+ - 'begin'#010+ + 'Function TConditionalStrings.Add(Const Value : String;const CPUs:TCPUs'+ + ') : TConditionalString;'#010+ + 'begin'#010, ' result:=Add(Value,CPUs,AllOSes);'#010+ 'end;'#010+ '{$endif cpu_only_overloads}'#010+ @@ -4911,28 +4959,28 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TConditionalStrings.Add(Const Value : String;const OSes:TOSes'+ ') : TConditionalString;'#010+ 'begin'#010+ - ' ',' result:=Add(Value,AllCPUs,OSes);'#010+ + ' result:=Add(Value,AllCPUs,OSes);'#010+ 'end;'#010+ #010+ #010+ - 'Function TConditionalStrings.Add(Const Value : String;const CPUs:TCPUs'+ - ';const OSes:TOSes) : TConditionalString;'#010+ + 'Function TConditionalStrings','.Add(Const Value : String;const CPUs:TCP'+ + 'Us;const OSes:TOSes) : TConditionalString;'#010+ 'begin'#010+ ' Result:=FCSClass.Create as TConditionalString;'#010+ ' Result.Value:=Value;'#010+ - ' Result.O','Ses:=OSes;'#010+ + ' Result.OSes:=OSes;'#010+ ' Result.CPUs:=CPUs;'#010+ ' inherited Add(Result);'#010+ 'end;'#010+ #010+ #010+ - '{*********************************************************************'+ - '*******'#010+ + '{****','***************************************************************'+ + '*********'#010+ ' TDependencies'#010+ - '****************************************************','****************'+ - '********}'#010+ + '**********************************************************************'+ + '******}'#010+ #010+ - 'function TDependencies.GetDependency(Index : Integer): TDependency;'#010+ + 'function TDependencies.GetDependency(Index',' : Integer): TDependency;'#010+ 'begin'#010+ ' Result:=TDependency(Items[Index]);'#010+ 'end;'#010+ @@ -4941,11 +4989,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'procedure TDependencies.SetDependency(Index : Integer; const AValue: T'+ 'Dependency);'#010+ 'begin'#010+ - ' Item','s[Index]:=AValue;'#010+ + ' Items[Index]:=AValue;'#010+ 'end;'#010+ #010+ #010+ - 'Function TDependencies.Add(Const Value : String) : TDependency;'#010+ + 'Function TDependencies.Add(Const Value : Str','ing) : TDependency;'#010+ 'begin'#010+ ' result:=Add(Value,AllCPUs,AllOSes);'#010+ 'end;'#010+ @@ -4953,11 +5001,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ '{$ifdef cpu_only_overloads}'#010+ 'Function TDependencies.Add(Const Value : String;const CPUs:TCPUs) : TD'+ - 'ep','endency;'#010+ + 'ependency;'#010+ 'begin'#010+ ' result:=Add(Value,CPUs,AllOSes);'#010+ 'end;'#010+ - '{$endif cpu_only_overloads}'#010+ + '{$endif cpu_on','ly_overloads}'#010+ #010+ #010+ 'Function TDependencies.Add(Const Value : String;const OSes:TOSes) : TD'+ @@ -4967,8 +5015,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TDependencies.Add','(Const Value : String;const CPUs:TCPUs;con'+ - 'st OSes:TOSes) : TDependency;'#010+ + 'Function TDependencies.Add(Const Value : String;const CPUs:TCPUs;const'+ + ' OSes:TOSes) : TDependenc','y;'#010+ 'begin'#010+ ' Result:=inherited Add(Value,CPUs,OSes) as TDependency;'#010+ ' Result.Target:=nil;'#010+ @@ -4976,9 +5024,9 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function TDependencies.AddUnit(Const V','alue : String) : TDependency;'#010+ + 'Function TDependencies.AddUnit(Const Value : String) : TDependency;'#010+ 'begin'#010+ - ' result:=AddUnit(Value,AllCPUs,AllOSes);'#010+ + ' result:=AddUnit(Value,AllCPUs,A','llOSes);'#010+ 'end;'#010+ #010+ #010+ @@ -4986,22 +5034,22 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Function TDependencies.AddUnit(Const Value : String;const CPUs:TCPUs) '+ ': TDependency;'#010+ 'begin'#010+ - ' result:=AddUnit(Value,CPUs,AllOSes',');'#010+ + ' result:=AddUnit(Value,CPUs,AllOSes);'#010+ 'end;'#010+ '{$endif cpu_only_overloads}'#010+ #010+ #010+ - 'Function TDependencies.AddUnit(Const Value : String;const OSes:TOSes) '+ - ': TDependency;'#010+ + 'Function TDependencies.AddUnit(','Const Value : String;const OSes:TOSes'+ + ') : TDependency;'#010+ 'begin'#010+ ' result:=AddUnit(Value,AllCPUs,OSes);'#010+ 'end;'#010+ #010+ #010+ - 'Function TDependencies.AddUnit(Const Value : String;const CPUs:TC','PUs'+ - ';const OSes:TOSes) : TDependency;'#010+ + 'Function TDependencies.AddUnit(Const Value : String;const CPUs:TCPUs;c'+ + 'onst OSes:TOSes) : TDependency;'#010+ 'begin'#010+ - ' Result:=inherited Add(Value,CPUs,OSes) as TDependency;'#010+ + ' Result:=inherited Add(Va','lue,CPUs,OSes) as TDependency;'#010+ ' Result.Target:=nil;'#010+ ' Result.FDependencyType:=depUnit;'#010+ 'end;'#010+ @@ -5009,71 +5057,71 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'Function TDependencies.AddInclude(Const Value : String) : TDependency;'+ #010+ - 'begin',#010+ + 'begin'#010+ ' result:=AddInclude(Value,AllCPUs,AllOSes);'#010+ 'end;'#010+ #010+ #010+ - '{$ifdef cpu_only_overloads}'#010+ + '{$ifdef cpu_only','_overloads}'#010+ 'Function TDependencies.AddInclude(Const Value : String;const CPUs:TCPU'+ 's) : TDependency;'#010+ 'begin'#010+ ' result:=AddInclude(Value,CPUs,AllOSes);'#010+ 'end;'#010+ - '{$endif cpu_only_o','verloads}'#010+ + '{$endif cpu_only_overloads}'#010+ #010+ #010+ - 'Function TDependencies.AddInclude(Const Value : String;const OSes:TOSe'+ - 's) : TDependency;'#010+ + 'Function TDependencies.AddInclude(Const Value : String;co','nst OSes:TO'+ + 'Ses) : TDependency;'#010+ 'begin'#010+ ' result:=AddInclude(Value,AllCPUs,OSes);'#010+ 'end;'#010+ #010+ #010+ 'Function TDependencies.AddInclude(Const Value : String;const CPUs:TCPU'+ - 's;const OSes:TO','Ses) : TDependency;'#010+ + 's;const OSes:TOSes) : TDependency;'#010+ 'Var'#010+ ' N : String;'#010+ 'begin'#010+ ' N:=FixPath(Value);'#010+ - ' if ExtractFileExt(N)='#039#039' then'#010+ + ' if',' ExtractFileExt(N)='#039#039' then'#010+ ' ChangeFileExt(N,IncExt);'#010+ ' Result:=inherited Add(N,CPUs,OSes) as TDependency;'#010+ ' Result.FDependencyType:=depInclude;'#010+ 'end;'#010+ #010+ #010+ - '{****************','***************************************************'+ - '*********'#010+ - ' TValueItem'#010+ + '{*********************************************************************'+ + '*******'#010+ + ' ',' TValueItem'#010+ '**********************************************************************'+ '******}'#010+ #010+ 'constructor TValueItem.Create(AValue: String);'#010+ 'begin'#010+ - ' FVa','lue:=AValue;'#010+ + ' FValue:=AValue;'#010+ 'end;'#010+ #010+ #010+ - '{*********************************************************************'+ - '*******'#010+ + '{************************************************','*******************'+ + '*********'#010+ ' TFunctionItem'#010+ '**********************************************************************'+ '******}'#010+ #010+ - 'constructor TFuncti','onItem.Create(AFunc: TReplaceFunction);'#010+ + 'constructor TFunctionItem.Create(AFunc: TReplaceFunction);'#010+ 'begin'#010+ ' FFunc:=AFunc;'#010+ 'end;'#010+ #010+ - #010+ + #010, '{*********************************************************************'+ '*******'#010+ ' TDictionary'#010+ - '************************************************','********************'+ - '********}'#010+ + '**********************************************************************'+ + '******}'#010+ #010+ - 'constructor TDictionary.Create(AOwner: TComponent);'#010+ + 'constructor TDictionary.Create(AOwner:',' TComponent);'#010+ 'begin'#010+ ' inherited Create(AOwner);'#010+ ' FList:=TStringList.Create;'#010+ @@ -5083,11 +5131,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ #010+ 'destructor TDictionary.Destroy;'#010+ - 'Var',#010+ + 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ ' For I:=0 to Flist.Count-1 do'#010+ - ' FList.Objects[i].Free;'#010+ + ' FList.Object','s[i].Free;'#010+ ' FreeAndNil(FList);'#010+ ' inherited Destroy;'#010+ 'end;'#010+ @@ -5097,11 +5145,11 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ - ' I:=Flist.IndexOf(ANam','e);'#010+ + ' I:=Flist.IndexOf(AName);'#010+ ' If I=-1 then'#010+ ' I:=FList.Add(Aname)'#010+ ' else'#010+ - ' Flist.Objects[i].Free;'#010+ + ' Flist.Objects[i','].Free;'#010+ ' Flist.Objects[i]:=TValueItem.Create(Value);'#010+ 'end;'#010+ #010+ @@ -5110,10 +5158,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'ReplaceFunction);'#010+ 'Var'#010+ ' I : Integer;'#010+ - 'beg','in'#010+ + 'begin'#010+ ' I:=Flist.IndexOf(AName);'#010+ ' If I=-1 then'#010+ - ' I:=Flist.Add(AName)'#010+ + ' I:=Flist.Add(AName)'#010, ' else'#010+ ' Flist.Objects[i].Free;'#010+ ' Flist.Objects[i]:=TFunctionItem.Create(FReplacement);'#010+ @@ -5122,12 +5170,12 @@ const fpmkunitsrc : array[0..573,1..240] of char=( #010+ 'procedure TDictionary.RemoveItem(const AName: String);'#010+ 'Var'#010+ - ' I : Integer;'#010, + ' I : Integer;'#010+ 'begin'#010+ ' I:=Flist.IndexOf(AName);'#010+ ' If (I<>-1) then'#010+ ' begin'#010+ - ' FList.Objects[i].Free;'#010+ + ' FLis','t.Objects[i].Free;'#010+ ' FList.Delete(I);'#010+ ' end;'#010+ 'end;'#010+ @@ -5139,19 +5187,19 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'function TDi','ctionary.GetValue(const AName,Args: String): String;'#010+ + 'function TDictionary.GetValue(const AName,Args: String): String;'#010+ 'Var'#010+ - ' O : TObject;'#010+ + ' O : TObjec','t;'#010+ ' I : Integer;'#010+ 'begin'#010+ ' I:=Flist.IndexOf(AName);'#010+ ' If (I=-1) then'#010+ ' Raise EDictionaryError.CreateFmt(SErrNoDictionaryItem,[AName]);'#010+ ' O:=Flist.Objects[I];'#010+ - ' If O is TV','alueItem then'#010+ + ' If O is TValueItem then'#010+ ' Result:=TValueItem(O).FValue'#010+ ' else'#010+ - ' Result:=TFunctionItem(O).FFunc(AName,Args);'#010+ + ' Result:=TFu','nctionItem(O).FFunc(AName,Args);'#010+ 'end;'#010+ #010+ #010+ @@ -5161,21 +5209,21 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' P: Integer;'#010+ 'begin'#010+ ' Result:='#039#039';'#010+ - ' S:=','ASource;'#010+ + ' S:=ASource;'#010+ ' P:=Pos('#039'$('#039',S);'#010+ ' While (P<>0) do'#010+ ' begin'#010+ - ' Result:=Result+Copy(S,1,P-1);'#010+ + ' Result:=','Result+Copy(S,1,P-1);'#010+ ' Delete(S,1,P+1);'#010+ ' P:=Pos('#039')'#039',S);'#010+ ' FN:=Copy(S,1,P-1);'#010+ ' Delete(S,1,P);'#010+ ' P:=Pos('#039' '#039',FN);'#010+ - ' If (P<>0) then // function argu','ments ?'#010+ + ' If (P<>0) then // function arguments ?'#010+ ' begin'#010+ ' FV:=FN;'#010+ ' FN:=Copy(FN,1,P);'#010+ - ' System.Delete(FV,1,P);'#010+ + ' ',' System.Delete(FV,1,P);'#010+ ' end'#010+ ' else'#010+ ' FV:='#039#039';'#010+ @@ -5186,8 +5234,8 @@ const fpmkunitsrc : array[0..573,1..240] of char=( 'end;'#010+ #010+ #010+ - 'Function S','ubstitute(Const Source : String; Macros : Array of string)'+ - ' : String;'#010+ + 'Function Substitute(Const Source : String; Macros : Array of string) :'+ + ' String;'#010, 'Var'#010+ ' I : Integer;'#010+ 'begin'#010+ @@ -5197,10 +5245,10 @@ const fpmkunitsrc : array[0..573,1..240] of char=( ' Dictionary.AddVariable(Macros[i],Macros[I+1]);'#010+ ' Inc(I,2);'#010+ ' end;'#010+ - ' Result:=Dictionary.Rep','laceStrings(Source);'#010+ + ' Result:=Dictionary.ReplaceStrings(Source);'#010+ ' While I