mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-05 10:55:56 +02:00
IDE: TBuildManager.OnGetBuildMacroValues: split in smaller sub procs
git-svn-id: trunk@41330 -
This commit is contained in:
parent
0c692f3d56
commit
514fa100d5
@ -2153,45 +2153,11 @@ function TBuildManager.OnGetBuildMacroValues(Options: TBaseCompilerOptions;
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure SetProjectMacroValues(Vars: TCTCfgScriptVariables);
|
procedure SetCmdLineOverrides(Values: TCTCfgScriptVariables);
|
||||||
var
|
var
|
||||||
Values: TCTCfgScriptVariables;
|
|
||||||
MainMacroValues: TProjectBuildMacros;
|
|
||||||
i: Integer;
|
|
||||||
aName: String;
|
|
||||||
aValue: String;
|
|
||||||
Overrides: TStrings;
|
Overrides: TStrings;
|
||||||
s: String;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
// return the values of the active project
|
|
||||||
if (Project1<>nil) and (Project1.MacroValues<>nil) then begin
|
|
||||||
MainMacroValues:=Project1.MacroValues;
|
|
||||||
Values:=MainMacroValues.CfgVars;
|
|
||||||
if MainMacroValues.CfgVarsBuildMacroStamp=BuildMacroChangeStamp then
|
|
||||||
exit;
|
|
||||||
// rebuild main macros
|
|
||||||
Values.Clear;
|
|
||||||
for i:=0 to MainMacroValues.Count-1 do begin
|
|
||||||
aName:=MainMacroValues.Names[i];
|
|
||||||
aValue:=MainMacroValues.ValueFromIndex(i);
|
|
||||||
//debugln(['TBuildManager.OnGetBuildMacroValues project override: ',aName,'="',aValue,'"']);
|
|
||||||
Values.Define(PChar(aName),aValue);
|
|
||||||
end;
|
|
||||||
{$IFDEF VerboseBuildMacros}
|
|
||||||
Values.WriteDebugReport('OnGetBuildMacroValues project overrides');
|
|
||||||
{$ENDIF}
|
|
||||||
MainMacroValues.CfgVarsBuildMacroStamp:=BuildMacroChangeStamp;
|
|
||||||
end else if DefaultCfgVars<>nil then begin
|
|
||||||
// there is no project => use defaults
|
|
||||||
Values:=DefaultCfgVars;
|
|
||||||
if DefaultCfgVarsBuildMacroStamp=BuildMacroChangeStamp then
|
|
||||||
exit;
|
|
||||||
// rebuild main macros
|
|
||||||
Values.Clear;
|
|
||||||
DefaultCfgVarsBuildMacroStamp:=BuildMacroChangeStamp;
|
|
||||||
end else
|
|
||||||
exit;
|
|
||||||
|
|
||||||
// set overrides (e.g. command line parameters)
|
// set overrides (e.g. command line parameters)
|
||||||
Overrides:=GetBuildMacroOverrides;
|
Overrides:=GetBuildMacroOverrides;
|
||||||
try
|
try
|
||||||
@ -2203,7 +2169,12 @@ function TBuildManager.OnGetBuildMacroValues(Options: TBaseCompilerOptions;
|
|||||||
finally
|
finally
|
||||||
Overrides.Free;
|
Overrides.Free;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure SetDefaults(Values: TCTCfgScriptVariables);
|
||||||
|
var
|
||||||
|
s: String;
|
||||||
|
begin
|
||||||
// add the defaults
|
// add the defaults
|
||||||
// Note: see also ide/frames/compiler_buildmacro_options.pas procedure TCompOptBuildMacrosFrame.BuildMacrosTreeViewEdited
|
// Note: see also ide/frames/compiler_buildmacro_options.pas procedure TCompOptBuildMacrosFrame.BuildMacrosTreeViewEdited
|
||||||
// TargetOS
|
// TargetOS
|
||||||
@ -2234,6 +2205,53 @@ function TBuildManager.OnGetBuildMacroValues(Options: TBaseCompilerOptions;
|
|||||||
s:=GetDefaultTargetCPU;
|
s:=GetDefaultTargetCPU;
|
||||||
Values.Values['TargetCPU']:=s;
|
Values.Values['TargetCPU']:=s;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GetProjectMacroValues: TCTCfgScriptVariables;
|
||||||
|
var
|
||||||
|
MainMacroValues: TProjectBuildMacros;
|
||||||
|
i: Integer;
|
||||||
|
aName: String;
|
||||||
|
aValue: String;
|
||||||
|
begin
|
||||||
|
// return the values of the active project
|
||||||
|
if (Project1<>nil) and (Project1.MacroValues<>nil) then begin
|
||||||
|
MainMacroValues:=Project1.MacroValues;
|
||||||
|
Result:=MainMacroValues.CfgVars;
|
||||||
|
if MainMacroValues.CfgVarsBuildMacroStamp=BuildMacroChangeStamp then
|
||||||
|
exit;
|
||||||
|
// rebuild main macros
|
||||||
|
Result.Clear;
|
||||||
|
for i:=0 to MainMacroValues.Count-1 do begin
|
||||||
|
aName:=MainMacroValues.Names[i];
|
||||||
|
aValue:=MainMacroValues.ValueFromIndex(i);
|
||||||
|
//debugln(['TBuildManager.OnGetBuildMacroValues project override: ',aName,'="',aValue,'"']);
|
||||||
|
Result.Define(PChar(aName),aValue);
|
||||||
|
end;
|
||||||
|
{$IFDEF VerboseBuildMacros}
|
||||||
|
Values.WriteDebugReport('OnGetBuildMacroValues project overrides');
|
||||||
|
{$ENDIF}
|
||||||
|
MainMacroValues.CfgVarsBuildMacroStamp:=BuildMacroChangeStamp;
|
||||||
|
end else if DefaultCfgVars<>nil then begin
|
||||||
|
// there is no project => use defaults
|
||||||
|
Result:=DefaultCfgVars;
|
||||||
|
if DefaultCfgVarsBuildMacroStamp=BuildMacroChangeStamp then
|
||||||
|
exit;
|
||||||
|
// rebuild main macros
|
||||||
|
Result.Clear;
|
||||||
|
DefaultCfgVarsBuildMacroStamp:=BuildMacroChangeStamp;
|
||||||
|
end else
|
||||||
|
exit(nil);
|
||||||
|
SetCmdLineOverrides(Result);
|
||||||
|
SetDefaults(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure SetProjectMacroValues(Vars: TCTCfgScriptVariables);
|
||||||
|
var
|
||||||
|
Values: TCTCfgScriptVariables;
|
||||||
|
begin
|
||||||
|
Values:=GetProjectMacroValues;
|
||||||
|
if Values=nil then exit;
|
||||||
|
|
||||||
{$IFDEF VerboseBuildMacros}
|
{$IFDEF VerboseBuildMacros}
|
||||||
Values.WriteDebugReport('OnGetBuildMacroValues project values');
|
Values.WriteDebugReport('OnGetBuildMacroValues project values');
|
||||||
|
Loading…
Reference in New Issue
Block a user