|
@@ -12,7 +12,7 @@ unit CompTypes;
|
|
interface
|
|
interface
|
|
|
|
|
|
uses
|
|
uses
|
|
- Windows, SysUtils, Registry, Classes, IsppBase, IsppIntf;
|
|
|
|
|
|
+ Windows, SysUtils, Registry, Classes;
|
|
|
|
|
|
type
|
|
type
|
|
TConfigIniFile = class(TRegIniFile)
|
|
TConfigIniFile = class(TRegIniFile)
|
|
@@ -24,87 +24,11 @@ type
|
|
destructor Destroy; override;
|
|
destructor Destroy; override;
|
|
end;
|
|
end;
|
|
|
|
|
|
-procedure PopulateOptions(var Options: TOptions; Symbol: Char);
|
|
|
|
-function IsParam(const S: String): Boolean;
|
|
|
|
-function FindParam(var Index: Integer; Symbols: String): String;
|
|
|
|
-function GetParam(var S: String; Symbols: String): Boolean;
|
|
|
|
-function ConvertOptionsToString(const Options: TOptions): String;
|
|
|
|
-procedure AppendOption(var Opts: String; const OptName, OptValue: String);
|
|
|
|
procedure ReadSignTools(SignTools: TStringList);
|
|
procedure ReadSignTools(SignTools: TStringList);
|
|
function AddSignToolParam(Sign: string): string;
|
|
function AddSignToolParam(Sign: string): string;
|
|
-procedure InitIsppOptions(var Opt: TIsppOptions; var Definitions, IncludePath: String);
|
|
|
|
-procedure IsppOptionsToString(var S: String; Opt: TIsppOptions; Definitions, IncludePath: String);
|
|
|
|
|
|
|
|
implementation
|
|
implementation
|
|
|
|
|
|
-uses CmnFunc2;
|
|
|
|
-
|
|
|
|
-procedure PopulateOptions(var Options: TOptions; Symbol: Char);
|
|
|
|
-var
|
|
|
|
- I: Integer;
|
|
|
|
- S: String;
|
|
|
|
-begin
|
|
|
|
- for I := 1 to NewParamCount do
|
|
|
|
- begin
|
|
|
|
- S := NewParamStr(I);
|
|
|
|
- if Length(S) = 4 then
|
|
|
|
- if ((S[1] = '/') or (S[1] = '-')) and (UpCase(S[2]) = Symbol) then
|
|
|
|
- case S[4] of
|
|
|
|
- '-': SetOption(Options, S[3], False);
|
|
|
|
- '+': SetOption(Options, S[3], True)
|
|
|
|
- else
|
|
|
|
- raise Exception.CreateFmt('Invalid command line option: %s', [S]);
|
|
|
|
- end;
|
|
|
|
- end;
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-function IsParam(const S: String): Boolean;
|
|
|
|
-begin
|
|
|
|
- Result := (Length(S) >= 2) and ((S[1] = '/') or (S[1] = '-'));
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-function GetParam(var S: String; Symbols: String): Boolean;
|
|
|
|
-begin
|
|
|
|
- Result := IsParam(S) and
|
|
|
|
- (CompareText(Copy(S, 2, Length(Symbols)), Symbols) = 0);
|
|
|
|
- if Result then
|
|
|
|
- S := Copy(S, 2 + Length(Symbols), MaxInt);
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-function FindParam(var Index: Integer; Symbols: String): String;
|
|
|
|
-var
|
|
|
|
- I: Integer;
|
|
|
|
- S: String;
|
|
|
|
-begin
|
|
|
|
- for I := Index to NewParamCount do
|
|
|
|
- begin
|
|
|
|
- S := NewParamStr(I);
|
|
|
|
- if IsParam(S) and (CompareText(Copy(S, 2, Length(Symbols)), Symbols) = 0) then
|
|
|
|
- begin
|
|
|
|
- Result := Copy(S, 2 + Length(Symbols), MaxInt);
|
|
|
|
- Index := I + 1;
|
|
|
|
- Exit;
|
|
|
|
- end;
|
|
|
|
- end;
|
|
|
|
- Index := MaxInt;
|
|
|
|
- Result := '';
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-function ConvertOptionsToString(const Options: TOptions): String;
|
|
|
|
-var
|
|
|
|
- I: TOptionID;
|
|
|
|
-begin
|
|
|
|
- Result := '';
|
|
|
|
- for I := 0 to 25 do
|
|
|
|
- if I in Options then
|
|
|
|
- Result := Result + Chr(Ord('a') + I);
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-procedure AppendOption(var Opts: String; const OptName, OptValue: String);
|
|
|
|
-begin
|
|
|
|
- Opts := Opts + OptName + '=' + OptValue + #0;
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
procedure ReadSignTools(SignTools: TStringList);
|
|
procedure ReadSignTools(SignTools: TStringList);
|
|
var
|
|
var
|
|
Ini: TConfigIniFile;
|
|
Ini: TConfigIniFile;
|
|
@@ -132,40 +56,6 @@ begin
|
|
Result := 'SignTool-' + Sign + #0;
|
|
Result := 'SignTool-' + Sign + #0;
|
|
end;
|
|
end;
|
|
|
|
|
|
-procedure InitIsppOptions(var Opt: TIsppOptions; var Definitions, IncludePath: String);
|
|
|
|
-begin
|
|
|
|
- with Opt do
|
|
|
|
- begin
|
|
|
|
- SetOption(Options, 'C', True);
|
|
|
|
- SetOption(ParserOptions.Options, 'B', True);
|
|
|
|
- SetOption(ParserOptions.Options, 'P', True);
|
|
|
|
- VerboseLevel := 0;
|
|
|
|
- InlineStart := '{#';
|
|
|
|
- InlineEnd := '}';
|
|
|
|
-
|
|
|
|
- PopulateOptions(Options, '$');
|
|
|
|
- PopulateOptions(ParserOptions.Options, 'p');
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
- Definitions := 'ISPPCC_INVOKED';
|
|
|
|
- IncludePath := ExtractFileDir(NewParamStr(0));
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-procedure IsppOptionsToString(var S: String; Opt: TIsppOptions; Definitions, IncludePath: String);
|
|
|
|
-begin
|
|
|
|
- with Opt do
|
|
|
|
- begin
|
|
|
|
- AppendOption(S, 'ISPP:ParserOptions', ConvertOptionsToString(ParserOptions.Options));
|
|
|
|
- AppendOption(S, 'ISPP:Options', ConvertOptionsToString(Options));
|
|
|
|
- AppendOption(S, 'ISPP:VerboseLevel', IntToStr(VerboseLevel));
|
|
|
|
- AppendOption(S, 'ISPP:InlineStart', String(InlineStart));
|
|
|
|
- AppendOption(S, 'ISPP:InlineEnd', String(InlineEnd));
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
- AppendOption(S, 'ISPP:IncludePath', IncludePath);
|
|
|
|
- AppendOption(S, 'ISPP:Definitions', Definitions);
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
{ TConfigIniFile }
|
|
{ TConfigIniFile }
|
|
|
|
|
|
constructor TConfigIniFile.Create;
|
|
constructor TConfigIniFile.Create;
|