IDE: debug/complier-options: start detecting OS/CPU

git-svn-id: trunk@32450 -
This commit is contained in:
martin 2011-09-21 14:04:12 +00:00
parent dbb87ca09b
commit 6be51d73df
3 changed files with 35 additions and 9 deletions

View File

@ -449,6 +449,7 @@ type
fMsgFileName: String; // messages file name
fCompilerMessages: TCompilerMessagesList;
function GetDbgSymbolTypeDefault: TCompilerDbgSymbolType;
procedure OnItemChanged(Sender: TObject);
protected
function GetCompilerPath: String;
@ -570,6 +571,7 @@ type
property BaseDirectory: string read GetBaseDirectory write SetBaseDirectory;
property DefaultMakeOptionsFlags: TCompilerCmdLineOptions
read FDefaultMakeOptionsFlags write SetDefaultMakeOptionsFlags;
property DbgSymbolTypeDefault: TCompilerDbgSymbolType read GetDbgSymbolTypeDefault;
// for dialog only
property UseAsDefault: Boolean read FUseAsDefault write FUseAsDefault;
@ -1156,6 +1158,34 @@ begin
IncreaseChangeStamp;
end;
function TBaseCompilerOptions.GetDbgSymbolTypeDefault: TCompilerDbgSymbolType;
begin
// set defaults
{$IFDEF darwin}
Result := dsStabs;
{$ELSE}
Result := dsDwarf2Set;
{$ENDIF}
// check current settings
if CompareText(copy(TargetOS,1,3), 'win') = 0
then Result := dsDwarf2Set
else if CompareText(TargetOS, 'darwin') = 0
then Result := dsStabs
else if (CompareText(TargetOS, 'linux') = 0)
or (CompareText(TargetOS, 'freebsd') = 0)
or (CompareText(TargetOS, 'openbsd') = 0)
or (CompareText(TargetOS, 'netbsd') = 0)
or (CompareText(TargetOS, 'haiku') = 0)
then Result := dsDwarf2Set;
if Result <> dsStabs then begin
if SysUtils.CompareText(TargetCPU,'x86_64')=0
then Result := dsStabs;
// powerpc sparc m68k alpha arm
end;
end;
function TBaseCompilerOptions.GetCompilerPath: String;
begin
Result:=ParsedOpts.UnparsedValues[pcosCompilerPath];
@ -2572,7 +2602,7 @@ begin
if (GenerateDebugInfo) then begin
dit := DebugInfoType;
if dit = dsAuto then dit := CompilerDbgSymbolTypeDefault;
if dit = dsAuto then dit := DbgSymbolTypeDefault;
case dit of
dsStabs: switches := switches + ' -gs';
dsDwarf2: switches := switches + ' -gw2';
@ -2980,7 +3010,7 @@ begin
// linking
fGenDebugInfo := false;
fDebugInfoType := CompilerDbgSymbolTypeDefault;
fDebugInfoType := DbgSymbolTypeDefault;
fUseLineInfoUnit := true;
fUseHeaptrc := false;
fUseValgrind := false;

View File

@ -106,8 +106,6 @@ begin
dropDbgSymbolType.Items.Add(dlgCOSymbolTypeDwarf2+ '(-gw2)'); // 2: dwarf2
dropDbgSymbolType.Items.Add(dlgCOSymbolTypeStabs+ '(-gs)'); // 3: stabs
dropDbgSymbolType.Items.Add(dlgCOSymbolTypeDwarf3+ '(-gw3)');
dropDbgSymbolType.Items[0] := dropDbgSymbolType.Items[0] // auto
+ ' (' + dropDbgSymbolType.Items[SymbolToIndex(CompilerDbgSymbolTypeDefault)] + ')';
chkUseLineInfoUnit.Caption := dlgLNumsBct + ' (-gl)';
chkUseHeaptrc.Caption := dlgCOHeaptrc + ' (-gh)';
chkUseValgrind.Caption := dlgCOValgrind + ' (-gv)';
@ -148,6 +146,9 @@ begin
chkWin32GraphicApp.Checked := Win32GraphicApp;
chkWin32GraphicApp.Enabled := NeedsLinkerOpts;
grpOptions.Enabled := NeedsLinkerOpts;
dropDbgSymbolType.Items[0] := dlgCOSymbolTypeAuto
+ ' (' + dropDbgSymbolType.Items[SymbolToIndex(DbgSymbolTypeDefault)] + ')';
end;
grpDebugging.Enabled := chkDebugGDB.Checked;

View File

@ -93,11 +93,6 @@ type
const
crAll = [crCompile, crBuild, crRun];
{$IFDEF darwin}
CompilerDbgSymbolTypeDefault = dsStabs;
{$ELSE}
CompilerDbgSymbolTypeDefault = dsDwarf2Set;
{$ENDIF}
type
{ TLazCompilerOptions }