mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-26 09:09:10 +02:00
IDE: debug/complier-options: start detecting OS/CPU
git-svn-id: trunk@32450 -
This commit is contained in:
parent
dbb87ca09b
commit
6be51d73df
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -93,11 +93,6 @@ type
|
||||
|
||||
const
|
||||
crAll = [crCompile, crBuild, crRun];
|
||||
{$IFDEF darwin}
|
||||
CompilerDbgSymbolTypeDefault = dsStabs;
|
||||
{$ELSE}
|
||||
CompilerDbgSymbolTypeDefault = dsDwarf2Set;
|
||||
{$ENDIF}
|
||||
|
||||
type
|
||||
{ TLazCompilerOptions }
|
||||
|
Loading…
Reference in New Issue
Block a user