From c32c5778310a860b6781a18e35641a190c985d45 Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 21 Sep 2010 15:21:40 +0000 Subject: [PATCH] IDE: build macros for projects git-svn-id: trunk@27428 - --- ide/compileroptions.pp | 5 ++- ide/compileroptionsdlg.pp | 2 +- ide/frames/compiler_buildmacro_options.pas | 44 +++++++++++++++++++++- 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/ide/compileroptions.pp b/ide/compileroptions.pp index 4f63e30a75..0980f74d6c 100644 --- a/ide/compileroptions.pp +++ b/ide/compileroptions.pp @@ -69,7 +69,6 @@ - using conditionals to extend package usage paths: TParsedCompilerOptions.GetUnparsedWithConditionals ToDo: - - move the project target file to compiler options - conditionals for project - warn for macro name conflicts - keywords @@ -81,6 +80,10 @@ - show build macros in inherited compiler options - use syntax highlighter settings like the editor previews - show syntax errors of conditionals + - code completion + - move the project target file to compiler options + - discuss captions + - resourcestrings - a project can save the set of build macros and compiler options - add changestamp, assign, equals to compiler options - refactor compiler options (default options, load, save to file) diff --git a/ide/compileroptionsdlg.pp b/ide/compileroptionsdlg.pp index e1cd5f3ebd..138879144a 100644 --- a/ide/compileroptionsdlg.pp +++ b/ide/compileroptionsdlg.pp @@ -760,7 +760,6 @@ begin Checked[19] := Options.WriteFPCLogo; end; - // compiler messages chkUseMsgFile.OnChange := nil; try @@ -782,6 +781,7 @@ begin edtErrorCnt.Text := IntToStr(Options.StopAfterErrCount); // conditionals + build macros + debugln(['TfrmCompilerOptions.LoadOptionsToForm ']); {$IFDEF EnableBuildModes} BuildMacrosFrame.LoadFromOptions(Options); {$ENDIF} diff --git a/ide/frames/compiler_buildmacro_options.pas b/ide/frames/compiler_buildmacro_options.pas index 1bd46c6662..467f1b5183 100644 --- a/ide/frames/compiler_buildmacro_options.pas +++ b/ide/frames/compiler_buildmacro_options.pas @@ -31,7 +31,7 @@ interface uses Classes, SysUtils, LCLProc, FileUtil, Controls, Forms, StdCtrls, Grids, Buttons, ExtCtrls, Dialogs, ComCtrls, Menus, AvgLvlTree, IDEImagesIntf, - ProjectIntf, PackageIntf, CompilerOptions, + ProjectIntf, PackageIntf, CompilerOptions, IDEOptionsIntf, LazarusIDEStrConsts, CompOptsModes, PackageDefs, SynEdit, SynHighlighterPas; type @@ -43,7 +43,7 @@ type { TCompOptBuildMacrosFrame } - TCompOptBuildMacrosFrame = class(TFrame) + TCompOptBuildMacrosFrame = class(TAbstractIDEOptionsEditor) BuildMacroDescriptionEdit: TEdit; BuildMacroSelectedGroupBox: TGroupBox; BuildMacrosTreeView: TTreeView; @@ -85,6 +85,11 @@ type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; + function GetTitle: String; override; + procedure Setup(ADialog: TAbstractOptionsEditorDialog); override; + class function SupportedOptionsClass: TAbstractIDEOptionsClass; override; + procedure ReadSettings(AOptions: TAbstractIDEOptions); override; + procedure WriteSettings(AOptions: TAbstractIDEOptions); override; property BuildMacros: TIDEBuildMacros read FBuildMacros write SetBuildMacros; // local copy procedure LoadFromOptions(Options: TBaseCompilerOptions); procedure SaveToOptions(Options: TBaseCompilerOptions); @@ -443,6 +448,35 @@ begin inherited Destroy; end; +function TCompOptBuildMacrosFrame.GetTitle: String; +begin + Result:='Build macros'; +end; + +procedure TCompOptBuildMacrosFrame.ReadSettings(AOptions: TAbstractIDEOptions); +begin + if AOptions is TBaseCompilerOptions then + LoadFromOptions(TBaseCompilerOptions(AOptions)); +end; + +procedure TCompOptBuildMacrosFrame.Setup(ADialog: TAbstractOptionsEditorDialog + ); +begin + +end; + +class function TCompOptBuildMacrosFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; +begin + Result := TBaseCompilerOptions; +end; + +procedure TCompOptBuildMacrosFrame.WriteSettings(AOptions: TAbstractIDEOptions + ); +begin + if AOptions is TBaseCompilerOptions then + SaveToOptions(TBaseCompilerOptions(AOptions)); +end; + procedure TCompOptBuildMacrosFrame.LoadFromOptions(Options: TBaseCompilerOptions ); begin @@ -458,5 +492,11 @@ begin Options.Conditionals:=CondSynEdit.Lines.Text; end; +{$IFDEF EnableBuildModes} +initialization + RegisterIDEOptionsEditor(GroupCompiler, TCompOptBuildMacrosFrame, + CompilerOptionsConditional); +{$ENDIF} + end.