lazarus/ide/idetransfermacros.pas

116 lines
3.8 KiB
ObjectPascal

unit IdeTransferMacros;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils,
// BuildIntf
MacroDefIntf,
// IdeConfig
EnvironmentOpts, LazConf, TransferMacros,
// IDE
LazarusIDEStrConsts, IDETranslations;
type
{ TIdeTransferMarcros }
TIdeTransferMarcros = class
private
// System
class function MacroFuncExeExt(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
// Conf
class function MacroFuncConfDir(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
// EnvironmentOpts
class function MacroFuncFPCSrcDir(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
class function MacroFuncLazarusDir(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
class function MacroFuncLanguageID(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
class function MacroFuncLanguageName(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
class function MacroFuncTestDir(const {%H-}s:string; const {%H-}Data: PtrInt;
var {%H-}Abort: boolean): string;
public
class procedure InitMacros(AMacroList: TTransferMacroList);
end;
implementation
{ TIdeTransferMarcros }
class function TIdeTransferMarcros.MacroFuncConfDir(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=GetPrimaryConfigPath;
end;
class function TIdeTransferMarcros.MacroFuncExeExt(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=GetExecutableExt;
end;
class function TIdeTransferMarcros.MacroFuncFPCSrcDir(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=EnvironmentOptions.GetParsedFPCSourceDirectory;
end;
class function TIdeTransferMarcros.MacroFuncLazarusDir(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=EnvironmentOptions.GetParsedLazarusDirectory;
end;
class function TIdeTransferMarcros.MacroFuncLanguageID(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=EnvironmentOptions.LanguageID;
end;
class function TIdeTransferMarcros.MacroFuncLanguageName(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=GetLazarusLanguageLocalizedName(EnvironmentOptions.LanguageID);
end;
class function TIdeTransferMarcros.MacroFuncTestDir(const s: string;
const Data: PtrInt; var Abort: boolean): string;
begin
Result:=EnvironmentOptions.GetParsedTestBuildDirectory;
end;
class procedure TIdeTransferMarcros.InitMacros(AMacroList: TTransferMacroList);
begin
// System
AMacroList.Add(TTransferMacro.Create('Home',GetUserDir,
lisUserSHomeDirectory, nil, []));
AMacroList.Add(TTransferMacro.Create('ExeExt','',
lisFileExtensionOfPrograms, @MacroFuncExeExt, []));
// Conf
AMacroList.Add(TTransferMacro.Create('ConfDir','',
lisConfigDirectory,@MacroFuncConfDir,[]));
// EnvironmentOpts
AMacroList.Add(TTransferMacro.Create('FPCSrcDir','',
lisFreePascalSourceDirectory,@MacroFuncFPCSrcDir,[]));
AMacroList.Add(TTransferMacro.Create('LazarusDir','',
lisLazarusDirectory,@MacroFuncLazarusDir,[]));
AMacroList.Add(TTransferMacro.Create('LanguageID','',
lisLazarusLanguageID,@MacroFuncLanguageID,[]));
AMacroList.Add(TTransferMacro.Create('LanguageName','',
lisLazarusLanguageName,@MacroFuncLanguageName,[]));
AMacroList.Add(TTransferMacro.Create('TestDir','',
lisTestDirectory,@MacroFuncTestDir,[]));
end;
end.