diff --git a/components/chmhelp/packages/idehelp/chmhelppkg.lpk b/components/chmhelp/packages/idehelp/chmhelppkg.lpk
index c5aafb8cc8..a048612f12 100644
--- a/components/chmhelp/packages/idehelp/chmhelppkg.lpk
+++ b/components/chmhelp/packages/idehelp/chmhelppkg.lpk
@@ -17,6 +17,7 @@
+
diff --git a/components/chmhelp/packages/idehelp/lazchmhelp.pas b/components/chmhelp/packages/idehelp/lazchmhelp.pas
index 84a68b2101..c3b2a19311 100644
--- a/components/chmhelp/packages/idehelp/lazchmhelp.pas
+++ b/components/chmhelp/packages/idehelp/lazchmhelp.pas
@@ -27,8 +27,11 @@ interface
uses
Classes, SysUtils, FileUtil, LazLogger, LazFileUtils, LazHelpIntf, HelpIntfs,
- LazConfigStorage, PropEdits, LazIDEIntf, IDEDialogs, LHelpControl, Controls,
- UTF8Process, ChmLangRef, ChmLcl, ChmProg;
+ LazConfigStorage, PropEdits, LazIDEIntf, IDEDialogs,
+ {$IFDEF EnableNewExtTools}
+ IDEExternToolIntf,
+ {$ENDIF}
+ LHelpControl, Controls, UTF8Process, ChmLangRef, ChmLcl, ChmProg;
resourcestring
HELP_CURRENT_MENU = '&Help';
@@ -245,16 +248,20 @@ end;
function TChmHelpViewer.CheckBuildLHelp: Integer;
var
- Proc: TProcessUTF8;
Lazbuild: String;
LHelpProject: String;
+ LHelpProjectDir: String;
WS: String;
- LastWasEOL: Boolean;
- BufC: Char;
+ PCP: String;
+ {$IFDEF EnableNewExtTools}
+ Tool: TIDEExternalToolOptions;
+ {$ELSE}
+ Proc: TProcessUTF8;
Buffer: array[0..511] of char;
BufP: Integer;
- PCP: String;
- LHelpProjectDir: String;
+ BufC: Char;
+ LastWasEOL: Boolean;
+ {$ENDIF}
begin
Result := mrCancel;
@@ -275,6 +282,7 @@ begin
debugln(['TChmHelpViewer.CheckBuildLHelp failed because lhelp.lpi not found']);
Exit;
end;
+ LHelpProjectDir := ExtractFilePath(LHelpProject);
WS := '--ws='+LCLPlatformDirNames[WidgetSet.LCLPlatform];
PCP := '--pcp='+LazarusIDE.GetPrimaryConfigPath;
@@ -283,6 +291,22 @@ begin
//if Result <> mrYes then
// Exit;
+ {$IFDEF EnableNewExtTools}
+ Tool:=TIDEExternalToolOptions.Create;
+ try
+ Tool.Title:='- Building lhelp -';
+ Tool.WorkingDirectory:=LHelpProjectDir;
+ Tool.Executable:=Lazbuild;
+ Tool.CmdLineParams:=QuotedStr(WS)+' '+QuotedStr(PCP)+' '+QuotedStr(LHelpProject);
+ Tool.Scanners.Add(SubToolFPC);
+ Tool.Scanners.Add(SubToolMake);
+ if RunExternalTool(Tool) then
+ Result:=mrOk;
+ finally
+ Tool.Free;
+ end;
+
+ {$ELSE}
Proc := TProcessUTF8.Create(nil);
{$if FPC_FULLVERSION<20604}
Proc.InheritHandles := false;
@@ -306,7 +330,6 @@ begin
IDEMessagesWindow.BeginBlock;
IDEMessagesWindow.AddMsg('- Building lhelp -','',0);
- LHelpProjectDir := ExtractFilePath(LHelpProject);
while Proc.Running do begin
while Proc.Output.NumBytesAvailable > 0 do
@@ -351,7 +374,8 @@ begin
IDEMessagesWindow.EndBlock;
- if Result = mrOK then
+ if Result = mrOK then ;
+ {$ENDIF}
end;
function TChmHelpViewer.GetLazBuildEXE(out ALazBuild: String): Boolean;