mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-31 09:21:35 +02:00
Moved compiler options to write to the project file. CAW
git-svn-id: trunk@145 -
This commit is contained in:
parent
061fa9525a
commit
e856c6896b
@ -41,6 +41,8 @@ type
|
|||||||
fOptionsString: String;
|
fOptionsString: String;
|
||||||
xmlcfg: TXMLConfig;
|
xmlcfg: TXMLConfig;
|
||||||
|
|
||||||
|
fProjectFile: String;
|
||||||
|
|
||||||
fStyle: Integer;
|
fStyle: Integer;
|
||||||
fD2Ext: Boolean;
|
fD2Ext: Boolean;
|
||||||
fCStyleOp: Boolean;
|
fCStyleOp: Boolean;
|
||||||
@ -97,14 +99,21 @@ type
|
|||||||
fLibraries: String;
|
fLibraries: String;
|
||||||
fOtherUnitFiles: String;
|
fOtherUnitFiles: String;
|
||||||
fCompilerPath: String;
|
fCompilerPath: String;
|
||||||
|
|
||||||
|
procedure LoadTheCompilerOptions;
|
||||||
|
procedure SaveTheCompilerOptions;
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure LoadCompilerOptions;
|
procedure LoadCompilerOptions(UseExistingFile: Boolean);
|
||||||
procedure SaveCompilerOptions;
|
procedure SaveCompilerOptions(UseExistingFile: Boolean);
|
||||||
function MakeOptionsString: String;
|
function MakeOptionsString: String;
|
||||||
function ParseSearchPaths(switch, paths: String): String;
|
function ParseSearchPaths(switch, paths: String): String;
|
||||||
|
function GetXMLConfigPath: String;
|
||||||
|
|
||||||
|
property ProjectFile: String read fProjectFile write fProjectFile;
|
||||||
|
property XMLConfigFile: TXMLConfig read xmlcfg write xmlcfg;
|
||||||
|
|
||||||
property Style: Integer read fStyle write fStyle;
|
property Style: Integer read fStyle write fStyle;
|
||||||
property D2Extensions: Boolean read fD2Ext write fD2Ext;
|
property D2Extensions: Boolean read fD2Ext write fD2Ext;
|
||||||
@ -308,6 +317,9 @@ compilerOpts: TCompilerOptions;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
main, project;
|
||||||
|
|
||||||
const
|
const
|
||||||
CONFIG_FILENAME = 'compileroptions.xml';
|
CONFIG_FILENAME = 'compileroptions.xml';
|
||||||
|
|
||||||
@ -317,34 +329,11 @@ const
|
|||||||
constructor TCompilerOptions.Create;
|
constructor TCompilerOptions.Create;
|
||||||
var
|
var
|
||||||
confPath: String;
|
confPath: String;
|
||||||
|
fn: String;
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
Assert(False, 'Trace:Compiler Options Class Created');
|
Assert(False, 'Trace:Compiler Options Class Created');
|
||||||
|
|
||||||
confPath := GetPrimaryConfigPath + '/' + CONFIG_FILENAME;
|
|
||||||
|
|
||||||
|
|
||||||
// See if config path exists and if not create it
|
|
||||||
if (not DirectoryExists(GetPrimaryConfigPath)) then
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
// Create the directory
|
|
||||||
CreatePrimaryConfigPath;
|
|
||||||
|
|
||||||
{ TODO:
|
|
||||||
Try to read the configuration from the secondary path
|
|
||||||
If successful, then read it in and write it to the primary path
|
|
||||||
If unsuccessful, then just use defaults
|
|
||||||
}
|
|
||||||
except
|
|
||||||
Assert(False, 'Trace:There was a problem creating the config directory. Using defaults.');
|
|
||||||
Assert(False, 'Trace:File = ' + confPath);
|
|
||||||
confPath := './' + CONFIG_FILENAME;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
xmlcfg := TXMLConfig.Create(SetDirSeparators(confPath));
|
|
||||||
|
|
||||||
fOptionsString := '';
|
fOptionsString := '';
|
||||||
|
|
||||||
{ Set Defaults }
|
{ Set Defaults }
|
||||||
@ -411,152 +400,191 @@ end;
|
|||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
destructor TCompilerOptions.Destroy;
|
destructor TCompilerOptions.Destroy;
|
||||||
begin
|
begin
|
||||||
xmlcfg.Free;
|
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
{ TfrmCompilerOptions LoadCompilerOptions }
|
{ TfrmCompilerOptions LoadCompilerOptions }
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
procedure TCompilerOptions.LoadCompilerOptions;
|
procedure TCompilerOptions.LoadCompilerOptions(UseExistingFile: Boolean);
|
||||||
|
var
|
||||||
|
confPath: String;
|
||||||
|
begin
|
||||||
|
if (UseExistingFile and (XMLConfigFile <> nil)) then
|
||||||
|
begin
|
||||||
|
LoadTheCompilerOptions;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
confPath := GetXMLConfigPath;
|
||||||
|
XMLConfigFile := TXMLConfig.Create(SetDirSeparators(confPath));
|
||||||
|
LoadTheCompilerOptions;
|
||||||
|
XMLConfigFile.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------}
|
||||||
|
{ TfrmCompilerOptions LoadTheCompilerOptions }
|
||||||
|
{------------------------------------------------------------------------------}
|
||||||
|
procedure TCompilerOptions.LoadTheCompilerOptions;
|
||||||
begin
|
begin
|
||||||
{ Load the compiler options from the XML file }
|
{ Load the compiler options from the XML file }
|
||||||
|
|
||||||
{ Parsing }
|
{ Parsing }
|
||||||
Style := xmlcfg.GetValue('CompilerOptions/Parsing/Style/Value', 1);
|
Style := XMLConfigFile.GetValue('CompilerOptions/Parsing/Style/Value', 1);
|
||||||
|
|
||||||
D2Extensions := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/D2Extensions/Value', true);
|
D2Extensions := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/D2Extensions/Value', true);
|
||||||
CStyleOperators := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/CStyleOperator/Value', true);
|
CStyleOperators := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/CStyleOperator/Value', true);
|
||||||
AllowLabel := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/AllowLabel/Value', true);
|
AllowLabel := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/AllowLabel/Value', true);
|
||||||
CPPInline := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/CPPInline/Value', true);
|
CPPInline := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/CPPInline/Value', true);
|
||||||
CStyleMacros := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/CStyleMacros/Value', false);
|
CStyleMacros := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/CStyleMacros/Value', false);
|
||||||
TPCompatible := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/TPCompatible/Value', false);
|
TPCompatible := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/TPCompatible/Value', false);
|
||||||
InitConstructor := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/InitConstructor/Value', false);
|
InitConstructor := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/InitConstructor/Value', false);
|
||||||
StaticKeyword := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/StaticKeyword/Value', false);
|
StaticKeyword := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/StaticKeyword/Value', false);
|
||||||
DelphiCompat := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/DelphiCompat/Value', false);
|
DelphiCompat := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/DelphiCompat/Value', false);
|
||||||
UseAnsiStrings := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/UseAnsiStrings/Value', false);
|
UseAnsiStrings := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/UseAnsiStrings/Value', false);
|
||||||
GPCCompat := xmlcfg.GetValue('CompilerOptions/Parsing/SymantecChecking/GPCCompat/Value', false);
|
GPCCompat := XMLConfigFile.GetValue('CompilerOptions/Parsing/SymantecChecking/GPCCompat/Value', false);
|
||||||
|
|
||||||
{ CodeGeneration }
|
{ CodeGeneration }
|
||||||
UnitStyle := xmlcfg.GetValue('CompilerOptions/CodeGeneration/UnitStyle/Value', 1);
|
UnitStyle := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/UnitStyle/Value', 1);
|
||||||
IOChecks := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Checks/IOChecks/Value', false);
|
IOChecks := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Checks/IOChecks/Value', false);
|
||||||
RangeChecks := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Checks/RangeChecks/Value', false);
|
RangeChecks := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Checks/RangeChecks/Value', false);
|
||||||
OverflowChecks := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Checks/OverflowChecks/Value', false);
|
OverflowChecks := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Checks/OverflowChecks/Value', false);
|
||||||
StackChecks := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Checks/StackChecks/Value', false);
|
StackChecks := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Checks/StackChecks/Value', false);
|
||||||
HeapSize := xmlcfg.GetValue('CompilerOptions/CodeGeneration/HeapSize/Value', 8000000);
|
HeapSize := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/HeapSize/Value', 8000000);
|
||||||
|
|
||||||
Generate := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Generate/Value', 1);
|
Generate := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Generate/Value', 1);
|
||||||
TargetProcessor := xmlcfg.GetValue('CompilerOptions/CodeGeneration/TargetProcessor/Value', 1);
|
TargetProcessor := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/TargetProcessor/Value', 1);
|
||||||
VariablesInRegisters := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Optimizations/VariablesInRegisters/Value', false);
|
VariablesInRegisters := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Optimizations/VariablesInRegisters/Value', false);
|
||||||
UncertainOptimizations := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Optimizations/UncertainOptimizations/Value', false);
|
UncertainOptimizations := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Optimizations/UncertainOptimizations/Value', false);
|
||||||
OptimizationLevel := xmlcfg.GetValue('CompilerOptions/CodeGeneration/Optimizations/OptimizationLevel/Value', 1);
|
OptimizationLevel := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/Optimizations/OptimizationLevel/Value', 1);
|
||||||
|
|
||||||
{ Linking }
|
{ Linking }
|
||||||
GenerateDebugInfo := xmlcfg.GetValue('CompilerOptions/Linking/Debugging/GenerateDebugInfo/Value', false);
|
GenerateDebugInfo := XMLConfigFile.GetValue('CompilerOptions/Linking/Debugging/GenerateDebugInfo/Value', false);
|
||||||
GenerateDebugDBX := xmlcfg.GetValue('CompilerOptions/Linking/Debugging/GenerateDebugDBX/Value', false);
|
GenerateDebugDBX := XMLConfigFile.GetValue('CompilerOptions/Linking/Debugging/GenerateDebugDBX/Value', false);
|
||||||
UseHeaptrc := xmlcfg.GetValue('CompilerOptions/Linking/Debugging/UseHeaptrc/Value', false);
|
UseHeaptrc := XMLConfigFile.GetValue('CompilerOptions/Linking/Debugging/UseHeaptrc/Value', false);
|
||||||
StripSymbols := xmlcfg.GetValue('CompilerOptions/Linking/Debugging/StripSymbols/Value', false);
|
StripSymbols := XMLConfigFile.GetValue('CompilerOptions/Linking/Debugging/StripSymbols/Value', false);
|
||||||
LinkStyle := xmlcfg.GetValue('CompilerOptions/CodeGeneration/LinkStyle/Value', 1);
|
LinkStyle := XMLConfigFile.GetValue('CompilerOptions/CodeGeneration/LinkStyle/Value', 1);
|
||||||
PassLinkerOptions := xmlcfg.GetValue('CompilerOptions/Linking/Options/PassLinkerOptions/Value', false);
|
PassLinkerOptions := XMLConfigFile.GetValue('CompilerOptions/Linking/Options/PassLinkerOptions/Value', false);
|
||||||
LinkerOptions := xmlcfg.GetValue('CompilerOptions/Linking/Options/LinkerOptions/Value', '');
|
LinkerOptions := XMLConfigFile.GetValue('CompilerOptions/Linking/Options/LinkerOptions/Value', '');
|
||||||
|
|
||||||
{ Other }
|
{ Other }
|
||||||
ShowErrors := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowErrors/Value', false);
|
ShowErrors := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowErrors/Value', false);
|
||||||
ShowWarn := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowWarn/Value', true);
|
ShowWarn := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowWarn/Value', true);
|
||||||
ShowNotes := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowNotes/Value', true);
|
ShowNotes := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowNotes/Value', true);
|
||||||
ShowHints := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowHints/Value', true);
|
ShowHints := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowHints/Value', true);
|
||||||
ShowGenInfo := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowGenInfo/Value', true);
|
ShowGenInfo := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowGenInfo/Value', true);
|
||||||
ShowLineNum := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShoLineNum/Value', false);
|
ShowLineNum := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShoLineNum/Value', false);
|
||||||
ShowAll := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowAll/Value', false);
|
ShowAll := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowAll/Value', false);
|
||||||
ShowDebugInfo := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowDebugInfo/Value', false);
|
ShowDebugInfo := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowDebugInfo/Value', false);
|
||||||
ShowUsedFiles := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowUsedFiles/Value', false);
|
ShowUsedFiles := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowUsedFiles/Value', false);
|
||||||
ShowTriedFiles := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowTriedFiles/Value', false);
|
ShowTriedFiles := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowTriedFiles/Value', false);
|
||||||
ShowDefMacros := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowDefMacros/Value', false);
|
ShowDefMacros := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowDefMacros/Value', false);
|
||||||
ShowCompProc := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowCompProc/Value', false);
|
ShowCompProc := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowCompProc/Value', false);
|
||||||
ShowCond := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowCond/Value', false);
|
ShowCond := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowCond/Value', false);
|
||||||
ShowNothing := xmlcfg.GetValue('CompilerOptions/Other/Verbosity/ShowNothing/Value', false);
|
ShowNothing := XMLConfigFile.GetValue('CompilerOptions/Other/Verbosity/ShowNothing/Value', false);
|
||||||
WriteFPCLogo := xmlcfg.GetValue('CompilerOptions/Other/WriteFPCLogo/Value', true);
|
WriteFPCLogo := XMLConfigFile.GetValue('CompilerOptions/Other/WriteFPCLogo/Value', true);
|
||||||
UseConfigFile := xmlcfg.GetValue('CompilerOptions/Other/ConfigFile/UseConfigFile/Value', false);
|
UseConfigFile := XMLConfigFile.GetValue('CompilerOptions/Other/ConfigFile/UseConfigFile/Value', false);
|
||||||
AdditionalConfigFile := xmlcfg.GetValue('CompilerOptions/Other/ConfigFile/AdditionalConfigFile/Value', false);
|
AdditionalConfigFile := XMLConfigFile.GetValue('CompilerOptions/Other/ConfigFile/AdditionalConfigFile/Value', false);
|
||||||
ConfigFilePath := xmlcfg.GetValue('CompilerOptions/Other/ConfigFile/ConfigFilePath/Value', './ppc386.cfg');
|
ConfigFilePath := XMLConfigFile.GetValue('CompilerOptions/Other/ConfigFile/ConfigFilePath/Value', './ppc386.cfg');
|
||||||
|
|
||||||
{ SearchPaths }
|
{ SearchPaths }
|
||||||
IncludeFiles := xmlcfg.GetValue('CompilerOptions/SearchPaths/IncludeFiles/Value', '');
|
IncludeFiles := XMLConfigFile.GetValue('CompilerOptions/SearchPaths/IncludeFiles/Value', '');
|
||||||
Libraries := xmlcfg.GetValue('CompilerOptions/SearchPaths/Libraries/Value', '');
|
Libraries := XMLConfigFile.GetValue('CompilerOptions/SearchPaths/Libraries/Value', '');
|
||||||
OtherUnitFiles := xmlcfg.GetValue('CompilerOptions/SearchPaths/OtherUnitFiles/Value', '');
|
OtherUnitFiles := XMLConfigFile.GetValue('CompilerOptions/SearchPaths/OtherUnitFiles/Value', '');
|
||||||
CompilerPath := xmlcfg.GetValue('CompilerOptions/SearchPaths/CompilerPath/Value', '/opt/fpc/ppc386');
|
CompilerPath := XMLConfigFile.GetValue('CompilerOptions/SearchPaths/CompilerPath/Value', '/opt/fpc/ppc386');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
{ TfrmCompilerOptions SaveCompilerOptions }
|
{ TfrmCompilerOptions SaveCompilerOptions }
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
procedure TCompilerOptions.SaveCompilerOptions;
|
procedure TCompilerOptions.SaveCompilerOptions(UseExistingFile: Boolean);
|
||||||
|
var
|
||||||
|
confPath: String;
|
||||||
|
begin
|
||||||
|
if ((UseExistingFile) and (XMLConfigFile <> nil)) then
|
||||||
|
begin
|
||||||
|
SaveTheCompilerOptions;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
confPath := GetXMLConfigPath;
|
||||||
|
XMLConfigFile := TXMLConfig.Create(SetDirSeparators(confPath));
|
||||||
|
SaveTheCompilerOptions;
|
||||||
|
XMLConfigFile.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------}
|
||||||
|
{ TfrmCompilerOptions SaveTheCompilerOptions }
|
||||||
|
{------------------------------------------------------------------------------}
|
||||||
|
procedure TCompilerOptions.SaveTheCompilerOptions;
|
||||||
begin
|
begin
|
||||||
{ Save the compiler options to the XML file }
|
{ Save the compiler options to the XML file }
|
||||||
|
|
||||||
{ Parsing }
|
{ Parsing }
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/Style/Value', Style);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/Style/Value', Style);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/D2Extensions/Value', D2Extensions);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/D2Extensions/Value', D2Extensions);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/CStyleOperator/Value', CStyleOperators);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/CStyleOperator/Value', CStyleOperators);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/AllowLabel/Value', AllowLabel);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/AllowLabel/Value', AllowLabel);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/CPPInline/Value', CPPInline);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/CPPInline/Value', CPPInline);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/CStyleMacros/Value', CStyleMacros);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/CStyleMacros/Value', CStyleMacros);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/TPCompatible/Value', TPCompatible);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/TPCompatible/Value', TPCompatible);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/InitConstructor/Value', InitConstructor);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/InitConstructor/Value', InitConstructor);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/StaticKeyword/Value', StaticKeyword);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/StaticKeyword/Value', StaticKeyword);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/DelphiCompat/Value', DelphiCompat);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/DelphiCompat/Value', DelphiCompat);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/UseAnsiStrings/Value', UseAnsiStrings);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/UseAnsiStrings/Value', UseAnsiStrings);
|
||||||
xmlcfg.SetValue('CompilerOptions/Parsing/SymantecChecking/GPCCompat/Value', GPCCompat);
|
XMLConfigFile.SetValue('CompilerOptions/Parsing/SymantecChecking/GPCCompat/Value', GPCCompat);
|
||||||
|
|
||||||
{ CodeGeneration }
|
{ CodeGeneration }
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/UnitStyle/Value', UnitStyle);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/UnitStyle/Value', UnitStyle);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Checks/IOChecks/Value', IOChecks);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Checks/IOChecks/Value', IOChecks);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Checks/RangeChecks/Value', RangeChecks);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Checks/RangeChecks/Value', RangeChecks);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Checks/OverflowChecks/Value', OverflowChecks);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Checks/OverflowChecks/Value', OverflowChecks);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Checks/StackChecks/Value', StackChecks);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Checks/StackChecks/Value', StackChecks);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/HeapSize/Value', HeapSize);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/HeapSize/Value', HeapSize);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Generate/Value', Generate);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Generate/Value', Generate);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/TargetProcessor/Value', TargetProcessor);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/TargetProcessor/Value', TargetProcessor);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Optimizations/VariablesInRegisters/Value', VariablesInRegisters);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Optimizations/VariablesInRegisters/Value', VariablesInRegisters);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Optimizations/UncertainOptimizations/Value', UncertainOptimizations);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Optimizations/UncertainOptimizations/Value', UncertainOptimizations);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/Optimizations/OptimizationLevel/Value', OptimizationLevel);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/Optimizations/OptimizationLevel/Value', OptimizationLevel);
|
||||||
|
|
||||||
{ Linking }
|
{ Linking }
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Debugging/GenerateDebugInfo/Value', GenerateDebugInfo);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Debugging/GenerateDebugInfo/Value', GenerateDebugInfo);
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Debugging/GenerateDebugDBX/Value', GenerateDebugDBX);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Debugging/GenerateDebugDBX/Value', GenerateDebugDBX);
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Debugging/UseHeaptrc/Value', UseHeaptrc);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Debugging/UseHeaptrc/Value', UseHeaptrc);
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Debugging/StripSymbols/Value', StripSymbols);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Debugging/StripSymbols/Value', StripSymbols);
|
||||||
xmlcfg.SetValue('CompilerOptions/CodeGeneration/LinkStyle/Value', LinkStyle);
|
XMLConfigFile.SetValue('CompilerOptions/CodeGeneration/LinkStyle/Value', LinkStyle);
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Options/PassLinkerOptions/Value', PassLinkerOptions);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Options/PassLinkerOptions/Value', PassLinkerOptions);
|
||||||
xmlcfg.SetValue('CompilerOptions/Linking/Options/LinkerOptions/Value', LinkerOptions);
|
XMLConfigFile.SetValue('CompilerOptions/Linking/Options/LinkerOptions/Value', LinkerOptions);
|
||||||
|
|
||||||
{ Other }
|
{ Other }
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowErrors/Value', ShowErrors);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowErrors/Value', ShowErrors);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowWarn/Value', ShowWarn);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowWarn/Value', ShowWarn);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowNotes/Value', ShowNotes);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowNotes/Value', ShowNotes);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowHints/Value', ShowHints);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowHints/Value', ShowHints);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowGenInfo/Value', ShowGenInfo);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowGenInfo/Value', ShowGenInfo);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShoLineNum/Value', ShowLineNum);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShoLineNum/Value', ShowLineNum);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowAll/Value', ShowAll);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowAll/Value', ShowAll);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowDebugInfo/Value', ShowDebugInfo);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowDebugInfo/Value', ShowDebugInfo);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowUsedFiles/Value', ShowUsedFiles);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowUsedFiles/Value', ShowUsedFiles);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowTriedFiles/Value', ShowTriedFiles);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowTriedFiles/Value', ShowTriedFiles);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowDefMacros/Value', ShowDefMacros);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowDefMacros/Value', ShowDefMacros);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowCompProc/Value', ShowCompProc);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowCompProc/Value', ShowCompProc);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowCond/Value', ShowCond);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowCond/Value', ShowCond);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/Verbosity/ShowNothing/Value', ShowNothing);
|
XMLConfigFile.SetValue('CompilerOptions/Other/Verbosity/ShowNothing/Value', ShowNothing);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/WriteFPCLogo/Value', WriteFPCLogo);
|
XMLConfigFile.SetValue('CompilerOptions/Other/WriteFPCLogo/Value', WriteFPCLogo);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/ConfigFile/UseConfigFile/Value', UseConfigFile);
|
XMLConfigFile.SetValue('CompilerOptions/Other/ConfigFile/UseConfigFile/Value', UseConfigFile);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/ConfigFile/AdditionalConfigFile/Value', AdditionalConfigFile);
|
XMLConfigFile.SetValue('CompilerOptions/Other/ConfigFile/AdditionalConfigFile/Value', AdditionalConfigFile);
|
||||||
xmlcfg.SetValue('CompilerOptions/Other/ConfigFile/ConfigFilePath/Value', ConfigFilePath);
|
XMLConfigFile.SetValue('CompilerOptions/Other/ConfigFile/ConfigFilePath/Value', ConfigFilePath);
|
||||||
|
|
||||||
{ SearchPaths }
|
{ SearchPaths }
|
||||||
xmlcfg.SetValue('CompilerOptions/SearchPaths/IncludeFiles/Value', IncludeFiles);
|
XMLConfigFile.SetValue('CompilerOptions/SearchPaths/IncludeFiles/Value', IncludeFiles);
|
||||||
xmlcfg.SetValue('CompilerOptions/SearchPaths/Libraries/Value', Libraries);
|
XMLConfigFile.SetValue('CompilerOptions/SearchPaths/Libraries/Value', Libraries);
|
||||||
xmlcfg.SetValue('CompilerOptions/SearchPaths/OtherUnitFiles/Value', OtherUnitFiles);
|
XMLConfigFile.SetValue('CompilerOptions/SearchPaths/OtherUnitFiles/Value', OtherUnitFiles);
|
||||||
xmlcfg.SetValue('CompilerOptions/SearchPaths/CompilerPath/Value', CompilerPath);
|
XMLConfigFile.SetValue('CompilerOptions/SearchPaths/CompilerPath/Value', CompilerPath);
|
||||||
|
|
||||||
xmlcfg.Flush;
|
XMLConfigFile.Flush;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
@ -923,6 +951,46 @@ begin
|
|||||||
Result := tempsw;
|
Result := tempsw;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
TCompilerOptions GetXMLConfigPath
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TCompilerOptions.GetXMLConfigPath: String;
|
||||||
|
var
|
||||||
|
confPath: String;
|
||||||
|
fn: String;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
|
||||||
|
// Setup the filename to write to
|
||||||
|
if (ProjectFile <> '') then
|
||||||
|
fn := ProjectFile
|
||||||
|
else
|
||||||
|
fn := CONFIG_FILENAME;
|
||||||
|
|
||||||
|
confPath := GetPrimaryConfigPath + '/' + fn;
|
||||||
|
|
||||||
|
// See if config path exists and if not create it
|
||||||
|
if (not DirectoryExists(GetPrimaryConfigPath)) then
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
// Create the directory
|
||||||
|
CreatePrimaryConfigPath;
|
||||||
|
|
||||||
|
{ TODO:
|
||||||
|
Try to read the configuration from the secondary path
|
||||||
|
If successful, then read it in and write it to the primary path
|
||||||
|
If unsuccessful, then just use defaults
|
||||||
|
}
|
||||||
|
except
|
||||||
|
Assert(False, 'Trace:There was a problem creating the config directory. Using defaults.');
|
||||||
|
Assert(False, 'Trace:File = ' + confPath);
|
||||||
|
confPath := './' + fn;
|
||||||
|
Result := confPath;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Result := confPath;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
@ -936,7 +1004,8 @@ begin
|
|||||||
Width := 379;
|
Width := 379;
|
||||||
Caption := 'Compiler Options';
|
Caption := 'Compiler Options';
|
||||||
OnShow := @CreateForm;
|
OnShow := @CreateForm;
|
||||||
CompilerOpts.LoadCompilerOptions;
|
MainIDE.Project.CompilerOptions.LoadCompilerOptions(true);
|
||||||
|
//CompilerOpts.LoadCompilerOptions(true);
|
||||||
|
|
||||||
nbMain := TNotebook.Create(Self);
|
nbMain := TNotebook.Create(Self);
|
||||||
nbMain.Parent := Self;
|
nbMain.Parent := Self;
|
||||||
@ -1010,7 +1079,8 @@ begin
|
|||||||
|
|
||||||
{ Save the options and hide the dialog }
|
{ Save the options and hide the dialog }
|
||||||
PutCompilerOptions;
|
PutCompilerOptions;
|
||||||
CompilerOpts.SaveCompilerOptions;
|
MainIDE.Project.CompilerOptions.SaveCompilerOptions(true);
|
||||||
|
//CompilerOpts.SaveCompilerOptions(true);
|
||||||
Hide;
|
Hide;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1034,7 +1104,8 @@ begin
|
|||||||
Assert(False, 'Trace:Apply compiler options changes');
|
Assert(False, 'Trace:Apply compiler options changes');
|
||||||
|
|
||||||
PutCompilerOptions;
|
PutCompilerOptions;
|
||||||
CompilerOpts.SaveCompilerOptions;
|
MainIDE.Project.CompilerOptions.SaveCompilerOptions(true);
|
||||||
|
//CompilerOpts.SaveCompilerOptions(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
|
Loading…
Reference in New Issue
Block a user