File: delphioptions.pas

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (127 lines) | stat: -rw-r--r-- 3,203 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
unit delphioptions;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LazConfigStorage;

Const
  DefaultCompilerFileName = 'dcc32.exe';
  DefaultGenConfig = True;
  DefaultConfigExtension = '.conf';
  DefaultConvertPathsToUnix = {$IFDEF UNIX}True{$ELSE}False{$ENDIF};
  DefaultAdditionalOptions = '';

Type

  { TDelphiToolOptions }

  TDelphiToolOptions = Class(TPersistent)
  Private
    FAdditionalOptions: String;
    FCompilerFileName: String;
    FConfigFileExtension: String;
    FConvertPathsToUnix: Boolean;
    FGenerateConfigFile: Boolean;
    class var _Instance : TDelphiToolOptions;
  Protected
    procedure LoadFromConfig(Cfg: TConfigStorage); virtual;
    procedure SaveToConfig(Cfg: TConfigStorage); virtual;
  Public
    Constructor Create; virtual;
    class constructor init;
    class destructor Done;
    procedure Load;
    procedure Save;
    procedure Reset;
    class property Instance : TDelphiToolOptions Read _Instance;
    Property CompilerFileName : String Read FCompilerFileName Write FCompilerFileName;
    Property ConfigFileExtension : String Read FConfigFileExtension Write FConfigFileExtension;
    Property ConvertPathsToUnix : Boolean Read FConvertPathsToUnix Write FConvertPathsToUnix;
    Property AdditionalOptions : String Read FAdditionalOptions Write FAdditionalOptions;
  end;

Function DelphiToolOptions : TDelphiToolOptions;

implementation

uses BaseIDEIntf, strdelphitool;

function DelphiToolOptions: TDelphiToolOptions;
begin
  Result:=TDelphiToolOptions.Instance;
end;

{ TDelphiToolOptions }

procedure TDelphiToolOptions.LoadFromConfig(Cfg: TConfigStorage);
begin
  CompilerFilename:=Cfg.GetValue(KeyCompiler, CompilerFilename);
  ConfigFileExtension:=Cfg.GetValue(KeyConfigFileExt, ConfigFileExtension);
  ConvertPathsToUnix:=Cfg.GetValue(KeyConvertPaths, ConvertPathsToUnix);
  AdditionalOptions:=Cfg.GetValue(KeyAdditionalOptions, AdditionalOptions);
end;

procedure TDelphiToolOptions.SaveToConfig(Cfg: TConfigStorage);
begin
  Cfg.SetDeleteValue(KeyCompiler, CompilerFilename, DefaultCompilerFileName);
  Cfg.SetDeleteValue(KeyConfigFileExt, ConfigFileExtension, DefaultConfigExtension);
  Cfg.SetDeleteValue(KeyConvertPaths, ConvertPathsToUnix, DefaultConvertPathsToUnix);
  Cfg.SetDeleteValue(KeyAdditionalOptions, AdditionalOptions, DefaultAdditionalOptions);
end;

constructor TDelphiToolOptions.Create;
begin
  Reset;
end;

class constructor TDelphiToolOptions.init;
begin
  _Instance:=TDelphiToolOptions.Create;
end;

class destructor TDelphiToolOptions.Done;
begin
  FreeAndNil(_Instance)
end;

procedure TDelphiToolOptions.Load;

var
  Cfg: TConfigStorage;

begin
  Cfg:=GetIDEConfigStorage(DelphiToolsOptionsFile,true);
  try
    LoadFromConfig(Cfg);
  finally
    Cfg.Free;
  end;
end;

procedure TDelphiToolOptions.Save;

var
  Cfg: TConfigStorage;

begin
  Cfg:=GetIDEConfigStorage(DelphiToolsOptionsFile,false);
  try
    SaveToConfig(Cfg);
  finally
    Cfg.Free;
  end;
end;

procedure TDelphiToolOptions.Reset;
begin
  CompilerFileName:=DefaultCompilerFileName;
  ConfigFileExtension:=DefaultConfigExtension;
  ConvertPathsToUnix:=DefaultConvertPathsToUnix;
  AdditionalOptions:=DefaultAdditionalOptions;
end;

end.