mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-06 06:32:40 +02:00
128 lines
3.1 KiB
ObjectPascal
128 lines
3.1 KiB
ObjectPascal
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.
|
|
|