mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 07:19:18 +02:00
IDE, EnvironmentOpts: Move implementation of specific TranferMacros to new unit.
EnvironmentOpts: Remove dependency on IDETranslations
This commit is contained in:
parent
bf4114c8ca
commit
f0d3e9fe7c
@ -55,7 +55,7 @@ uses
|
|||||||
TransferMacros, CompilerOptions, ExtTools, etMakeMsgParser, etFPCMsgParser,
|
TransferMacros, CompilerOptions, ExtTools, etMakeMsgParser, etFPCMsgParser,
|
||||||
etPas2jsMsgParser, Compiler, FPCSrcScan, PackageDefs, PackageSystem, Project,
|
etPas2jsMsgParser, Compiler, FPCSrcScan, PackageDefs, PackageSystem, Project,
|
||||||
ProjectIcon, ModeMatrixOpts, BaseBuildManager, ApplicationBundle,
|
ProjectIcon, ModeMatrixOpts, BaseBuildManager, ApplicationBundle,
|
||||||
RunParamsOpts, SearchPathProcs;
|
RunParamsOpts, IdeTransferMacros, SearchPathProcs;
|
||||||
|
|
||||||
const
|
const
|
||||||
cInvalidCompiler = 'InvalidCompiler';
|
cInvalidCompiler = 'InvalidCompiler';
|
||||||
@ -422,8 +422,7 @@ begin
|
|||||||
IDEMacros:=TLazIDEMacros.Create;
|
IDEMacros:=TLazIDEMacros.Create;
|
||||||
CompilerOptions.OnParseString:=@OnSubstituteCompilerOption;
|
CompilerOptions.OnParseString:=@OnSubstituteCompilerOption;
|
||||||
|
|
||||||
// environment
|
TIdeTransferMarcros.InitMacros(GlobalMacroList);
|
||||||
EnvironmentOptions.InitMacros(GlobalMacroList);
|
|
||||||
|
|
||||||
// project
|
// project
|
||||||
GlobalMacroList.Add(TTransferMacro.Create('Project','',
|
GlobalMacroList.Add(TTransferMacro.Create('Project','',
|
||||||
|
@ -47,11 +47,11 @@ uses
|
|||||||
FileProcs, SourceChanger, CodeCompletionTool,
|
FileProcs, SourceChanger, CodeCompletionTool,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
ProjectIntf, ObjectInspector, IDEWindowIntf, IDEOptionsIntf, IDEOptEditorIntf,
|
ProjectIntf, ObjectInspector, IDEWindowIntf, IDEOptionsIntf, IDEOptEditorIntf,
|
||||||
ComponentReg, IDEExternToolIntf, MacroDefIntf, SrcEditorIntf,
|
ComponentReg, IDEExternToolIntf, SrcEditorIntf,
|
||||||
// DebuggerIntf
|
// DebuggerIntf
|
||||||
DbgIntfDebuggerBase,
|
DbgIntfDebuggerBase,
|
||||||
// IDE
|
// IDE
|
||||||
RecentListProcs, SearchPathProcs, LazarusIDEStrConsts, IDETranslations, LazConf,
|
RecentListProcs, SearchPathProcs, LazarusIDEStrConsts, LazConf,
|
||||||
IDEOptionDefs, TransferMacros, ModeMatrixOpts,
|
IDEOptionDefs, TransferMacros, ModeMatrixOpts,
|
||||||
IdeCoolbarData, EditorToolbarStatic, IdeDebuggerOpts;
|
IdeCoolbarData, EditorToolbarStatic, IdeDebuggerOpts;
|
||||||
|
|
||||||
@ -799,23 +799,6 @@ type
|
|||||||
function GetParsedFppkgConfig: string; override;
|
function GetParsedFppkgConfig: string; override;
|
||||||
function GetParsedValue(o: TEnvOptParseType; AUnparsedValue: String = ''): string;
|
function GetParsedValue(o: TEnvOptParseType; AUnparsedValue: String = ''): string;
|
||||||
|
|
||||||
// macros
|
|
||||||
procedure InitMacros(AMacroList: TTransferMacroList);
|
|
||||||
function MacroFuncFPCSrcDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncLazarusDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncExeExt(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncLanguageID(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncLanguageName(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncTestDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
function MacroFuncConfDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
|
||||||
var {%H-}Abort: boolean): string;
|
|
||||||
|
|
||||||
procedure UseDesktop(ADesktop: TDesktopOpt);
|
procedure UseDesktop(ADesktop: TDesktopOpt);
|
||||||
procedure EnableDebugDesktop;
|
procedure EnableDebugDesktop;
|
||||||
procedure DisableDebugDesktop;
|
procedure DisableDebugDesktop;
|
||||||
@ -3156,68 +3139,6 @@ begin
|
|||||||
Result:=GetParsedValue(eopCompilerFilename);
|
Result:=GetParsedValue(eopCompilerFilename);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEnvironmentOptions.InitMacros(AMacroList: TTransferMacroList);
|
|
||||||
begin
|
|
||||||
AMacroList.Add(TTransferMacro.Create('FPCSrcDir','',
|
|
||||||
lisFreePascalSourceDirectory,@MacroFuncFPCSrcDir,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('LazarusDir','',
|
|
||||||
lisLazarusDirectory,@MacroFuncLazarusDir,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('ExeExt','',
|
|
||||||
lisFileExtensionOfPrograms, @MacroFuncExeExt, []));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('LanguageID','',
|
|
||||||
lisLazarusLanguageID,@MacroFuncLanguageID,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('LanguageName','',
|
|
||||||
lisLazarusLanguageName,@MacroFuncLanguageName,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('TestDir','',
|
|
||||||
lisTestDirectory,@MacroFuncTestDir,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('ConfDir','',
|
|
||||||
lisConfigDirectory,@MacroFuncConfDir,[]));
|
|
||||||
AMacroList.Add(TTransferMacro.Create('Home',GetUserDir,
|
|
||||||
lisUserSHomeDirectory, nil, []));
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncFPCSrcDir(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetParsedFPCSourceDirectory;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncLazarusDir(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetParsedLazarusDirectory;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncExeExt(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetExecutableExt;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncLanguageID(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=LanguageID;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncLanguageName(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetLazarusLanguageLocalizedName(LanguageID);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncTestDir(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetParsedTestBuildDirectory;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TEnvironmentOptions.MacroFuncConfDir(const s: string;
|
|
||||||
const Data: PtrInt; var Abort: boolean): string;
|
|
||||||
begin
|
|
||||||
Result:=GetPrimaryConfigPath;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TEnvironmentOptions.SaveDebuggerPropertiesList;
|
procedure TEnvironmentOptions.SaveDebuggerPropertiesList;
|
||||||
begin
|
begin
|
||||||
FDebuggerProperties.SaveToXml(FXMLCfg, 'EnvironmentOptions/Debugger/', 'EnvironmentOptions/DebuggerFilename/Value');
|
FDebuggerProperties.SaveToXml(FXMLCfg, 'EnvironmentOptions/Debugger/', 'EnvironmentOptions/DebuggerFilename/Value');
|
||||||
|
110
ide/idetransfermacros.pas
Normal file
110
ide/idetransfermacros.pas
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
unit IdeTransferMacros;
|
||||||
|
|
||||||
|
{$mode ObjFPC}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, IDETranslations, EnvironmentOpts, TransferMacros,
|
||||||
|
LazarusIDEStrConsts, LazConf, MacroDefIntf;
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
@ -1466,6 +1466,11 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="FindInFilesWnd"/>
|
<UnitName Value="FindInFilesWnd"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
<Unit>
|
||||||
|
<Filename Value="idetransfermacros.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="IdeTransferMacros"/>
|
||||||
|
</Unit>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
Loading…
Reference in New Issue
Block a user