mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-17 00:21:00 +01:00
IDE: define template use default flag
git-svn-id: trunk@26286 -
This commit is contained in:
parent
bef96de901
commit
d0d753564d
@ -317,6 +317,8 @@ type
|
|||||||
procedure Unbind;
|
procedure Unbind;
|
||||||
procedure UnmarkNodes(WithSiblings, WithChilds: boolean);
|
procedure UnmarkNodes(WithSiblings, WithChilds: boolean);
|
||||||
procedure WriteDebugReport(OnlyMarked: boolean);
|
procedure WriteDebugReport(OnlyMarked: boolean);
|
||||||
|
function GetNext: TDefineTemplate;
|
||||||
|
function GetNextSkipChildren: TDefineTemplate;
|
||||||
public
|
public
|
||||||
property ChildCount: integer read FChildCount;
|
property ChildCount: integer read FChildCount;
|
||||||
property FirstChild: TDefineTemplate read FFirstChild;
|
property FirstChild: TDefineTemplate read FFirstChild;
|
||||||
@ -2755,6 +2757,25 @@ begin
|
|||||||
WriteNode(Self,' ');
|
WriteNode(Self,' ');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TDefineTemplate.GetNext: TDefineTemplate;
|
||||||
|
begin
|
||||||
|
if FirstChild<>nil then
|
||||||
|
exit(FirstChild);
|
||||||
|
Result:=GetNextSkipChildren;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TDefineTemplate.GetNextSkipChildren: TDefineTemplate;
|
||||||
|
begin
|
||||||
|
Result:=Self;
|
||||||
|
while (Result<>nil) do begin
|
||||||
|
if Result.Next<>nil then begin
|
||||||
|
Result:=Result.Next;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
Result:=Result.Parent;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TDefineTemplate.HasDefines(OnlyMarked, WithSiblings: boolean): boolean;
|
function TDefineTemplate.HasDefines(OnlyMarked, WithSiblings: boolean): boolean;
|
||||||
var
|
var
|
||||||
CurTempl: TDefineTemplate;
|
CurTempl: TDefineTemplate;
|
||||||
|
|||||||
@ -43,9 +43,9 @@ uses
|
|||||||
LazIDEIntf,
|
LazIDEIntf,
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, DialogProcs, IDEProcs, CodeToolsOptions, InputHistory,
|
LazarusIDEStrConsts, DialogProcs, IDEProcs, CodeToolsOptions, InputHistory,
|
||||||
ProjectResources, MiscOptions, LazConf, EnvironmentOpts, TransferMacros,
|
EditDefineTree, ProjectResources, MiscOptions, LazConf, EnvironmentOpts,
|
||||||
CompilerOptions, OutputFilter, Compiler, Project, BaseBuildManager,
|
TransferMacros, CompilerOptions, OutputFilter, Compiler, Project,
|
||||||
ApplicationBundle;
|
BaseBuildManager, ApplicationBundle;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -580,7 +580,7 @@ begin
|
|||||||
UnitLinksValid:=false;
|
UnitLinksValid:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FPCSrcTemplate:=CodeToolBoss.DefinePool.CreateFPCSrcTemplate(
|
FPCSrcTemplate:=CreateFPCSourceTemplate(
|
||||||
CodeToolBoss.GlobalValues.Variables[ExternalMacroStart+'FPCSrcDir'],
|
CodeToolBoss.GlobalValues.Variables[ExternalMacroStart+'FPCSrcDir'],
|
||||||
CompilerUnitSearchPath,
|
CompilerUnitSearchPath,
|
||||||
CodeToolBoss.GetCompiledSrcExtForDirectory(''),
|
CodeToolBoss.GetCompiledSrcExtForDirectory(''),
|
||||||
|
|||||||
@ -50,7 +50,8 @@ uses
|
|||||||
CodeToolManager, DefineTemplates,
|
CodeToolManager, DefineTemplates,
|
||||||
IDEWindowIntf, IDEImagesIntf,
|
IDEWindowIntf, IDEImagesIntf,
|
||||||
LazarusIDEStrConsts, CodeToolsOptions, CodeToolsDefPreview, TransferMacros,
|
LazarusIDEStrConsts, CodeToolsOptions, CodeToolsDefPreview, TransferMacros,
|
||||||
EditorOptions, InputFileDialog, IDEOptionDefs, LazConf, IDEProcs;
|
EditorOptions, InputFileDialog, IDEOptionDefs, LazConf, IDEProcs,
|
||||||
|
EditDefineTree;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -626,7 +627,7 @@ begin
|
|||||||
DebugLn(' FPCSrcDir="',FPCSrcDir,'"');
|
DebugLn(' FPCSrcDir="',FPCSrcDir,'"');
|
||||||
if (FPCSrcDir<>'') and (FPCSrcDir<>DefaultFPCSrcDir)
|
if (FPCSrcDir<>'') and (FPCSrcDir<>DefaultFPCSrcDir)
|
||||||
and (UnitSearchPath<>'') then
|
and (UnitSearchPath<>'') then
|
||||||
FPCSrcTemplate:=Boss.DefinePool.CreateFPCSrcTemplate(FPCSrcDir,
|
FPCSrcTemplate:=CreateFPCSourceTemplate(FPCSrcDir,
|
||||||
UnitSearchPath, 'ppu', TargetOS, TargetProcessor, false,
|
UnitSearchPath, 'ppu', TargetOS, TargetProcessor, false,
|
||||||
UnitLinkList, CodeToolsOpts)
|
UnitLinkList, CodeToolsOpts)
|
||||||
else
|
else
|
||||||
@ -754,7 +755,7 @@ begin
|
|||||||
FPCSrcDir:=FileNames[0];
|
FPCSrcDir:=FileNames[0];
|
||||||
if Macros<>nil then Macros.SubstituteStr(FPCSrcDir);
|
if Macros<>nil then Macros.SubstituteStr(FPCSrcDir);
|
||||||
DebugLn(' FPCSrcDir="',FPCSrcDir,'"');
|
DebugLn(' FPCSrcDir="',FPCSrcDir,'"');
|
||||||
FPCSrcTemplate:=Boss.DefinePool.CreateFPCSrcTemplate(FPCSrcDir,
|
FPCSrcTemplate:=CreateFPCSourceTemplate(FPCSrcDir,
|
||||||
UnitSearchPath, 'ppu', TargetOS, TargetProcessor, false,
|
UnitSearchPath, 'ppu', TargetOS, TargetProcessor, false,
|
||||||
UnitLinks, CodeToolsOpts);
|
UnitLinks, CodeToolsOpts);
|
||||||
if FPCSrcTemplate=nil then begin
|
if FPCSrcTemplate=nil then begin
|
||||||
@ -798,7 +799,7 @@ begin
|
|||||||
|
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
if ShowModal=mrCancel then exit;
|
if ShowModal=mrCancel then exit;
|
||||||
LazTemplate:=Boss.DefinePool.CreateLazarusSrcTemplate(FileNames[0],
|
LazTemplate:=CreateLazarusSourceTemplate(FileNames[0],
|
||||||
'$('+ExternalMacroStart+'LCLWidgetType)','',
|
'$('+ExternalMacroStart+'LCLWidgetType)','',
|
||||||
CodeToolsOpts);
|
CodeToolsOpts);
|
||||||
if LazTemplate=nil then exit;
|
if LazTemplate=nil then exit;
|
||||||
|
|||||||
@ -45,16 +45,18 @@ function FindRootTemplate(AName: string): TDefineTemplate;
|
|||||||
procedure SetAdditionalGlobalSrcPathToCodeToolBoss(const SrcPath: string);
|
procedure SetAdditionalGlobalSrcPathToCodeToolBoss(const SrcPath: string);
|
||||||
|
|
||||||
// global defaults
|
// global defaults
|
||||||
function FindNotUsedDirectoryTemplate: TDefineTemplate;
|
function FindUseDefaultsFlagTemplate: TDefineTemplate;
|
||||||
function CreateNotUsedDirectoryTemplate: TDefineTemplate;
|
function CreateUseDefaultsFlagTemplate: TDefineTemplate;
|
||||||
function FindFallBackTemplate: TDefineTemplate;
|
procedure DisableDefaultsInDirectories(DefTempl: TDefineTemplate);
|
||||||
function CreateFallBackTemplate: TDefineTemplate;
|
|
||||||
|
|
||||||
// FPC sources
|
// FPC sources
|
||||||
function CreateFPCSourceTemplate(const FPCSrcDir, UnitSearchPath, PPUExt,
|
function CreateFPCSourceTemplate(const FPCSrcDir, UnitSearchPath, PPUExt,
|
||||||
DefaultTargetOS, DefaultProcessorName: string;
|
DefaultTargetOS, DefaultProcessorName: string;
|
||||||
UnitLinkListValid: boolean; var UnitLinkList: string;
|
UnitLinkListValid: boolean; var UnitLinkList: string;
|
||||||
Owner: TObject): TDefineTemplate;
|
Owner: TObject): TDefineTemplate;
|
||||||
|
function CreateLazarusSourceTemplate(
|
||||||
|
const LazarusSrcDir, WidgetType, ExtraOptions: string;
|
||||||
|
Owner: TObject): TDefineTemplate;
|
||||||
|
|
||||||
// projects
|
// projects
|
||||||
function FindProjectsTemplate: TDefineTemplate;
|
function FindProjectsTemplate: TDefineTemplate;
|
||||||
@ -79,8 +81,9 @@ function RemoveAutoGeneratedDefine(ParentTemplate: TDefineTemplate;
|
|||||||
|
|
||||||
|
|
||||||
const
|
const
|
||||||
NotUsedDirectoryFlagTemplName = 'DirectoryNotUsed';
|
UseDefaultsFlagTemplName = 'Use defaults';
|
||||||
FallBackTemplName = 'FallBack';
|
UseDefaultsFlagName = ExternalMacroStart+'UseDefaults';
|
||||||
|
NotUseDefaultsFlagTemplName = 'Do not use defaults';
|
||||||
|
|
||||||
ProjectDefTemplName = 'Current Project';
|
ProjectDefTemplName = 'Current Project';
|
||||||
ProjectDirDefTemplName = 'Current Project Directory';
|
ProjectDirDefTemplName = 'Current Project Directory';
|
||||||
@ -128,7 +131,15 @@ begin
|
|||||||
UnitSearchPath, PPUExt,
|
UnitSearchPath, PPUExt,
|
||||||
DefaultTargetOS, DefaultProcessorName,
|
DefaultTargetOS, DefaultProcessorName,
|
||||||
UnitLinkListValid, UnitLinkList, Owner);
|
UnitLinkListValid, UnitLinkList, Owner);
|
||||||
|
DisableDefaultsInDirectories(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CreateLazarusSourceTemplate(const LazarusSrcDir, WidgetType,
|
||||||
|
ExtraOptions: string; Owner: TObject): TDefineTemplate;
|
||||||
|
begin
|
||||||
|
Result:=CodeToolBoss.DefinePool.CreateLazarusSrcTemplate(LazarusSrcDir,
|
||||||
|
WidgetType, ExtraOptions, Owner);
|
||||||
|
DisableDefaultsInDirectories(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FindProjectsTemplate: TDefineTemplate;
|
function FindProjectsTemplate: TDefineTemplate;
|
||||||
@ -150,14 +161,15 @@ end;
|
|||||||
function CreateProjectsTemplate: TDefineTemplate;
|
function CreateProjectsTemplate: TDefineTemplate;
|
||||||
begin
|
begin
|
||||||
Result:=FindProjectsTemplate;
|
Result:=FindProjectsTemplate;
|
||||||
if Result<>nil then exit;
|
if Result<>nil then begin
|
||||||
|
CodeToolBoss.DefineTree.MoveToLast(Result);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
Result:=TDefineTemplate.Create(ProjectsDefTemplName, lisEdtDefsAllProjects,
|
Result:=TDefineTemplate.Create(ProjectsDefTemplName, lisEdtDefsAllProjects,
|
||||||
'', '', da_Block);
|
'', '', da_Block);
|
||||||
Result.Flags:=[dtfAutoGenerated];
|
Result.Flags:=[dtfAutoGenerated];
|
||||||
// insert behind all
|
// insert behind all
|
||||||
CodeToolBoss.DefineTree.ReplaceRootSameName(Result);
|
CodeToolBoss.DefineTree.ReplaceRootSameName(Result);
|
||||||
// make sure the fallback comes last
|
|
||||||
CreateFallBackTemplate;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function CreateProjectTemplateWithID(const ProjectID: string): TDefineTemplate;
|
function CreateProjectTemplateWithID(const ProjectID: string): TDefineTemplate;
|
||||||
@ -181,8 +193,8 @@ begin
|
|||||||
Result.Flags:=[dtfAutoGenerated];
|
Result.Flags:=[dtfAutoGenerated];
|
||||||
// insert behind all
|
// insert behind all
|
||||||
CodeToolBoss.DefineTree.ReplaceRootSameName(Result);
|
CodeToolBoss.DefineTree.ReplaceRootSameName(Result);
|
||||||
// make sure the fallback comes last
|
// move projects behind
|
||||||
CreateFallBackTemplate;
|
CreateProjectsTemplate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function CreatePackageTemplateWithID(const PkgID: string): TDefineTemplate;
|
function CreatePackageTemplateWithID(const PkgID: string): TDefineTemplate;
|
||||||
@ -430,43 +442,35 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FindNotUsedDirectoryTemplate: TDefineTemplate;
|
function FindUseDefaultsFlagTemplate: TDefineTemplate;
|
||||||
begin
|
begin
|
||||||
Result:=FindRootTemplate(NotUsedDirectoryFlagTemplName);
|
Result:=FindRootTemplate(UseDefaultsFlagTemplName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function CreateNotUsedDirectoryTemplate: TDefineTemplate;
|
function CreateUseDefaultsFlagTemplate: TDefineTemplate;
|
||||||
begin
|
begin
|
||||||
Result:=FindNotUsedDirectoryTemplate;
|
Result:=FindUseDefaultsFlagTemplate;
|
||||||
if Result<>nil then exit;
|
if Result<>nil then exit;
|
||||||
Result:=TDefineTemplate.Create(NotUsedDirectoryFlagTemplName, 'Not used directory flag',
|
Result:=TDefineTemplate.Create(UseDefaultsFlagTemplName, 'Not used directory flag',
|
||||||
'', '', da_DefineRecurse);
|
UseDefaultsFlagName, '1', da_DefineRecurse);
|
||||||
Result.Flags:=[dtfAutoGenerated];
|
Result.Flags:=[dtfAutoGenerated];
|
||||||
// insert in front of all
|
// insert in front of all
|
||||||
CodeToolBoss.DefineTree.ReplaceRootSameNameAddFirst(Result);
|
CodeToolBoss.DefineTree.ReplaceRootSameNameAddFirst(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FindFallBackTemplate: TDefineTemplate;
|
procedure DisableDefaultsInDirectories(DefTempl: TDefineTemplate);
|
||||||
|
// add to each directory a template to undefine the UseDefaults flag
|
||||||
begin
|
begin
|
||||||
Result:=FindRootTemplate(FallBackTemplName);
|
while DefTempl<>nil do begin
|
||||||
end;
|
if DefTempl.Action=da_Directory then begin
|
||||||
|
DefTempl.AddChild(TDefineTemplate.Create(NotUseDefaultsFlagTemplName,
|
||||||
function CreateFallBackTemplate: TDefineTemplate;
|
NotUseDefaultsFlagTemplName,UseDefaultsFlagName,'',da_UndefineRecurse));
|
||||||
begin
|
DefTempl:=DefTempl.GetNextSkipChildren;
|
||||||
Result:=FindFallBackTemplate;
|
end else begin
|
||||||
if Result<>nil then begin
|
DefTempl:=DefTempl.GetNext;
|
||||||
// make sure it is at the end
|
end;
|
||||||
if Result.Next<>nil then
|
|
||||||
CodeToolBoss.DefineTree.MoveToLast(Result);
|
|
||||||
exit;
|
|
||||||
end;
|
end;
|
||||||
Result:=TDefineTemplate.Create(FallBackTemplName, 'Definitions for all other directories',
|
|
||||||
'', '', da_Block);
|
|
||||||
Result.Flags:=[dtfAutoGenerated];
|
|
||||||
// insert behind all
|
|
||||||
CodeToolBoss.DefineTree.ReplaceRootSameName(Result);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
@ -13365,8 +13365,7 @@ begin
|
|||||||
MainBuildBoss.GetFPCCompilerParamsForEnvironmentTest(
|
MainBuildBoss.GetFPCCompilerParamsForEnvironmentTest(
|
||||||
MainBuildBoss.CurDefinesCompilerOptions);
|
MainBuildBoss.CurDefinesCompilerOptions);
|
||||||
//DebugLn('TMainIDE.InitCodeToolBoss CurDefinesCompilerOptions="',CurDefinesCompilerOptions,'"');
|
//DebugLn('TMainIDE.InitCodeToolBoss CurDefinesCompilerOptions="',CurDefinesCompilerOptions,'"');
|
||||||
CreateNotUsedDirectoryTemplate;
|
CreateUseDefaultsFlagTemplate;
|
||||||
CreateFallBackTemplate;
|
|
||||||
|
|
||||||
ADefTempl:=CreateFPCTemplate(MainBuildBoss.CurDefinesCompilerFilename,
|
ADefTempl:=CreateFPCTemplate(MainBuildBoss.CurDefinesCompilerFilename,
|
||||||
MainBuildBoss.CurDefinesCompilerOptions,
|
MainBuildBoss.CurDefinesCompilerOptions,
|
||||||
@ -13410,7 +13409,7 @@ begin
|
|||||||
|
|
||||||
// create compiler macros for the lazarus sources
|
// create compiler macros for the lazarus sources
|
||||||
SetupLazarusDirectory(InteractiveSetup);
|
SetupLazarusDirectory(InteractiveSetup);
|
||||||
ADefTempl:=CreateLazarusSrcTemplate(
|
ADefTempl:=CreateLazarusSourceTemplate(
|
||||||
'$('+ExternalMacroStart+'LazarusDir)',
|
'$('+ExternalMacroStart+'LazarusDir)',
|
||||||
'$('+ExternalMacroStart+'LCLWidgetType)',
|
'$('+ExternalMacroStart+'LCLWidgetType)',
|
||||||
MiscellaneousOptions.BuildLazOpts.ExtraOptions,CodeToolsOpts);
|
MiscellaneousOptions.BuildLazOpts.ExtraOptions,CodeToolsOpts);
|
||||||
|
|||||||
@ -546,7 +546,7 @@ type
|
|||||||
private
|
private
|
||||||
FActive: boolean;
|
FActive: boolean;
|
||||||
FSrcDirectories: TDefineTemplate;
|
FSrcDirectories: TDefineTemplate;
|
||||||
FSrcDirIfDef: TDefineTemplate;
|
FSrcDirIf: TDefineTemplate;
|
||||||
FFlags: TProjectDefineTemplatesFlags;
|
FFlags: TProjectDefineTemplatesFlags;
|
||||||
FMain: TDefineTemplate;
|
FMain: TDefineTemplate;
|
||||||
FOutputDir: TDefineTemplate;
|
FOutputDir: TDefineTemplate;
|
||||||
@ -584,7 +584,7 @@ type
|
|||||||
property SrcDirectories: TDefineTemplate read FSrcDirectories;
|
property SrcDirectories: TDefineTemplate read FSrcDirectories;
|
||||||
property OutputDir: TDefineTemplate read FOutputDir;
|
property OutputDir: TDefineTemplate read FOutputDir;
|
||||||
property OutPutSrcPath: TDefineTemplate read FOutPutSrcPath;
|
property OutPutSrcPath: TDefineTemplate read FOutPutSrcPath;
|
||||||
property CustomDefines: TDefineTemplate read FSrcDirIfDef;
|
property CustomDefines: TDefineTemplate read FSrcDirIf;
|
||||||
property Active: boolean read FActive write SetActive;
|
property Active: boolean read FActive write SetActive;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -5628,7 +5628,7 @@ end;
|
|||||||
|
|
||||||
procedure TProjectDefineTemplates.UpdateSrcDirIfDef;
|
procedure TProjectDefineTemplates.UpdateSrcDirIfDef;
|
||||||
var
|
var
|
||||||
NewValue: String;
|
NewVariable: String;
|
||||||
Changed: Boolean;
|
Changed: Boolean;
|
||||||
UnitPathDefTempl: TDefineTemplate;
|
UnitPathDefTempl: TDefineTemplate;
|
||||||
IncPathDefTempl: TDefineTemplate;
|
IncPathDefTempl: TDefineTemplate;
|
||||||
@ -5645,36 +5645,45 @@ begin
|
|||||||
da_Block);
|
da_Block);
|
||||||
FMain.AddChild(FSrcDirectories);
|
FMain.AddChild(FSrcDirectories);
|
||||||
end;
|
end;
|
||||||
if FSrcDirIfDef=nil then begin
|
if FSrcDirIf=nil then begin
|
||||||
FSrcDirIfDef:=TDefineTemplate.Create('Source Directory Additions',
|
if Project=nil then begin
|
||||||
'Additional defines for project source directories',
|
// ToDo: main project
|
||||||
'#ProjectSrcMark'+Project.IDAsWord,'',
|
FSrcDirIf:=TDefineTemplate.Create('Source Directory Additions',
|
||||||
da_IfDef);
|
'Additional defines for project source directories and all directories using defaults',
|
||||||
FMain.AddChild(FSrcDirIfDef);
|
'','$(#ProjectSrcMark'+Project.IDAsWord+')',
|
||||||
|
da_If);
|
||||||
|
end else begin
|
||||||
|
// secondary projects
|
||||||
|
FSrcDirIf:=TDefineTemplate.Create('Source Directory Additions',
|
||||||
|
'Additional defines for project source directories',
|
||||||
|
'#ProjectSrcMark'+Project.IDAsWord,'',
|
||||||
|
da_IfDef);
|
||||||
|
end;
|
||||||
|
FMain.AddChild(FSrcDirIf);
|
||||||
|
|
||||||
// create unit path template for this directory
|
// create unit path template for this directory
|
||||||
UnitPathDefTempl:=TDefineTemplate.Create('UnitPath', lisPkgDefsUnitPath,
|
UnitPathDefTempl:=TDefineTemplate.Create('UnitPath', lisPkgDefsUnitPath,
|
||||||
'#UnitPath','$(#UnitPath);$ProjectUnitPath('+Project.IDAsString+')',
|
'#UnitPath','$(#UnitPath);$ProjectUnitPath('+Project.IDAsString+')',
|
||||||
da_Define);
|
da_Define);
|
||||||
FSrcDirIfDef.AddChild(UnitPathDefTempl);
|
FSrcDirIf.AddChild(UnitPathDefTempl);
|
||||||
|
|
||||||
// create include path template for this directory
|
// create include path template for this directory
|
||||||
IncPathDefTempl:=TDefineTemplate.Create('IncPath','Include Path',
|
IncPathDefTempl:=TDefineTemplate.Create('IncPath','Include Path',
|
||||||
'#IncPath','$(#IncPath);$ProjectIncPath('+Project.IDAsString+')',
|
'#IncPath','$(#IncPath);$ProjectIncPath('+Project.IDAsString+')',
|
||||||
da_Define);
|
da_Define);
|
||||||
FSrcDirIfDef.AddChild(IncPathDefTempl);
|
FSrcDirIf.AddChild(IncPathDefTempl);
|
||||||
|
|
||||||
// create src path template for this directory
|
// create src path template for this directory
|
||||||
SrcPathDefTempl:=TDefineTemplate.Create('SrcPath','Src Path',
|
SrcPathDefTempl:=TDefineTemplate.Create('SrcPath','Src Path',
|
||||||
'#SrcPath','$(#SrcPath);$ProjectSrcPath('+Project.IDAsString+')',
|
'#SrcPath','$(#SrcPath);$ProjectSrcPath('+Project.IDAsString+')',
|
||||||
da_Define);
|
da_Define);
|
||||||
FSrcDirIfDef.AddChild(SrcPathDefTempl);
|
FSrcDirIf.AddChild(SrcPathDefTempl);
|
||||||
|
|
||||||
Changed:=true;
|
Changed:=true;
|
||||||
end else begin
|
end else begin
|
||||||
NewValue:='#ProjectSrcMark'+Project.IDAsWord;
|
NewVariable:='#ProjectSrcMark'+Project.IDAsWord;
|
||||||
if FSrcDirIfDef.Value<>NewValue then begin
|
if FSrcDirIf.Variable<>NewVariable then begin
|
||||||
FSrcDirIfDef.Value:='#ProjectSrcMark'+Project.IDAsWord;
|
FSrcDirIf.Variable:=NewVariable;
|
||||||
Changed:=true;
|
Changed:=true;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -5695,6 +5704,7 @@ begin
|
|||||||
);
|
);
|
||||||
FOutputDir.SetDefineOwner(Project,false);
|
FOutputDir.SetDefineOwner(Project,false);
|
||||||
FOutputDir.SetFlags([dtfAutoGenerated],[],false);
|
FOutputDir.SetFlags([dtfAutoGenerated],[],false);
|
||||||
|
DisableDefaultsInDirectories(FOutputDir);
|
||||||
FMain.AddChild(FOutputDir);
|
FMain.AddChild(FOutputDir);
|
||||||
end else begin
|
end else begin
|
||||||
FOutputDir.Value:=Project.GetOutputDirectory;
|
FOutputDir.Value:=Project.GetOutputDirectory;
|
||||||
@ -5772,17 +5782,18 @@ begin
|
|||||||
|
|
||||||
// build source directory define templates
|
// build source directory define templates
|
||||||
fLastSourceDirectories.Assign(NewSourceDirs);
|
fLastSourceDirectories.Assign(NewSourceDirs);
|
||||||
if (FSrcDirIfDef=nil) and (fLastSourceDirectories.Count>0) then
|
if (FSrcDirIf=nil) and (fLastSourceDirectories.Count>0) then
|
||||||
UpdateSrcDirIfDef;
|
UpdateSrcDirIfDef;
|
||||||
for i:=0 to fLastSourceDirectories.Count-1 do begin
|
for i:=0 to fLastSourceDirectories.Count-1 do begin
|
||||||
// create directory template
|
// create directory template
|
||||||
SrcDirDefTempl:=TDefineTemplate.Create('Source Directory '+IntToStr(i+1),
|
SrcDirDefTempl:=TDefineTemplate.Create('Source Directory '+IntToStr(i+1),
|
||||||
fLastSourceDirectories[i],'',fLastSourceDirectories[i],da_Directory);
|
fLastSourceDirectories[i],'',fLastSourceDirectories[i],da_Directory);
|
||||||
|
DisableDefaultsInDirectories(SrcDirDefTempl);
|
||||||
fLastSourceDirectories.Objects[i]:=SrcDirDefTempl;
|
fLastSourceDirectories.Objects[i]:=SrcDirDefTempl;
|
||||||
// add project source directory marker
|
// add project source directory marker
|
||||||
SrcDirMarkDefTempl:=TDefineTemplate.Create('ProjectSrcDirMark',
|
SrcDirMarkDefTempl:=TDefineTemplate.Create('ProjectSrcDirMark',
|
||||||
lisProjProjectSourceDirectoryMark, '#ProjectSrcMark'+Project.IDAsWord,
|
lisProjProjectSourceDirectoryMark, '#ProjectSrcMark'+Project.IDAsWord,
|
||||||
'',
|
'1',
|
||||||
da_Define);
|
da_Define);
|
||||||
SrcDirDefTempl.AddChild(SrcDirMarkDefTempl);
|
SrcDirDefTempl.AddChild(SrcDirMarkDefTempl);
|
||||||
|
|
||||||
@ -5816,13 +5827,13 @@ begin
|
|||||||
'Custom Options',FLastCustomOptions,false,Project);
|
'Custom Options',FLastCustomOptions,false,Project);
|
||||||
if OptionsDefTempl=nil then begin
|
if OptionsDefTempl=nil then begin
|
||||||
// no custom options -> delete old template
|
// no custom options -> delete old template
|
||||||
if FSrcDirIfDef<>nil then begin
|
if FSrcDirIf<>nil then begin
|
||||||
if FSrcDirIfDef.DeleteChild('Custom Options') then
|
if FSrcDirIf.DeleteChild('Custom Options') then
|
||||||
Changed:=true;
|
Changed:=true;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
UpdateSrcDirIfDef;
|
UpdateSrcDirIfDef;
|
||||||
FSrcDirIfDef.ReplaceChild(OptionsDefTempl);
|
FSrcDirIf.ReplaceChild(OptionsDefTempl);
|
||||||
Changed:=true;
|
Changed:=true;
|
||||||
end;
|
end;
|
||||||
if Changed then
|
if Changed then
|
||||||
@ -5848,7 +5859,7 @@ begin
|
|||||||
if (CodeToolBoss<>nil) then
|
if (CodeToolBoss<>nil) then
|
||||||
CodeToolBoss.DefineTree.RemoveDefineTemplate(FMain);
|
CodeToolBoss.DefineTree.RemoveDefineTemplate(FMain);
|
||||||
FMain:=nil;
|
FMain:=nil;
|
||||||
FSrcDirIfDef:=nil;
|
FSrcDirIf:=nil;
|
||||||
FSrcDirectories:=nil;
|
FSrcDirectories:=nil;
|
||||||
FOutPutSrcPath:=nil;
|
FOutPutSrcPath:=nil;
|
||||||
FOutputDir:=nil;
|
FOutputDir:=nil;
|
||||||
|
|||||||
@ -3983,6 +3983,7 @@ begin
|
|||||||
);
|
);
|
||||||
FOutputDir.SetDefineOwner(LazPackage,false);
|
FOutputDir.SetDefineOwner(LazPackage,false);
|
||||||
FOutputDir.SetFlags([dtfAutoGenerated],[],false);
|
FOutputDir.SetFlags([dtfAutoGenerated],[],false);
|
||||||
|
DisableDefaultsInDirectories(FOutputDir);
|
||||||
FMain.AddChild(FOutputDir);
|
FMain.AddChild(FOutputDir);
|
||||||
end else begin
|
end else begin
|
||||||
FOutputDir.Value:=LazPackage.GetOutputDirectory;
|
FOutputDir.Value:=LazPackage.GetOutputDirectory;
|
||||||
@ -4065,6 +4066,7 @@ begin
|
|||||||
// create directory template
|
// create directory template
|
||||||
SrcDirDefTempl:=TDefineTemplate.Create('Source Directory '+IntToStr(i+1),
|
SrcDirDefTempl:=TDefineTemplate.Create('Source Directory '+IntToStr(i+1),
|
||||||
fLastSourceDirectories[i],'',fLastSourceDirectories[i],da_Directory);
|
fLastSourceDirectories[i],'',fLastSourceDirectories[i],da_Directory);
|
||||||
|
DisableDefaultsInDirectories(SrcDirDefTempl);
|
||||||
fLastSourceDirectories.Objects[i]:=SrcDirDefTempl;
|
fLastSourceDirectories.Objects[i]:=SrcDirDefTempl;
|
||||||
// add package source directory marker
|
// add package source directory marker
|
||||||
SrcDirMarkDefTempl:=TDefineTemplate.Create('PkgSrcDirMark',
|
SrcDirMarkDefTempl:=TDefineTemplate.Create('PkgSrcDirMark',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user