mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 19:58:02 +02:00
116 lines
3.8 KiB
ObjectPascal
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.
|
|
|