mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 07:36:14 +02:00
IDE: Update target processor list and assembly style selections based on CPU type. Issues #20310 and #20311
git-svn-id: trunk@42758 -
This commit is contained in:
parent
5c1f0c896b
commit
41601dd2fc
@ -10,18 +10,18 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
DesignTop = 284
|
DesignTop = 284
|
||||||
object grpConfigFile: TGroupBox
|
object grpConfigFile: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 102
|
Height = 106
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 594
|
Width = 594
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'grpConfigFile'
|
Caption = 'grpConfigFile'
|
||||||
ClientHeight = 83
|
ClientHeight = 86
|
||||||
ClientWidth = 590
|
ClientWidth = 590
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object chkConfigFile: TCheckBox
|
object chkConfigFile: TCheckBox
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 21
|
Height = 22
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 578
|
Width = 578
|
||||||
Align = alTop
|
Align = alTop
|
||||||
@ -33,8 +33,8 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
end
|
end
|
||||||
object chkCustomConfigFile: TCheckBox
|
object chkCustomConfigFile: TCheckBox
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 21
|
Height = 22
|
||||||
Top = 30
|
Top = 31
|
||||||
Width = 578
|
Width = 578
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BorderSpacing.Left = 6
|
BorderSpacing.Left = 6
|
||||||
@ -51,8 +51,8 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
AnchorSideRight.Control = chkCustomConfigFile
|
AnchorSideRight.Control = chkCustomConfigFile
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 25
|
Left = 25
|
||||||
Height = 25
|
Height = 26
|
||||||
Top = 52
|
Top = 54
|
||||||
Width = 559
|
Width = 559
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
BorderSpacing.Left = 19
|
BorderSpacing.Left = 19
|
||||||
@ -65,14 +65,14 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
object grpTargetPlatform: TGroupBox
|
object grpTargetPlatform: TGroupBox
|
||||||
AnchorSideBottom.Side = asrBottom
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 109
|
Height = 125
|
||||||
Top = 110
|
Top = 114
|
||||||
Width = 594
|
Width = 594
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
Caption = 'Target Platform'
|
Caption = 'Target Platform'
|
||||||
ClientHeight = 90
|
ClientHeight = 105
|
||||||
ClientWidth = 590
|
ClientWidth = 590
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object lblTargetOS: TLabel
|
object lblTargetOS: TLabel
|
||||||
@ -80,9 +80,9 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
AnchorSideTop.Control = TargetOSComboBox
|
AnchorSideTop.Control = TargetOSComboBox
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 15
|
Height = 18
|
||||||
Top = 8
|
Top = 9
|
||||||
Width = 70
|
Width = 83
|
||||||
BorderSpacing.Left = 6
|
BorderSpacing.Left = 6
|
||||||
Caption = 'lblTargetOS'
|
Caption = 'lblTargetOS'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
@ -92,21 +92,21 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
AnchorSideTop.Control = TargetCPUComboBox
|
AnchorSideTop.Control = TargetCPUComboBox
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 15
|
Height = 18
|
||||||
Top = 36
|
Top = 42
|
||||||
Width = 78
|
Width = 91
|
||||||
Caption = 'lblTargetCPU'
|
Caption = 'lblTargetCPU'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object lblTargetProcessorProc: TLabel
|
object lblTargetProc: TLabel
|
||||||
AnchorSideLeft.Control = lblTargetCPU
|
AnchorSideLeft.Control = lblTargetCPU
|
||||||
AnchorSideTop.Control = TargetProcessorProcComboBox
|
AnchorSideTop.Control = TargetProcComboBox
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 15
|
Height = 18
|
||||||
Top = 64
|
Top = 75
|
||||||
Width = 144
|
Width = 93
|
||||||
Caption = 'lblTargetProcessorProc'
|
Caption = 'lblTargetProc'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object TargetOSComboBox: TComboBox
|
object TargetOSComboBox: TComboBox
|
||||||
@ -115,15 +115,16 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
AnchorSideTop.Control = grpTargetPlatform
|
AnchorSideTop.Control = grpTargetPlatform
|
||||||
AnchorSideRight.Control = grpTargetPlatform
|
AnchorSideRight.Control = grpTargetPlatform
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 82
|
Left = 95
|
||||||
Height = 25
|
Height = 30
|
||||||
Top = 3
|
Top = 3
|
||||||
Width = 502
|
Width = 489
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
BorderSpacing.Left = 6
|
BorderSpacing.Left = 6
|
||||||
BorderSpacing.Top = 3
|
BorderSpacing.Top = 3
|
||||||
BorderSpacing.Right = 6
|
BorderSpacing.Right = 6
|
||||||
ItemHeight = 0
|
ItemHeight = 0
|
||||||
|
OnSelect = TargetOSComboBoxSelect
|
||||||
Style = csDropDownList
|
Style = csDropDownList
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
@ -134,29 +135,30 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Control = grpTargetPlatform
|
AnchorSideRight.Control = grpTargetPlatform
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 90
|
Left = 103
|
||||||
Height = 25
|
Height = 30
|
||||||
Top = 31
|
Top = 36
|
||||||
Width = 494
|
Width = 481
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
BorderSpacing.Left = 6
|
BorderSpacing.Left = 6
|
||||||
BorderSpacing.Top = 3
|
BorderSpacing.Top = 3
|
||||||
BorderSpacing.Right = 6
|
BorderSpacing.Right = 6
|
||||||
ItemHeight = 0
|
ItemHeight = 0
|
||||||
|
OnSelect = TargetCPUComboBoxSelect
|
||||||
Style = csDropDownList
|
Style = csDropDownList
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
object TargetProcessorProcComboBox: TComboBox
|
object TargetProcComboBox: TComboBox
|
||||||
AnchorSideLeft.Control = lblTargetProcessorProc
|
AnchorSideLeft.Control = lblTargetProc
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = TargetCPUComboBox
|
AnchorSideTop.Control = TargetCPUComboBox
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Control = grpTargetPlatform
|
AnchorSideRight.Control = grpTargetPlatform
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 156
|
Left = 105
|
||||||
Height = 25
|
Height = 30
|
||||||
Top = 59
|
Top = 69
|
||||||
Width = 428
|
Width = 479
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
BorderSpacing.Left = 6
|
BorderSpacing.Left = 6
|
||||||
BorderSpacing.Top = 3
|
BorderSpacing.Top = 3
|
||||||
@ -169,19 +171,19 @@ object CompilerConfigTargetFrame: TCompilerConfigTargetFrame
|
|||||||
end
|
end
|
||||||
object grbTargetOptions: TGroupBox
|
object grbTargetOptions: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 52
|
Height = 54
|
||||||
Top = 227
|
Top = 247
|
||||||
Width = 594
|
Width = 594
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
Caption = 'Target-specific options'
|
Caption = 'Target-specific options'
|
||||||
ClientHeight = 33
|
ClientHeight = 34
|
||||||
ClientWidth = 590
|
ClientWidth = 590
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object chkWin32GraphicApp: TCheckBox
|
object chkWin32GraphicApp: TCheckBox
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 21
|
Height = 22
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 578
|
Width = 578
|
||||||
Align = alTop
|
Align = alTop
|
||||||
|
@ -28,8 +28,9 @@ unit compiler_config_target;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Controls, Dialogs, StdCtrls, LCLProc, IDEOptionsIntf,
|
Classes, SysUtils, strutils, FileUtil, Controls, Dialogs, StdCtrls, LCLProc,
|
||||||
IDEDialogs, CompilerOptions, LazarusIDEStrConsts, PackageDefs;
|
IDEOptionsIntf, IDEDialogs, CompilerOptions, LazarusIDEStrConsts,
|
||||||
|
TransferMacros, PackageDefs, compiler_parsing_options;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -45,14 +46,19 @@ type
|
|||||||
grpTargetPlatform: TGroupBox;
|
grpTargetPlatform: TGroupBox;
|
||||||
lblTargetCPU: TLabel;
|
lblTargetCPU: TLabel;
|
||||||
lblTargetOS: TLabel;
|
lblTargetOS: TLabel;
|
||||||
lblTargetProcessorProc: TLabel;
|
lblTargetProc: TLabel;
|
||||||
TargetCPUComboBox: TComboBox;
|
TargetCPUComboBox: TComboBox;
|
||||||
TargetOSComboBox: TComboBox;
|
TargetOSComboBox: TComboBox;
|
||||||
TargetProcessorProcComboBox: TComboBox;
|
TargetProcComboBox: TComboBox;
|
||||||
procedure chkCustomConfigFileClick(Sender: TObject);
|
procedure chkCustomConfigFileClick(Sender: TObject);
|
||||||
|
procedure TargetOSComboBoxSelect(Sender: TObject);
|
||||||
|
procedure TargetCPUComboBoxSelect(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
FDialog: TAbstractOptionsEditorDialog;
|
||||||
FCompOptions: TBaseCompilerOptions;
|
FCompOptions: TBaseCompilerOptions;
|
||||||
FIsPackage: boolean;
|
FIsPackage: boolean;
|
||||||
|
procedure UpdateByTargetOS(aTargetOS: string);
|
||||||
|
procedure UpdateByTargetCPU(aTargetCPU: string);
|
||||||
public
|
public
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -117,11 +123,6 @@ end;
|
|||||||
|
|
||||||
{ TCompilerConfigTargetFrame }
|
{ TCompilerConfigTargetFrame }
|
||||||
|
|
||||||
procedure TCompilerConfigTargetFrame.chkCustomConfigFileClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
edtConfigPath.Enabled := chkCustomConfigFile.Checked;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TCompilerConfigTargetFrame.Create(TheOwner: TComponent);
|
constructor TCompilerConfigTargetFrame.Create(TheOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(TheOwner);
|
inherited Create(TheOwner);
|
||||||
@ -175,8 +176,82 @@ begin
|
|||||||
Result := dlgConfigAndTarget;
|
Result := dlgConfigAndTarget;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerConfigTargetFrame.UpdateByTargetOS(aTargetOS: string);
|
||||||
|
var
|
||||||
|
DbgMsg: String;
|
||||||
|
begin
|
||||||
|
DbgMsg := '';
|
||||||
|
if aTargetOS = '' then
|
||||||
|
begin
|
||||||
|
aTargetOS := '$(TargetOS)';
|
||||||
|
if not GlobalMacroList.SubstituteStr(aTargetOS) then
|
||||||
|
raise Exception.CreateFmt('Cannot substitute macro "%s".', [aTargetOS]);
|
||||||
|
DbgMsg := ' (got by using $(TargetOS) macro)';
|
||||||
|
end;
|
||||||
|
DebugLn(['TCompilerConfigTargetFrame.UpdateTargetSpecific: TargetOS=',aTargetOS,DbgMsg]);
|
||||||
|
// Now hide/show the whole GroupBox because there is only one setting.
|
||||||
|
grbTargetOptions.Visible := AnsiStartsStr('Win', aTargetOS);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerConfigTargetFrame.UpdateByTargetCPU(aTargetCPU: string);
|
||||||
|
var
|
||||||
|
IsIntel: Boolean;
|
||||||
|
|
||||||
|
procedure IntelProcessor;
|
||||||
|
begin
|
||||||
|
IsIntel := True;
|
||||||
|
with TargetProcComboBox.Items do
|
||||||
|
begin
|
||||||
|
Add(ProcessorToCaption('80386'));
|
||||||
|
Add(ProcessorToCaption('Pentium'));
|
||||||
|
Add(ProcessorToCaption('Pentium2'));
|
||||||
|
Add(ProcessorToCaption('Pentium3'));
|
||||||
|
Add(ProcessorToCaption('Pentium4'));
|
||||||
|
Add(ProcessorToCaption('PentiumM'));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
DbgMsg: String;
|
||||||
|
ParsingFrame: TCompilerParsingOptionsFrame;
|
||||||
|
begin
|
||||||
|
IsIntel := False;
|
||||||
|
DbgMsg := '';
|
||||||
|
if aTargetCPU = '' then
|
||||||
|
begin
|
||||||
|
aTargetCPU := '$(TargetCPU)';
|
||||||
|
if not GlobalMacroList.SubstituteStr(aTargetCPU) then
|
||||||
|
raise Exception.CreateFmt('Cannot substitute macro "%s".', [aTargetCPU]);
|
||||||
|
DbgMsg := ' (got by using $(TargetCPU) macro)';
|
||||||
|
end;
|
||||||
|
DebugLn(['TCompilerConfigTargetFrame.UpdateTargetProcessorList: TargetCPU=',aTargetCPU,DbgMsg]);
|
||||||
|
|
||||||
|
// Update selection list for target processor
|
||||||
|
TargetProcComboBox.Clear;
|
||||||
|
TargetProcComboBox.Items.Add(ProcessorToCaption(''));
|
||||||
|
case aTargetCPU of
|
||||||
|
'arm': begin end;
|
||||||
|
'i386': IntelProcessor;
|
||||||
|
'm68k': begin end;
|
||||||
|
'powerpc': begin end;
|
||||||
|
'sparc': begin end;
|
||||||
|
'x86_64': IntelProcessor;
|
||||||
|
'mipsel': begin end;
|
||||||
|
'mips': begin end;
|
||||||
|
'jvm': begin end;
|
||||||
|
end;
|
||||||
|
TargetProcComboBox.ItemIndex := 0;
|
||||||
|
|
||||||
|
// Update selection list for assembler style
|
||||||
|
ParsingFrame := TCompilerParsingOptionsFrame(FDialog.FindEditor(TCompilerParsingOptionsFrame));
|
||||||
|
Assert(Assigned(ParsingFrame));
|
||||||
|
ParsingFrame.grpAsmStyle.Visible := IsIntel;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCompilerConfigTargetFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
|
procedure TCompilerConfigTargetFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
|
||||||
begin
|
begin
|
||||||
|
FDialog := ADialog;
|
||||||
|
|
||||||
// Config
|
// Config
|
||||||
grpConfigFile.Caption := dlgConfigFiles;
|
grpConfigFile.Caption := dlgConfigFiles;
|
||||||
chkConfigFile.Caption := dlgUseFpcCfg + ' (If not checked: -n)';
|
chkConfigFile.Caption := dlgUseFpcCfg + ' (If not checked: -n)';
|
||||||
@ -188,80 +263,59 @@ begin
|
|||||||
lblTargetOS.Caption := dlgTargetOS + ' (-T)';
|
lblTargetOS.Caption := dlgTargetOS + ' (-T)';
|
||||||
with TargetOSComboBox do
|
with TargetOSComboBox do
|
||||||
begin
|
begin
|
||||||
with Items do
|
Items.Add('(' + lisDefault + ')');
|
||||||
begin
|
Items.Add('Darwin');
|
||||||
Add('(' + lisDefault + ')');
|
Items.Add('FreeBSD');
|
||||||
Add('Darwin');
|
Items.Add('Linux');
|
||||||
Add('FreeBSD');
|
Items.Add('NetBSD');
|
||||||
Add('Linux');
|
Items.Add('OpenBSD');
|
||||||
Add('NetBSD');
|
Items.Add('Solaris');
|
||||||
Add('OpenBSD');
|
Items.Add('Win32');
|
||||||
Add('Solaris');
|
Items.Add('Win64');
|
||||||
Add('Win32');
|
Items.Add('WinCE');
|
||||||
Add('Win64');
|
Items.Add('aix');
|
||||||
Add('WinCE');
|
Items.Add('amiga');
|
||||||
Add('aix');
|
Items.Add('android');
|
||||||
Add('amiga');
|
Items.Add('atari');
|
||||||
Add('android');
|
Items.Add('beos');
|
||||||
Add('atari');
|
Items.Add('embedded');
|
||||||
Add('beos');
|
Items.Add('emx');
|
||||||
Add('embedded');
|
Items.Add('gba');
|
||||||
Add('emx');
|
Items.Add('go32v2');
|
||||||
Add('gba');
|
Items.Add('haiku');
|
||||||
Add('go32v2');
|
Items.Add('iphonesim');
|
||||||
Add('haiku');
|
Items.Add('java');
|
||||||
Add('iphonesim');
|
Items.Add('macos');
|
||||||
Add('java');
|
Items.Add('morphos');
|
||||||
Add('macos');
|
Items.Add('nds');
|
||||||
Add('morphos');
|
Items.Add('netware');
|
||||||
Add('nds');
|
Items.Add('netwlibc');
|
||||||
Add('netware');
|
Items.Add('os2');
|
||||||
Add('netwlibc');
|
Items.Add('palmos');
|
||||||
Add('os2');
|
Items.Add('qnx');
|
||||||
Add('palmos');
|
Items.Add('symbian');
|
||||||
Add('qnx');
|
Items.Add('watcom');
|
||||||
Add('symbian');
|
Items.Add('wdosx');
|
||||||
Add('watcom');
|
|
||||||
Add('wdosx');
|
|
||||||
end;
|
|
||||||
ItemIndex := 0;
|
ItemIndex := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
lblTargetCPU.Caption := dlgTargetCPUFamily + ' (-P)';
|
lblTargetCPU.Caption := dlgTargetCPUFamily + ' (-P)';
|
||||||
with TargetCPUComboBox do
|
with TargetCPUComboBox do
|
||||||
begin
|
begin
|
||||||
with Items do
|
Items.Add('(' + lisDefault + ')');
|
||||||
begin
|
Items.Add('arm');
|
||||||
Add('(' + lisDefault + ')');
|
Items.Add('i386');
|
||||||
Add('arm');
|
Items.Add('m68k');
|
||||||
Add('i386');
|
Items.Add('powerpc');
|
||||||
Add('m68k');
|
Items.Add('sparc');
|
||||||
Add('powerpc');
|
Items.Add('x86_64');
|
||||||
Add('sparc');
|
Items.Add('mipsel');
|
||||||
Add('x86_64');
|
Items.Add('mips');
|
||||||
Add('mipsel');
|
Items.Add('jvm');
|
||||||
Add('mips');
|
|
||||||
Add('jvm');
|
|
||||||
end;
|
|
||||||
ItemIndex := 0;
|
ItemIndex := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
lblTargetProcessorProc.Caption := dlgTargetProc;
|
lblTargetProc.Caption := dlgTargetProc;
|
||||||
with TargetProcessorProcComboBox do
|
|
||||||
begin
|
|
||||||
with Items do
|
|
||||||
begin
|
|
||||||
Clear;
|
|
||||||
Add(ProcessorToCaption(''));
|
|
||||||
Add(ProcessorToCaption('80386'));
|
|
||||||
Add(ProcessorToCaption('Pentium'));
|
|
||||||
Add(ProcessorToCaption('Pentium2'));
|
|
||||||
Add(ProcessorToCaption('Pentium3'));
|
|
||||||
Add(ProcessorToCaption('Pentium4'));
|
|
||||||
Add(ProcessorToCaption('PentiumM'));
|
|
||||||
end;
|
|
||||||
ItemIndex := 0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Target options
|
// Target options
|
||||||
grbTargetOptions.Caption := dlgTargetSpecificOptions;
|
grbTargetOptions.Caption := dlgTargetSpecificOptions;
|
||||||
@ -288,7 +342,7 @@ begin
|
|||||||
TargetOSComboBox.Text := 'default';
|
TargetOSComboBox.Text := 'default';
|
||||||
TargetCPUComboBox.ItemIndex := 0;
|
TargetCPUComboBox.ItemIndex := 0;
|
||||||
TargetCPUComboBox.Text := 'default';
|
TargetCPUComboBox.Text := 'default';
|
||||||
TargetProcessorProcComboBox.Text := 'default';
|
TargetProcComboBox.Text := 'default';
|
||||||
end else begin
|
end else begin
|
||||||
grpTargetPlatform.Visible:=true;
|
grpTargetPlatform.Visible:=true;
|
||||||
// Target OS
|
// Target OS
|
||||||
@ -302,7 +356,9 @@ begin
|
|||||||
i := 0; // 0 is default
|
i := 0; // 0 is default
|
||||||
TargetCPUComboBox.ItemIndex := i;
|
TargetCPUComboBox.ItemIndex := i;
|
||||||
// Target Processor
|
// Target Processor
|
||||||
TargetProcessorProcComboBox.Text := ProcessorToCaption(TargetProcessor);
|
UpdateByTargetCPU(TargetCPU);
|
||||||
|
UpdateByTargetOS(TargetOS);
|
||||||
|
TargetProcComboBox.Text := ProcessorToCaption(TargetProcessor);
|
||||||
end;
|
end;
|
||||||
chkWin32GraphicApp.Checked := Win32GraphicApp;
|
chkWin32GraphicApp.Checked := Win32GraphicApp;
|
||||||
chkWin32GraphicApp.Enabled := NeedsLinkerOpts;
|
chkWin32GraphicApp.Enabled := NeedsLinkerOpts;
|
||||||
@ -332,12 +388,43 @@ begin
|
|||||||
if TargetCPUComboBox.Items.IndexOf(NewTargetCPU) <= 0 then
|
if TargetCPUComboBox.Items.IndexOf(NewTargetCPU) <= 0 then
|
||||||
NewTargetCPU := '';
|
NewTargetCPU := '';
|
||||||
TargetCPU := CaptionToCPU(NewTargetCPU);
|
TargetCPU := CaptionToCPU(NewTargetCPU);
|
||||||
TargetProcessor := CaptionToProcessor(TargetProcessorProcComboBox.Text);
|
TargetProcessor := CaptionToProcessor(TargetProcComboBox.Text);
|
||||||
end;
|
end;
|
||||||
Win32GraphicApp := chkWin32GraphicApp.Checked;
|
Win32GraphicApp := chkWin32GraphicApp.Checked;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerConfigTargetFrame.chkCustomConfigFileClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
edtConfigPath.Enabled := chkCustomConfigFile.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerConfigTargetFrame.TargetOSComboBoxSelect(Sender: TObject);
|
||||||
|
var
|
||||||
|
cb: TComboBox;
|
||||||
|
s: TCaption;
|
||||||
|
begin
|
||||||
|
cb := Sender as TComboBox;
|
||||||
|
if cb.ItemIndex = 0 then
|
||||||
|
s :=''
|
||||||
|
else
|
||||||
|
s := cb.Text;
|
||||||
|
UpdateByTargetOS(s);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerConfigTargetFrame.TargetCPUComboBoxSelect(Sender: TObject);
|
||||||
|
var
|
||||||
|
cb: TComboBox;
|
||||||
|
s: String;
|
||||||
|
begin
|
||||||
|
cb := Sender as TComboBox;
|
||||||
|
if cb.ItemIndex = 0 then
|
||||||
|
s :=''
|
||||||
|
else
|
||||||
|
s := cb.Text;
|
||||||
|
UpdateByTargetCPU(s);
|
||||||
|
end;
|
||||||
|
|
||||||
class function TCompilerConfigTargetFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
class function TCompilerConfigTargetFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||||
begin
|
begin
|
||||||
Result := TBaseCompilerOptions;
|
Result := TBaseCompilerOptions;
|
||||||
|
@ -13,8 +13,8 @@ object CompilerParsingOptionsFrame: TCompilerParsingOptionsFrame
|
|||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 57
|
Height = 54
|
||||||
Top = 326
|
Top = 332
|
||||||
Width = 584
|
Width = 584
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
AutoFill = True
|
AutoFill = True
|
||||||
@ -29,7 +29,14 @@ object CompilerParsingOptionsFrame: TCompilerParsingOptionsFrame
|
|||||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||||
ChildSizing.ControlsPerLine = 3
|
ChildSizing.ControlsPerLine = 3
|
||||||
|
ClientHeight = 34
|
||||||
|
ClientWidth = 580
|
||||||
Columns = 3
|
Columns = 3
|
||||||
|
Items.Strings = (
|
||||||
|
'one'
|
||||||
|
'two'
|
||||||
|
'three'
|
||||||
|
)
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
object grpSyntaxOptions: TCheckGroup
|
object grpSyntaxOptions: TCheckGroup
|
||||||
@ -38,7 +45,7 @@ object CompilerParsingOptionsFrame: TCompilerParsingOptionsFrame
|
|||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 258
|
Height = 258
|
||||||
Top = 62
|
Top = 68
|
||||||
Width = 584
|
Width = 584
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
AutoFill = True
|
AutoFill = True
|
||||||
@ -56,21 +63,21 @@ object CompilerParsingOptionsFrame: TCompilerParsingOptionsFrame
|
|||||||
end
|
end
|
||||||
object grpSyntaxMode: TGroupBox
|
object grpSyntaxMode: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 56
|
Height = 62
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 584
|
Width = 584
|
||||||
Align = alTop
|
Align = alTop
|
||||||
Anchors = []
|
Anchors = []
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'grpSyntaxMode'
|
Caption = 'grpSyntaxMode'
|
||||||
ClientHeight = 37
|
ClientHeight = 42
|
||||||
ClientWidth = 580
|
ClientWidth = 580
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object cmbSyntaxMode: TComboBox
|
object cmbSyntaxMode: TComboBox
|
||||||
AnchorSideRight.Control = grpSyntaxMode
|
AnchorSideRight.Control = grpSyntaxMode
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 25
|
Height = 30
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 568
|
Width = 568
|
||||||
Align = alLeft
|
Align = alLeft
|
||||||
|
@ -5,8 +5,8 @@ unit compiler_parsing_options;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
ExtCtrls, StdCtrls, SysUtils, IDEOptionsIntf, CompilerOptions, LinkScanner,
|
ExtCtrls, StdCtrls, SysUtils, IDEOptionsIntf, CompilerOptions,
|
||||||
PackageDefs, LazarusIDEStrConsts;
|
LinkScanner, PackageDefs, LazarusIDEStrConsts;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -88,22 +88,19 @@ begin
|
|||||||
with grpAsmStyle do
|
with grpAsmStyle do
|
||||||
begin
|
begin
|
||||||
Caption := dlgCOAsmStyle + ' (-R)';
|
Caption := dlgCOAsmStyle + ' (-R)';
|
||||||
|
Items.BeginUpdate;
|
||||||
with Items do
|
Items.Clear;
|
||||||
begin
|
Items.Add(lisDefault);
|
||||||
BeginUpdate;
|
Items.Add('Intel');
|
||||||
Add(lisDefault);
|
Items.Add('AT&&T');
|
||||||
Add('Intel');
|
Items.EndUpdate;
|
||||||
Add('AT&&T');
|
|
||||||
EndUpdate;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with grpSyntaxOptions do
|
with grpSyntaxOptions do
|
||||||
begin
|
begin
|
||||||
AutoSize := True;
|
AutoSize := True;
|
||||||
Caption := dlgSyntaxOptions;
|
Caption := dlgSyntaxOptions;
|
||||||
|
Items.BeginUpdate;
|
||||||
Items.Add(dlgCOCOps + ' (-Sc, {$COPERATORS ON})');
|
Items.Add(dlgCOCOps + ' (-Sc, {$COPERATORS ON})');
|
||||||
Items.Add(dlgLabelGoto + ' (-Sg, {$GOTO ON})');
|
Items.Add(dlgLabelGoto + ' (-Sg, {$GOTO ON})');
|
||||||
Items.Add(dlgCppInline + ' (-Si, {$INLINE ON})');
|
Items.Add(dlgCppInline + ' (-Si, {$INLINE ON})');
|
||||||
@ -111,6 +108,7 @@ begin
|
|||||||
Items.Add(dlgInitDoneOnly + ' (-Ss)');
|
Items.Add(dlgInitDoneOnly + ' (-Ss)');
|
||||||
Items.Add(dlgStaticKeyword + ' (-St)');
|
Items.Add(dlgStaticKeyword + ' (-St)');
|
||||||
Items.Add(dlgCOAnsiStr + ' (-Sh, {$H+})');
|
Items.Add(dlgCOAnsiStr + ' (-Sh, {$H+})');
|
||||||
|
Items.EndUpdate;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user