IDE+lazbuild: fixed applying ide macros for the right build mode

git-svn-id: trunk@41579 -
This commit is contained in:
mattias 2013-06-07 12:12:02 +00:00
parent f68f6c159f
commit e043bb91b4
2 changed files with 12 additions and 10 deletions

View File

@ -2212,14 +2212,15 @@ function TBuildManager.OnGetBuildMacroValues(Options: TBaseCompilerOptions;
procedure SetProjectMacroValues(Vars: TCTCfgScriptVariables);
var
Target: String;
CurMode: String;
begin
Target:=GetModeMatrixTarget(Options);
if EnvironmentOptions<>nil then
ApplyBuildMatrixMacros(EnvironmentOptions.BuildMatrixOptions,Target,Vars);
if (Project1<>nil) and (Project1.BuildModes<>nil) then
begin
ApplyBuildMatrixMacros(Project1.BuildModes.SharedMatrixOptions,Target,Vars);
ApplyBuildMatrixMacros(Project1.BuildModes.SessionMatrixOptions,Target,Vars);
if Project1<>nil then begin
Target:=GetModeMatrixTarget(Options);
CurMode:=Project1.ActiveBuildMode.Identifier;
if EnvironmentOptions<>nil then
ApplyBuildMatrixMacros(EnvironmentOptions.BuildMatrixOptions,Target,CurMode,Vars);
ApplyBuildMatrixMacros(Project1.BuildModes.SharedMatrixOptions,Target,CurMode,Vars);
ApplyBuildMatrixMacros(Project1.BuildModes.SessionMatrixOptions,Target,CurMode,Vars);
end;
SetCmdLineOverrides(Vars);
{$IFDEF VerboseBuildMacros}

View File

@ -162,7 +162,7 @@ function CreateBuildMatrixOptionGUID: string;
function SplitMatrixMacro(MacroAssignment: string;
out MacroName, MacroValue: string; ExceptionOnError: boolean): boolean;
procedure ApplyBuildMatrixMacros(Options: TBuildMatrixOptions; Target: string;
procedure ApplyBuildMatrixMacros(Options: TBuildMatrixOptions; Target, ActiveMode: string;
CfgVars: TCTCfgScriptVariables);
implementation
@ -385,8 +385,8 @@ begin
Result:=true;
end;
procedure ApplyBuildMatrixMacros(Options: TBuildMatrixOptions; Target: string;
CfgVars: TCTCfgScriptVariables);
procedure ApplyBuildMatrixMacros(Options: TBuildMatrixOptions;
Target, ActiveMode: string; CfgVars: TCTCfgScriptVariables);
var
i: Integer;
Option: TBuildMatrixOption;
@ -395,6 +395,7 @@ begin
for i:=0 to Options.Count-1 do begin
Option:=Options[i];
if Option.Typ<>bmotIDEMacro then continue;
if not Option.FitsMode(ActiveMode) then continue;
if not Option.FitsTarget(Target) then continue;
//debugln(['ApplyBuildMatrixMacros Option.MacroName="',Option.MacroName,'" Value="',Option.Value,'"']);
CfgVars.Values[Option.MacroName]:=Option.Value;