project runner: uses new TCEProcess

see b911e10e93
This commit is contained in:
Basile Burg 2015-07-15 14:47:30 +02:00
parent 1e4650dccc
commit 207f0ec066
2 changed files with 19 additions and 7 deletions

View File

@ -5,7 +5,7 @@ unit ce_dmdwrap;
interface interface
uses uses
classes, sysutils, process, asyncprocess, ce_common, ce_inspectors; classes, sysutils, process, asyncprocess, ce_common, ce_inspectors, ce_processes;
(* (*
@ -276,6 +276,7 @@ type
procedure setProcess(var aProcess: TProcess); procedure setProcess(var aProcess: TProcess);
procedure setProcess(var aProcess: TAsyncProcess); procedure setProcess(var aProcess: TAsyncProcess);
procedure setProcess(var aProcess: TCheckedAsyncProcess); procedure setProcess(var aProcess: TCheckedAsyncProcess);
procedure setProcess(var aProcess: TCEProcess);
end; end;
(***************************************************************************** (*****************************************************************************
@ -1031,6 +1032,17 @@ begin
aProcess.StartupOptions := aProcess.StartupOptions + [suoUseShowWindow]; aProcess.StartupOptions := aProcess.StartupOptions + [suoUseShowWindow];
end; end;
procedure TCustomProcOptions.setProcess(var aProcess: TCEProcess);
begin
aProcess.Parameters.Clear;
aProcess.Parameters.AddText(symbolExpander.get(Parameters.Text));
aProcess.Executable := fExecutable;
aProcess.ShowWindow := fShowWin;
aProcess.Options := fOptions;
aProcess.CurrentDirectory := fWorkDir;
aProcess.StartupOptions := aProcess.StartupOptions + [suoUseShowWindow];
end;
procedure TCustomProcOptions.setExecutable(const aValue: TCEFilename); procedure TCustomProcOptions.setExecutable(const aValue: TCEFilename);
begin begin
if fExecutable = aValue then exit; if fExecutable = aValue then exit;

View File

@ -9,7 +9,7 @@ uses
LclProc, LclProc,
{$ENDIF} {$ENDIF}
Classes, SysUtils, process, strUtils, ce_common, ce_writableComponent, Classes, SysUtils, process, strUtils, ce_common, ce_writableComponent,
ce_dmdwrap, ce_observer, ce_interfaces; ce_dmdwrap, ce_observer, ce_interfaces, ce_processes;
type type
@ -33,7 +33,7 @@ type
fConfIx: Integer; fConfIx: Integer;
fUpdateCount: NativeInt; fUpdateCount: NativeInt;
fProjectSubject: TCEProjectSubject; fProjectSubject: TCEProjectSubject;
fRunner: TCheckedAsyncProcess; fRunner: TCEProcess;
fOutputFilename: string; fOutputFilename: string;
fCanBeRun: boolean; fCanBeRun: boolean;
procedure updateOutFilename; procedure updateOutFilename;
@ -693,7 +693,7 @@ begin
result := false; result := false;
killProcess(fRunner); killProcess(fRunner);
// //
fRunner := TCheckedAsyncProcess.Create(nil); // fRunner can use the input process widget. fRunner := TCEProcess.Create(nil); // fRunner can use the input process widget.
currentConfiguration.runOptions.setProcess(fRunner); currentConfiguration.runOptions.setProcess(fRunner);
if runArgs <> '' then if runArgs <> '' then
begin begin
@ -730,16 +730,16 @@ end;
procedure TCENativeProject.runProcOutput(sender: TObject); procedure TCENativeProject.runProcOutput(sender: TObject);
var var
proc: TProcess; proc: TCEProcess;
lst: TStringList; lst: TStringList;
str: string; str: string;
msgs: ICEMessagesDisplay; msgs: ICEMessagesDisplay;
begin begin
proc := TProcess(sender); proc := TCEProcess(sender);
lst := TStringList.Create; lst := TStringList.Create;
msgs := getMessageDisplay; msgs := getMessageDisplay;
try try
processOutputToStrings(proc, lst); proc.getFullLines(lst);
for str in lst do for str in lst do
msgs.message(str, Self, amcProj, amkBub); msgs.message(str, Self, amcProj, amkBub);
finally finally