close #207, add a consoleProgram option

This commit is contained in:
Basile Burg 2017-11-30 11:58:47 +01:00
parent e1cd3bddce
commit d6420925f3
6 changed files with 76 additions and 45 deletions

View File

@ -709,7 +709,6 @@ var
nme: string;
i, j: integer;
begin
//
for i := 0 to processInfo.simpleCommands.Count-1 do
begin
nme := fSymStringExpander.expand(processInfo.simpleCommands[i]);
@ -723,6 +722,7 @@ begin
prc.Options:= [poUsePipes, poStderrToOutPut];
lst.Delete(0);
prc.Parameters.Assign(lst);
prc.XTermProgram:=consoleProgram;
prc.Execute;
lst.Clear;
processOutputToStrings(prc, lst);
@ -844,6 +844,7 @@ begin
ChDir(fRunnerOldCwd);
//
fRunner := TCEProcess.Create(nil);
fRunner.XTermProgram:=consoleProgram;
currentConfiguration.runOptions.setProcess(fRunner);
if runArgs.isNotEmpty then
begin
@ -872,7 +873,8 @@ begin
SetCurrentDirUTF8(cwd);
fRunner.CurrentDirectory := cwd;
end;
if poUsePipes in fRunner.Options then begin
if poUsePipes in fRunner.Options then
begin
fRunner.OnReadData := @runProcOutput;
fRunner.OnTerminate := @runProcOutput;
getprocInputHandler.addProcess(fRunner);

View File

@ -320,8 +320,10 @@ type
procedure leadingSpacesToTabs(var value: string; width: integer);
var
// supplementatl directories to find background tools
// additional directories to find background tools
additionalPath: string;
// terminal used under posix
consoleProgram: string;
implementation

View File

@ -28,10 +28,12 @@ type
fDepCheck: TDubDependencyCheck;
fOther: string;
fCompiler: DCompiler;
fShowConsole: boolean;
procedure setLinkMode(value: TDubLinkMode);
procedure setCompiler(value: DCompiler);
function getCompiler: DCompiler;
published
property showConsole: boolean read fShowConsole write fShowConsole default false;
property compiler: DCompiler read getCompiler write setCompiler;
property parallel: boolean read fParallel write fParallel;
property forceRebuild: boolean read fForceRebuild write fForceRebuild;
@ -647,10 +649,18 @@ begin
end;
chDir(fFilename.extractFilePath);
fDubProc.Executable := 'dub' + exeExt;
fDubProc.Options := fDubProc.Options + [poStderrToOutPut, poUsePipes];
if not dubBuildOptions.showConsole then
begin
fDubProc.Options := fDubProc.Options + [poStderrToOutPut, poUsePipes];
fDubProc.OnReadData:= @dubProcOutput;
fDubProc.ShowWindow := swoHIDE;
end
else
begin
fDubProc.Options := fDubProc.Options + [poWaitOnExit, poNewConsole];
end;
fDubProc.CurrentDirectory := fFilename.extractFilePath;
fDubProc.ShowWindow := swoHIDE;
fDubProc.OnReadData:= @dubProcOutput;
fDubProc.XTermProgram:=consoleProgram;
if not run then
begin
fDubProc.Parameters.Add('build');

View File

@ -1513,45 +1513,6 @@ object CEMainForm: TCEMainForm
000089898AFF000000000000000000000000FFFFFF00FFFFFF00
}
end
object MenuItem109: TMenuItem
Action = actFileNewClip
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000002E00000033000000330000
0033000000330000003300000033000000330000003300000030000000230000
003300000033000000330000003300000033C28722ECB88222FFB57F20FFB57F
1FFFB57F1FFFB57F1FFFB57F1FFFB57F20FFB68124FFB7852CF23B6088C04068
93FF3F6893FF406893FF3E6795FF33649BFFC38419FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB68124FF3F6A94FF568A
B0FF4C82ABFF4D82ABFF4B82ACFF407EB3FFC08013FFFFFFFFFFE6D6AEFFE6D6
AFFFE6D7B0FFE6D7B0FFE6D6AFFFE6D6AEFFFFFFFFFFB57F1FFF3F6A95FF6594
BBFF4C83AEFF4E83AEFF4C83B0FF4180B8FFC07F12FFFFFFFFFFE5D5ACFFE6D6
AFFFE6D6AFFFE6D6AFFFE6D6AFFFE5D5ACFFFFFFFFFFB47E1EFF3F6B95FF74A1
C3FF4F86B1FF5187B2FF4F87B4FF4585BCFFBF7E11FFFFFFFFFFF8F2E5FFF8F2
E6FFF8F3E7FFF8F3E7FFF8F2E6FFF8F2E5FFFFFFFFFFB47E1EFF3F6B97FF82AB
CCFF5088B5FF528AB6FF518AB8FF4788C0FFBF7E10FFFFFFFFFFF3ECD9FFF3EC
D9FFF3ECDAFFF3ECD9FFF3ECD9FFF3ECD8FFFFFFFFFFB47E1EFF3E6C97FF91B6
D5FF528BBAFF558CBBFF548DBDFF4A8BC6FFBF7E10FFFFFFFFFFF1E8CFFFF1E8
D0FFF1E8D0FFF0E7CFFFF0E6CDFFF0E7CDFFFFFFFFFFB47E1EFF3E6D97FF9FC1
DDFF538EBDFF5791BFFF5691C1FF4C90CAFFBE7D10FFFFFFFFFFEDE3C7FFEDE3
C8FFEDE3C7FFF6F0E1FFFFFFFFFFFFFFFFFFFFFFFFFFB47F1EFF3E6E99FFACCA
E4FF5691C1FF5A93C3FF5994C5FF5093CFFFBE7D0FFFFFFFFFFFEBDDBCFFEBDD
BDFFEBDCBBFFFFFFFFFFCFAB6DFFAC7005FFFFFFFFFFB58022FF3E6F9AFFB9D5
EAFF5794C6FF5B97C8FF5B98CAFF5298D5FFBE7D0FFFFFFFFFFFE7D8B1FFE7D8
B1FFE7D7B0FFFFFFFFFFAC7005FFFFFFFFFFECDCC4FFB78327AC3D709AFFC6DE
F0FF5997CBFF5E9ACDFF5E9BCFFF569BD9FFC17F10FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFECDCC4FFB58022A7B9872E003E729DFFD4E7
F8FF5997CBFF7F95A7FF99938EFF99938EFF988E63FFBC7F14FFB97C12FFBA7C
10FFBB7E14FFB87F1BFFB68020FFB78326ACB9872E00BB89320042759FFFADD2
F4FF5997CBFFA7A19BFFD6CBC5FFD6CBC5FFD6CBC5FFA7A19BFF5997CBFFA5D4
FFFF3173B0FFC7892100BE892C00BB893100BB8A3200BB8A3300477AA3B03E77
A4FF3E77A4FF99938EFFE5DDD8FFE5DDD8FFE5DDD8FF99938EFF3E77A4FF3C77
A6FF4179AAAF3879B700C48B2A00BD8A3100BB8A3300BB8A3300487BA500417A
A700908B8700F4F2F00099938EFF99938EFF99938EFFF2F0EE00908B8700417A
A700467BA7003D7AB200C68C2700BD8A3100BB8A3300BB8A3300
}
end
object MenuItem24: TMenuItem
Action = actFileNewRun
Bitmap.Data = {
@ -1591,6 +1552,45 @@ object CEMainForm: TCEMainForm
07FFB47A07FFB47A08FFB57C0AFFB67F0FFFB88114FFBA851B23
}
end
object MenuItem109: TMenuItem
Action = actFileNewClip
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000002E00000033000000330000
0033000000330000003300000033000000330000003300000030000000230000
003300000033000000330000003300000033C28722ECB88222FFB57F20FFB57F
1FFFB57F1FFFB57F1FFFB57F1FFFB57F20FFB68124FFB7852CF23B6088C04068
93FF3F6893FF406893FF3E6795FF33649BFFC38419FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB68124FF3F6A94FF568A
B0FF4C82ABFF4D82ABFF4B82ACFF407EB3FFC08013FFFFFFFFFFE6D6AEFFE6D6
AFFFE6D7B0FFE6D7B0FFE6D6AFFFE6D6AEFFFFFFFFFFB57F1FFF3F6A95FF6594
BBFF4C83AEFF4E83AEFF4C83B0FF4180B8FFC07F12FFFFFFFFFFE5D5ACFFE6D6
AFFFE6D6AFFFE6D6AFFFE6D6AFFFE5D5ACFFFFFFFFFFB47E1EFF3F6B95FF74A1
C3FF4F86B1FF5187B2FF4F87B4FF4585BCFFBF7E11FFFFFFFFFFF8F2E5FFF8F2
E6FFF8F3E7FFF8F3E7FFF8F2E6FFF8F2E5FFFFFFFFFFB47E1EFF3F6B97FF82AB
CCFF5088B5FF528AB6FF518AB8FF4788C0FFBF7E10FFFFFFFFFFF3ECD9FFF3EC
D9FFF3ECDAFFF3ECD9FFF3ECD9FFF3ECD8FFFFFFFFFFB47E1EFF3E6C97FF91B6
D5FF528BBAFF558CBBFF548DBDFF4A8BC6FFBF7E10FFFFFFFFFFF1E8CFFFF1E8
D0FFF1E8D0FFF0E7CFFFF0E6CDFFF0E7CDFFFFFFFFFFB47E1EFF3E6D97FF9FC1
DDFF538EBDFF5791BFFF5691C1FF4C90CAFFBE7D10FFFFFFFFFFEDE3C7FFEDE3
C8FFEDE3C7FFF6F0E1FFFFFFFFFFFFFFFFFFFFFFFFFFB47F1EFF3E6E99FFACCA
E4FF5691C1FF5A93C3FF5994C5FF5093CFFFBE7D0FFFFFFFFFFFEBDDBCFFEBDD
BDFFEBDCBBFFFFFFFFFFCFAB6DFFAC7005FFFFFFFFFFB58022FF3E6F9AFFB9D5
EAFF5794C6FF5B97C8FF5B98CAFF5298D5FFBE7D0FFFFFFFFFFFE7D8B1FFE7D8
B1FFE7D7B0FFFFFFFFFFAC7005FFFFFFFFFFECDCC4FFB78327AC3D709AFFC6DE
F0FF5997CBFF5E9ACDFF5E9BCFFF569BD9FFC17F10FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFECDCC4FFB58022A7B9872E003E729DFFD4E7
F8FF5997CBFF7F95A7FF99938EFF99938EFF988E63FFBC7F14FFB97C12FFBA7C
10FFBB7E14FFB87F1BFFB68020FFB78326ACB9872E00BB89320042759FFFADD2
F4FF5997CBFFA7A19BFFD6CBC5FFD6CBC5FFD6CBC5FFA7A19BFF5997CBFFA5D4
FFFF3173B0FFC7892100BE892C00BB893100BB8A3200BB8A3300477AA3B03E77
A4FF3E77A4FF99938EFFE5DDD8FFE5DDD8FFE5DDD8FF99938EFF3E77A4FF3C77
A6FF4179AAAF3879B700C48B2A00BD8A3100BB8A3300BB8A3300487BA500417A
A700908B8700F4F2F00099938EFF99938EFF99938EFFF2F0EE00908B8700417A
A700467BA7003D7AB200C68C2700BD8A3100BB8A3300BB8A3300
}
end
object MenuItem97: TMenuItem
Action = actFileNewDubScript
Bitmap.Data = {

View File

@ -569,6 +569,8 @@ type
fSplitterScrollSpeed: byte;
fAutoCheckUpdates: boolean;
fShowBuildDuration: boolean;
function getConsoleProgram: string;
procedure setConsoleProgram(const value: string);
function getAdditionalPATH: string;
procedure setAdditionalPATH(const value: string);
function getNativeProjecCompiler: DCompiler;
@ -577,6 +579,7 @@ type
published
property additionalPATH: string read getAdditionalPATH write setAdditionalPath;
property autoCheckUpdates: boolean read fAutoCheckUpdates write fAutoCheckUpdates;
property consoleProgram: string read getConsoleProgram write setConsoleProgram;
property coverModuleTests: boolean read fCovModUt write fCovModUt;
property floatingWidgetOnTop: boolean read fFloatingWidgetOnTop write fFloatingWidgetOnTop;
property reloadLastDocuments: boolean read fReloadLastDocuments write fReloadLastDocuments;
@ -815,6 +818,17 @@ begin
exit(ce_common.additionalPath);
end;
function TCEApplicationOptionsBase.getConsoleProgram: string;
begin
result := ce_common.consoleProgram;
end;
procedure TCEApplicationOptionsBase.setConsoleProgram(const value: string);
begin
if exeFullName(value).fileExists then
ce_common.consoleProgram:=value;
end;
procedure TCEApplicationOptionsBase.setAdditionalPath(const value: string);
var
str: TStringList;
@ -2792,6 +2806,7 @@ begin
{$IFNDEF WINDOWS}
fRunProc.Options := fRunProc.Options + [poNewConsole];
{$ENDIF}
fRunProc.XTermProgram:=consoleProgram;
end;
lst := TStringList.Create;
try
@ -3011,6 +3026,7 @@ begin
fRunProc.ShowWindow := swoHIDE;
fRunProc.OnReadData := @asyncprocOutput;
fRunProc.OnTerminate:= @asyncprocTerminate;
fRunProc.XTermProgram:=consoleProgram;
getprocInputHandler.addProcess(fRunProc);
end
else

View File

@ -209,6 +209,7 @@ begin
fProcess.Executable := exeFullName(fSymStringExpander.expand(fExecutable));
fProcess.ShowWindow := fShowWin;
fProcess.CurrentDirectory := fSymStringExpander.expand(fWorkingDir);
fProcess.XTermProgram:=consoleProgram;
for prm in fParameters do if not isStringDisabled(prm) then
fProcess.Parameters.AddText(fSymStringExpander.expand(prm));
if fQueryParams then