IDE: added IDE macro $(OutputFile), issue #27729, from elmar69

git-svn-id: trunk@59663 -
This commit is contained in:
mattias 2018-11-26 10:18:48 +00:00
parent 76c92368a2
commit a625b39fbf
4 changed files with 16 additions and 1 deletions

View File

@ -323,6 +323,7 @@ type
function IsActive: boolean; virtual;
function TrimCustomOptions(o: string): string; virtual; abstract;
function CreatePPUFilename(const SourceFileName: string): string; virtual; abstract;
function CreateTargetFilename: string; virtual; abstract;
function GetUnitOutputDirectory(RelativeToBaseDir: boolean): string; virtual; abstract;
public
property Owner: TObject read fOwner write fOwner;

View File

@ -143,6 +143,8 @@ type
var {%H-}Abort: boolean): string;
function MacroFuncTargetFile(const {%H-}Param: string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
function MacroFuncOutputFile(const {%H-}Param: string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
function MacroFuncTargetOS(const {%H-}Param: string; const Data: PtrInt;
var {%H-}Abort: boolean): string;
function MacroFuncIDEBuildOptions(const {%H-}Param: string; const Data: PtrInt;
@ -414,6 +416,8 @@ begin
lisTargetFilenamePlusParams,@MacroFuncTargetCmdLine,[]));
GlobalMacroList.Add(TTransferMacro.Create('RunCmdLine','',
lisLaunchingCmdLine,@MacroFuncRunCmdLine,[]));
GlobalMacroList.Add(TTransferMacro.Create('OutputFile','',
lisOutputFilenameOfProject,@MacroFuncOutputFile,[]));
GlobalMacroList.Add(TTransferMacro.Create('ProjPublishDir','',
lisPublishProjDir,@MacroFuncProjPublishDir,[]));
GlobalMacroList.Add(TTransferMacro.Create('ProjNamespaces','',
@ -2187,6 +2191,15 @@ begin
Result:='';
end;
function TBuildManager.MacroFuncOutputFile(const Param: string;
const Data: PtrInt; var Abort: boolean): string;
begin
if Project1<>nil then
Result:=Project1.CompilerOptions.CreateTargetFilename
else
Result:='';
end;
function TBuildManager.MacroFuncTargetCmdLine(const Param: string;
const Data: PtrInt; var Abort: boolean): string;
begin

View File

@ -486,7 +486,7 @@ type
function MakeOptionsString(Flags: TCompilerCmdLineOptions): String; virtual;
function GetSyntaxOptionsString(Kind: TPascalCompiler): string; virtual;
function CreatePPUFilename(const SourceFileName: string): string; override;
function CreateTargetFilename: string; virtual;
function CreateTargetFilename: string; override;
function GetTargetFileExt: string; virtual;
function GetTargetFilePrefix: string; virtual;
procedure GetInheritedCompilerOptions(var OptionsList: TFPList // list of TAdditionalCompilerOptions

View File

@ -235,6 +235,7 @@ resourcestring
lisSaveAllModified = 'Save all modified files';
lisTargetFilenameOfProject = 'Target filename of project';
lisTargetFilenamePlusParams = 'Target filename + params';
lisOutputFilenameOfProject = 'Output filename of project';
lisTestDirectory = 'Test directory';
lisLaunchingCmdLine = 'Launching target command line';
lisPublishProjDir = 'Publish project directory';