Skip to content

Commit 26c14f0

Browse files
committed
Version 6.3
Added parallel compilation and bug fixes.
1 parent 33f1eac commit 26c14f0

13 files changed

+266
-17
lines changed

Lang/English.lng

+2
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,7 @@ Ver=1
607607
43002=C++ compiler
608608
43003=Compiler:
609609
43004=Output
610+
43005=Make
610611

611612

612613
44001=Support all ANSI standard C programs (-ansi)
@@ -1145,6 +1146,7 @@ Ver=1
11451146
73005=Language standard (-std)
11461147
73006=Compile with the following pointer width (-mx)
11471148
73007=Optimize less, while maintaining full compatibility (-mtune)
1149+
73008=Concurrent compilation processes (-j)
11481150

11491151

11501152
74001=Compiler:

NEWS.txt

+11
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
Version 6.3 - 30 January 2021
2+
3+
- Added: Parallel compilation enabled by default for release builds through MAKE Jobs.
4+
- Added: 3 Buttons for setting up custom shell command line tabs.
5+
- Updated: Code completion and menues for dark themes.
6+
- Updated: CTRL-TAB editor tab selection wrapping.
7+
- Fixed: Make clean file deletion issue.
8+
- Fixed: Status bar not showing all text.
9+
- Fixed: Debug/CPU Window hex column issue.
10+
- Fixed: Closing tabs in editor side by side view.
11+
112
Version 6.2 - 13 November 2020
213

314
- Added: 5 new UI styles. Windows 10 Black Pearl, Glossy, Calypso, Flat UI Light, Material Patterns Blue

Source/Compiler.pas

+24-2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ TCompiler = class
8989
protected
9090
fCompileParams: String;
9191
fCppCompileParams: String;
92+
fMakeParams: String;
9293
fLibrariesParams: String;
9394
fIncludesParams: String;
9495
fCppIncludesParams: String;
@@ -523,9 +524,11 @@ procedure TCompiler.GetCompileParams;
523524
if fCheckSyntax then begin
524525
fCompileParams := '-fsyntax-only';
525526
fCppCompileParams := '-fsyntax-only';
527+
fMakeParams := '';
526528
end else begin
527529
fCompileParams := '';
528530
fCppCompileParams := '';
531+
fMakeParams := '';
529532
end;
530533

531534
// Walk all options
@@ -563,6 +566,24 @@ procedure TCompiler.GetCompileParams;
563566
fCppCompileParams := fCppCompileParams + ' ' + option.Setting;
564567
end;
565568
end;
569+
if (not option.IsC) AND (not option.IsCpp) AND (not option.IsLinker) then begin
570+
if option.Setting='-j' then
571+
begin
572+
if Assigned(option.Choices) then begin
573+
if Assigned(fProject) then
574+
val := fProject.Options.CompilerOptions[I]
575+
else
576+
val := option.Value;
577+
if (val > 0) and (val < option.Choices.Count) then
578+
fMakeParams := fMakeParams + ' ' + option.Setting +
579+
option.Choices.Values[option.Choices.Names[val]];
580+
end else if (Assigned(fProject) and (fProject.Options.CompilerOptions[I] = 1)) or (not
581+
Assigned(fProject)) then begin
582+
fMakeParams := fMakeParams + ' ' + option.Setting + option.Choices.Values[option.Choices.Names[val]];
583+
end;
584+
end;
585+
end;
586+
566587
end;
567588
end;
568589

@@ -586,6 +607,7 @@ procedure TCompiler.GetCompileParams;
586607

587608
fCompileParams := Trim(ParseMacros(fCompileParams));
588609
fCppCompileParams := Trim(ParseMacros(fCppCompileParams));
610+
fMakeParams := Trim(ParseMacros(fMakeParams));
589611
end;
590612

591613
procedure TCompiler.CheckSyntax;
@@ -606,7 +628,7 @@ procedure TCompiler.Compile;
606628
// gcc, input, output, compileparams, includeparams, librariesparams
607629
cSourceCmdLine = '%s "%s" -o "%s" %s %s %s';
608630
// make, makefile
609-
cMakeLine = '%s -f "%s" all';
631+
cMakeLine = '%s %s -f "%s" all';
610632
var
611633
cmdline: String;
612634
s: String;
@@ -713,7 +735,7 @@ procedure TCompiler.Compile;
713735
DoLogEntry('');
714736

715737
BuildMakeFile;
716-
cmdline := Format(cMakeLine, [fCompilerSet.makeName, fMakeFile]);
738+
cmdline := Format(cMakeLine, [fCompilerSet.makeName, fMakeParams, fMakeFile]);
717739

718740
DoLogEntry(Lang[ID_LOG_PROCESSINGMAKE]);
719741
DoLogEntry('--------');

Source/LangIDs.inc

+6-2
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,7 @@ const
650650
ID_COPT_GRP_CPP = 43002;
651651
ID_COPT_GRP_COMP = 43003;
652652
ID_COPT_GRP_OUTPUT = 43004;
653+
ID_COPT_GRP_MAKE = 43005;
653654

654655
// free to 725 for new groups
655656
ID_COPT_ANSIC = 44001;
@@ -1191,7 +1192,7 @@ const
11911192
ID_POPT_RESETPROJECTCOMPILER = 72030;
11921193
ID_POPT_LANGUAGEDEP = 72031;
11931194
ID_POPT_FILES = 72032;
1194-
1195+
11951196
// New compiler options
11961197
ID_COPT_STRIP = 73001;
11971198
ID_COPT_ARCH = 73002;
@@ -1201,6 +1202,9 @@ const
12011202
ID_COPT_PTRWIDTH = 73006;
12021203
ID_COPT_TUNE = 73007;
12031204

1205+
// New make option
1206+
ID_MAKEOPT_JOBS = 73008;
1207+
12041208
// Compile progress window
12051209
ID_CMPRPG_COMPILER = 74001;
12061210
ID_CMPPRG_STATUS = 74002;
@@ -1250,7 +1254,7 @@ const
12501254
ID_LANGFORM_WAIT = 76019;
12511255
ID_LANGFORM_SAVING = 76020;
12521256
ID_LANGFORM_DONEPARSINGSAVING = 76021;
1253-
1257+
12541258
ID_LOAD_COMPILERSET = 77001;
12551259
ID_LOAD_FILEASSOC = 77002;
12561260
ID_LOAD_INITCLASSBROWSER = 77003;

Source/Version.pas

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ interface
3232

3333
// exe properties
3434
DEVCPP = 'Embarcadero Dev-C++';
35-
DEVCPP_VERSION = '6.2';
35+
DEVCPP_VERSION = '6.3';
3636

3737
// delimiters
3838
DEV_INTERNAL_OPEN = '$__DEV_INTERNAL_OPEN';

Source/devCFG.pas

+33
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ interface
3434
TCompilerOption = record
3535
Name: integer; // language table index of "Generate debugging info"
3636
Section: integer; // language table index of "C options"
37+
IsMake: boolean;
3738
IsC: boolean;
3839
IsCpp: boolean; // True (C++ option?) - can be both C and C++ option...
3940
IsLinker: boolean; // Is it a linker param
@@ -267,6 +268,9 @@ TdevFormatter = class(TPersistent)
267268
// List of programs to use for unknown file extensions
268269
TdevExternalPrograms = class(TPersistent)
269270
private
271+
fGenericCMD1: String;
272+
fGenericCMD2: String;
273+
fGenericCMD3: String;
270274
fDummy: boolean;
271275
fPrograms: TStrings;
272276
function GetProgramName(Index: integer): String;
@@ -283,6 +287,9 @@ TdevExternalPrograms = class(TPersistent)
283287
published
284288
property Dummy: boolean read fDummy write fDummy;
285289
property Programs: TStrings read fPrograms write fPrograms;
290+
property GenericCMD1: String read fGenericCMD1 write fGenericCMD1;
291+
property GenericCMD2: String read fGenericCMD2 write fGenericCMD2;
292+
property GenericCMD3: String read fGenericCMD3 write fGenericCMD3;
286293
end;
287294

288295
// global directories
@@ -1499,6 +1506,16 @@ procedure TdevCompilerSet.SetOptions;
14991506
AddOption(ID_COPT_WIN32, ID_COPT_LINKERTAB, True, True, True, 0, '-mwindows', nil);
15001507
AddOption(ID_COPT_STRIP, ID_COPT_LINKERTAB, False, False, True, 0, '-s', nil);
15011508

1509+
// Make
1510+
sl := TStringList.Create;
1511+
sl.Add(''); // /!\ Must contain a starting empty value in order to do not have always to pass the parameter
1512+
sl.Add('1 Thread=1');
1513+
for var CPUNumber := 2 to System.CPUCount do begin
1514+
sl.Add(CPUNumber.ToString + ' Threads=' + CPUNumber.ToString);
1515+
end;
1516+
sl.Add('Auto=');
1517+
AddOption(ID_MAKEOPT_JOBS, ID_COPT_GRP_MAKE, False, False, False, 0, '-j', sl);
1518+
15021519
// Output
15031520
AddOption(ID_COPT_MEM, ID_COPT_GRP_OUTPUT, True, True, False, 0, '-fverbose-asm', nil);
15041521
AddOption(ID_COPT_ASSEMBLY, ID_COPT_GRP_OUTPUT, True, True, False, 0, '-S', nil);
@@ -2205,20 +2222,26 @@ procedure TdevCompilerSets.FindSets;
22052222
BaseName := BaseSet.Name;
22062223
with BaseSet do begin
22072224
Name := BaseName + ' 64-bit Release';
2225+
if FindOption('-j', option, index) then
2226+
SetOption(option, System.CPUCount);
22082227
end;
22092228

22102229
// Debug profile
22112230
with AddSet(BaseSet) do begin
22122231
Name := BaseName + ' 64-bit Debug';
22132232
if FindOption('-g3', option, index) then
22142233
SetOption(option, 1);
2234+
if FindOption('-j', option, index) then
2235+
SetOption(option, 0);
22152236
end;
22162237

22172238
// Profiling profile
22182239
with AddSet(BaseSet) do begin
22192240
Name := BaseName + ' 64-bit Profiling';
22202241
if FindOption('-pg', option, index) then
22212242
SetOption(option, 1);
2243+
if FindOption('-j', option, index) then
2244+
SetOption(option, 0);
22222245
end;
22232246

22242247
// Default, 32bit release profile
@@ -2235,20 +2258,26 @@ procedure TdevCompilerSets.FindSets;
22352258
fLibDir[i] := fLibDir[i] + '32'
22362259
else
22372260
fLibDir.Delete(i);
2261+
if FindOption('-j', option, index) then
2262+
SetOption(option, System.CPUCount);
22382263
end;
22392264

22402265
// Debug profile
22412266
with AddSet(BaseSet) do begin
22422267
Name := BaseName + ' 32-bit Debug';
22432268
if FindOption('-g3', option, index) then
22442269
SetOption(option, 1);
2270+
if FindOption('-j', option, index) then
2271+
SetOption(option, 0);
22452272
end;
22462273

22472274
// Profiling profile
22482275
with AddSet(BaseSet) do begin
22492276
Name := BaseName + ' 32-bit Profiling';
22502277
if FindOption('-pg', option, index) then
22512278
SetOption(option, 1);
2279+
if FindOption('-j', option, index) then
2280+
SetOption(option, 0);
22522281
end;
22532282
end;
22542283
end;
@@ -2822,6 +2851,10 @@ procedure TdevExternalPrograms.SaveSettings;
28222851

28232852
procedure TdevExternalPrograms.SetToDefaults;
28242853
begin
2854+
fGenericCMD1 := '';
2855+
fGenericCMD2 := '';
2856+
fGenericCMD3 := '';
2857+
28252858
inherited;
28262859
end;
28272860

Source/main.dfm

+71-4
Original file line numberDiff line numberDiff line change
@@ -573,23 +573,23 @@ object MainForm: TMainForm
573573
Style = tsButtons
574574
TabOrder = 0
575575
end
576-
object Panel1: TPanel
576+
object ConsolePanel: TPanel
577577
Left = 0
578578
Top = 0
579579
Width = 33
580580
Height = 138
581581
Align = alLeft
582582
BevelOuter = bvNone
583583
TabOrder = 1
584-
object SpeedButton5: TSpeedButton
584+
object CMDSpeedButton: TSpeedButton
585585
Left = 0
586586
Top = 0
587587
Width = 33
588588
Height = 33
589589
Action = actCMD
590590
Align = alTop
591591
end
592-
object SpeedButton6: TSpeedButton
592+
object PSSpeedButton: TSpeedButton
593593
Left = 0
594594
Top = 33
595595
Width = 33
@@ -599,6 +599,41 @@ object MainForm: TMainForm
599599
ExplicitLeft = 7
600600
ExplicitTop = 64
601601
end
602+
object G1SpeedButton: TSpeedButton
603+
Tag = 1
604+
Left = 0
605+
Top = 66
606+
Width = 33
607+
Height = 33
608+
Action = actGeneric1CMD
609+
Align = alTop
610+
PopupMenu = GenericCMDPopupMenu
611+
ExplicitLeft = 7
612+
ExplicitTop = 105
613+
end
614+
object G2SpeedButton: TSpeedButton
615+
Tag = 2
616+
Left = 0
617+
Top = 99
618+
Width = 33
619+
Height = 33
620+
Action = actGeneric2CMD
621+
Align = alTop
622+
PopupMenu = GenericCMDPopupMenu
623+
ExplicitLeft = -6
624+
ExplicitTop = 92
625+
end
626+
object G3SpeedButton: TSpeedButton
627+
Tag = 3
628+
Left = 0
629+
Top = 132
630+
Width = 33
631+
Height = 33
632+
Action = actGeneric3CMD
633+
Align = alTop
634+
PopupMenu = GenericCMDPopupMenu
635+
ExplicitTop = 131
636+
end
602637
end
603638
end
604639
object CloseSheet: TTabSheet
@@ -1621,7 +1656,7 @@ object MainForm: TMainForm
16211656
Top = 309
16221657
Width = 18
16231658
Height = 16
1624-
Caption = '6.2'
1659+
Caption = '6.3'
16251660
Font.Charset = DEFAULT_CHARSET
16261661
Font.Color = clRed
16271662
Font.Height = -13
@@ -6427,6 +6462,24 @@ object MainForm: TMainForm
64276462
Caption = 'Close'
64286463
OnExecute = actConsoleCloseExecute
64296464
end
6465+
object actGeneric1CMD: TAction
6466+
Tag = 1
6467+
Caption = '$1'
6468+
OnExecute = actGeneric1CMDExecute
6469+
end
6470+
object actGeneric2CMD: TAction
6471+
Tag = 2
6472+
Caption = '$2'
6473+
OnExecute = actGeneric2CMDExecute
6474+
end
6475+
object actGeneric3CMD: TAction
6476+
Tag = 3
6477+
Caption = '$3'
6478+
OnExecute = actGeneric3CMDExecute
6479+
end
6480+
object actGenericSet: TAction
6481+
Caption = 'Set'
6482+
end
64306483
end
64316484
object MessagePopup: TPopupMenu
64326485
Left = 11
@@ -6613,4 +6666,18 @@ object MainForm: TMainForm
66136666
Action = actConsoleClose
66146667
end
66156668
end
6669+
object OpenConsoleDialog: TOpenDialog
6670+
DefaultExt = 'exe'
6671+
Filter = 'Executables (*.exe)|*.EXE'
6672+
Left = 60
6673+
Top = 275
6674+
end
6675+
object GenericCMDPopupMenu: TPopupMenu
6676+
Left = 76
6677+
Top = 379
6678+
object SetCMDMNU: TMenuItem
6679+
Caption = 'Set'
6680+
OnClick = SetCMDMNUClick
6681+
end
6682+
end
66166683
end

0 commit comments

Comments
 (0)