mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-08 11:19:16 +02:00
IDE: Don't cut a dotted TargetFilename when adding an extension to it. Issue #34665.
git-svn-id: trunk@64070 -
This commit is contained in:
parent
5ec8bc5d98
commit
609f5046d8
@ -414,8 +414,10 @@ type
|
||||
FOtherDefines: TStrings; // list of user selectable defines for custom options
|
||||
FFPCMsgFile: TFPCMsgFilePoolItem;
|
||||
FCreateMakefileOnBuild: boolean;
|
||||
procedure AppendDefaultExt(var aFilename: string);
|
||||
function GetExecuteAfter: TCompilationToolOptions;
|
||||
function GetExecuteBefore: TCompilationToolOptions;
|
||||
procedure PrependDefaultType(var AFilename: string);
|
||||
procedure SetCreateMakefileOnBuild(AValue: boolean);
|
||||
protected
|
||||
function GetCompilerPath: String; override;
|
||||
@ -1940,66 +1942,51 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
TBaseCompilerOptions CreateTargetFilename
|
||||
------------------------------------------------------------------------------}
|
||||
function TBaseCompilerOptions.CreateTargetFilename: string;
|
||||
|
||||
procedure AppendDefaultExt(var aFilename: string);
|
||||
var
|
||||
Ext: String;
|
||||
begin
|
||||
if (ExtractFileName(aFilename)='') then exit;
|
||||
Ext:=GetTargetFileExt;
|
||||
if Ext<>'' then begin
|
||||
aFilename:=ChangeFileExt(aFilename,Ext);
|
||||
//debugln ( 'Filename is ',AFilename,' in AppendDefaultExt' );
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure PrependDefaultType(var AFilename: string);
|
||||
var
|
||||
Prefix: String;
|
||||
FileName: String;
|
||||
PathName: String;
|
||||
CurTargetOS: String;
|
||||
aSrcOS: String;
|
||||
begin
|
||||
//debugln ( 'Filename AFilename is ',AFilename, ' in PrependDefaultType' );
|
||||
if (ExtractFileName(AFilename)='')
|
||||
or (CompareText(copy(ExtractFileName(AFilename),1,3), 'lib') = 0) then exit;
|
||||
Prefix:=GetTargetFilePrefix;
|
||||
if Prefix<>'' then begin
|
||||
FileName := ExtractFileName(AFilename);
|
||||
PathName := ExtractFilePath(AFilename);
|
||||
//debugln ( 'Filename is ',FileName, ' in PrependDefaultType' );
|
||||
CurTargetOS:=TargetOS;
|
||||
if CurTargetOS='' then CurTargetOS:=GetCompiledTargetOS;
|
||||
aSrcOS:=GetDefaultSrcOSForTargetOS(CurTargetOS);
|
||||
if (CompareText(aSrcOS, 'unix') = 0)
|
||||
then begin
|
||||
AFilename:=PathName+Prefix+UTF8LowerCase(FileName);
|
||||
end else begin
|
||||
AFilename:=PathName+Prefix+FileName;
|
||||
end;
|
||||
//debugln ( 'AFilename is ',AFilename, ' in PrependDefaultType' );
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBaseCompilerOptions.AppendDefaultExt(var aFilename: string);
|
||||
var
|
||||
UnitOutDir: String;
|
||||
OutFilename: String;
|
||||
Dir: String;
|
||||
Ext: String;
|
||||
begin
|
||||
if ExtractFileName(aFilename)='' then exit;
|
||||
Ext:=GetTargetFileExt;
|
||||
if (Ext<>'') and (CompareFileExt(aFilename,Ext)<>0) then
|
||||
aFilename:=aFilename+Ext;
|
||||
//DebugLn('Filename is ',AFilename,' in AppendDefaultExt');
|
||||
end;
|
||||
|
||||
procedure TBaseCompilerOptions.PrependDefaultType(var AFilename: string);
|
||||
var
|
||||
Prefix, FileName, PathName, CurTargetOS, aSrcOS: String;
|
||||
begin
|
||||
//DebugLn('Filename AFilename is ',AFilename, ' in PrependDefaultType');
|
||||
if (ExtractFileName(AFilename)='')
|
||||
or (CompareText(copy(ExtractFileName(AFilename),1,3), 'lib') = 0) then exit;
|
||||
Prefix:=GetTargetFilePrefix;
|
||||
if Prefix<>'' then
|
||||
begin
|
||||
FileName := ExtractFileName(AFilename);
|
||||
PathName := ExtractFilePath(AFilename);
|
||||
//debugln ( 'Filename is ',FileName, ' in PrependDefaultType' );
|
||||
CurTargetOS:=TargetOS;
|
||||
if CurTargetOS='' then CurTargetOS:=GetCompiledTargetOS;
|
||||
aSrcOS:=GetDefaultSrcOSForTargetOS(CurTargetOS);
|
||||
if CompareText(aSrcOS, 'unix') = 0 then
|
||||
AFilename:=PathName+Prefix+UTF8LowerCase(FileName)
|
||||
else
|
||||
AFilename:=PathName+Prefix+FileName;
|
||||
//DebugLn('AFilename is ',AFilename, ' in PrependDefaultType');
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TBaseCompilerOptions.CreateTargetFilename: string;
|
||||
var
|
||||
UnitOutDir, OutFilename, Dir: String;
|
||||
begin
|
||||
Result:=TargetFilename;
|
||||
if Assigned(ParsedOpts.OnLocalSubstitute) then
|
||||
begin
|
||||
Result:=ParsedOpts.OnLocalSubstitute(Result,false);
|
||||
end else begin
|
||||
Result:=ParsedOpts.OnLocalSubstitute(Result,false)
|
||||
else
|
||||
Result:=ParseString(ParsedOpts,Result,false);
|
||||
end;
|
||||
if (Result<>'') and FilenameIsAbsolute(Result) then begin
|
||||
// fully specified target filename
|
||||
end else if Result<>'' then begin
|
||||
|
Loading…
Reference in New Issue
Block a user