diff --git a/.gitattributes b/.gitattributes
index 1fd62154d9..d76e446cde 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3399,6 +3399,9 @@ ide/frames/codetools_wordpolicy_options.pas svneol=native#text/pascal
ide/frames/compiler_codegen_options.lfm svneol=native#text/plain
ide/frames/compiler_codegen_options.lrs svneol=native#text/pascal
ide/frames/compiler_codegen_options.pas svneol=native#text/pascal
+ide/frames/compiler_compilation_options.lfm svneol=native#text/plain
+ide/frames/compiler_compilation_options.lrs svneol=native#text/pascal
+ide/frames/compiler_compilation_options.pas svneol=native#text/pascal
ide/frames/compiler_inherited_options.lfm svneol=native#text/plain
ide/frames/compiler_inherited_options.lrs svneol=native#text/pascal
ide/frames/compiler_inherited_options.pas svneol=native#text/pascal
diff --git a/ide/frames/compiler_compilation_options.lfm b/ide/frames/compiler_compilation_options.lfm
new file mode 100644
index 0000000000..0b902cdbe3
--- /dev/null
+++ b/ide/frames/compiler_compilation_options.lfm
@@ -0,0 +1,389 @@
+inherited CompilerCompilationOptionsFrame: TCompilerCompilationOptionsFrame
+ Height = 539
+ Width = 599
+ ClientHeight = 539
+ ClientWidth = 599
+ DesignLeft = 481
+ DesignTop = 150
+ object chkCreateMakefile: TCheckBox[0]
+ AnchorSideLeft.Control = Owner
+ AnchorSideTop.Control = Owner
+ Left = 0
+ Height = 17
+ Top = 0
+ Width = 106
+ Caption = 'chkCreateMakefile'
+ TabOrder = 0
+ end
+ object ExecuteAfterGroupBox: TGroupBox[1]
+ AnchorSideLeft.Control = Owner
+ AnchorSideTop.Control = grpCompiler
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = Owner
+ AnchorSideRight.Side = asrBottom
+ Left = 0
+ Height = 97
+ Top = 206
+ Width = 599
+ Anchors = [akTop, akLeft, akRight]
+ AutoSize = True
+ BorderSpacing.Top = 6
+ Caption = 'ExecuteAfterGroupBox'
+ ClientHeight = 79
+ ClientWidth = 595
+ TabOrder = 1
+ object lblRunIfExecAfter: TLabel
+ AnchorSideLeft.Control = ExecuteAfterGroupBox
+ AnchorSideTop.Control = ExecuteAfterGroupBox
+ Left = 6
+ Height = 14
+ Top = 6
+ Width = 86
+ BorderSpacing.Around = 6
+ Caption = 'lblRunIfExecAfter'
+ ParentColor = False
+ end
+ object ExecuteAfterCommandLabel: TLabel
+ AnchorSideLeft.Control = ExecuteAfterGroupBox
+ AnchorSideTop.Control = ExecuteAfterCommandEdit
+ AnchorSideTop.Side = asrCenter
+ Left = 6
+ Height = 14
+ Top = 32
+ Width = 137
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteAfterCommandLabel'
+ ParentColor = False
+ end
+ object chkExecAfterCompile: TCheckBox
+ AnchorSideLeft.Control = lblRunIfExecAfter
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteAfterGroupBox
+ Left = 122
+ Height = 17
+ Top = 6
+ Width = 119
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecAfterCompile'
+ TabOrder = 0
+ end
+ object chkExecAfterBuild: TCheckBox
+ AnchorSideLeft.Control = chkExecAfterCompile
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteAfterGroupBox
+ Left = 271
+ Height = 17
+ Top = 6
+ Width = 104
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecAfterBuild'
+ TabOrder = 1
+ end
+ object chkExecAfterRun: TCheckBox
+ AnchorSideLeft.Control = chkExecAfterBuild
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteAfterGroupBox
+ Left = 405
+ Height = 17
+ Top = 6
+ Width = 101
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecAfterRun'
+ TabOrder = 2
+ end
+ object ExecuteAfterCommandEdit: TEdit
+ AnchorSideLeft.Control = ExecuteAfterCommandLabel
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = chkExecAfterCompile
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = ExecuteAfterGroupBox
+ AnchorSideRight.Side = asrBottom
+ Left = 161
+ Height = 21
+ Top = 29
+ Width = 428
+ Anchors = [akTop, akLeft, akRight]
+ BorderSpacing.Left = 12
+ BorderSpacing.Around = 6
+ TabOrder = 3
+ Text = 'ExecuteAfterCommandEdit'
+ end
+ object ExecuteAfterScanFPCCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteAfterScanMakeCheckBox
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteAfterCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 213
+ Height = 17
+ Top = 56
+ Width = 171
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteAfterScanFPCCheckBox'
+ TabOrder = 4
+ end
+ object ExecuteAfterScanMakeCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteAfterGroupBox
+ AnchorSideTop.Control = ExecuteAfterCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 6
+ Height = 17
+ Top = 56
+ Width = 177
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteAfterScanMakeCheckBox'
+ TabOrder = 5
+ end
+ object ExecuteAfterShowAllCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteAfterScanFPCCheckBox
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteAfterCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 414
+ Height = 17
+ Top = 56
+ Width = 166
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteAfterShowAllCheckBox'
+ TabOrder = 6
+ end
+ end
+ object grpCompiler: TGroupBox[2]
+ AnchorSideLeft.Control = Owner
+ AnchorSideTop.Control = ExecuteBeforeGroupBox
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = Owner
+ AnchorSideRight.Side = asrBottom
+ Left = 0
+ Height = 74
+ Top = 126
+ Width = 599
+ Anchors = [akTop, akLeft, akRight]
+ AutoSize = True
+ BorderSpacing.Top = 6
+ Caption = 'grpCompiler'
+ ClientHeight = 56
+ ClientWidth = 595
+ TabOrder = 2
+ object lblRunIfCompiler: TLabel
+ AnchorSideLeft.Control = grpCompiler
+ AnchorSideTop.Control = grpCompiler
+ Left = 6
+ Height = 14
+ Top = 6
+ Width = 79
+ BorderSpacing.Around = 6
+ Caption = 'lblRunIfCompiler'
+ ParentColor = False
+ end
+ object lblCompiler: TLabel
+ AnchorSideLeft.Control = grpCompiler
+ AnchorSideTop.Control = edtCompiler
+ AnchorSideTop.Side = asrCenter
+ Left = 6
+ Height = 14
+ Top = 32
+ Width = 52
+ BorderSpacing.Around = 6
+ Caption = 'lblCompiler'
+ ParentColor = False
+ end
+ object chkCompilerCompile: TCheckBox
+ AnchorSideLeft.Control = lblRunIfCompiler
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = grpCompiler
+ Left = 115
+ Height = 17
+ Top = 6
+ Width = 112
+ BorderSpacing.Left = 30
+ BorderSpacing.Top = 6
+ Caption = 'chkCompilerCompile'
+ TabOrder = 0
+ end
+ object chkCompilerBuild: TCheckBox
+ AnchorSideLeft.Control = chkCompilerCompile
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = grpCompiler
+ Left = 257
+ Height = 17
+ Top = 6
+ Width = 97
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkCompilerBuild'
+ TabOrder = 1
+ end
+ object chkCompilerRun: TCheckBox
+ AnchorSideLeft.Control = chkCompilerBuild
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = grpCompiler
+ Left = 384
+ Height = 17
+ Top = 6
+ Width = 94
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkCompilerRun'
+ TabOrder = 2
+ end
+ object edtCompiler: TEdit
+ AnchorSideLeft.Control = lblCompiler
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = chkCompilerCompile
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = grpCompiler
+ AnchorSideRight.Side = asrBottom
+ Left = 76
+ Height = 21
+ Top = 29
+ Width = 513
+ Anchors = [akTop, akLeft, akRight]
+ BorderSpacing.Left = 12
+ BorderSpacing.Around = 6
+ TabOrder = 3
+ Text = 'edtCompiler'
+ end
+ end
+ object ExecuteBeforeGroupBox: TGroupBox[3]
+ AnchorSideLeft.Control = Owner
+ AnchorSideTop.Control = chkCreateMakefile
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = Owner
+ AnchorSideRight.Side = asrBottom
+ Left = 0
+ Height = 97
+ Top = 23
+ Width = 599
+ Anchors = [akTop, akLeft, akRight]
+ AutoSize = True
+ BorderSpacing.Top = 6
+ Caption = 'ExecuteBeforeGroupBox'
+ ClientHeight = 79
+ ClientWidth = 595
+ TabOrder = 3
+ object lblRunIfExecBefore: TLabel
+ AnchorSideLeft.Control = ExecuteBeforeGroupBox
+ AnchorSideTop.Control = ExecuteBeforeGroupBox
+ Left = 6
+ Height = 14
+ Top = 6
+ Width = 93
+ BorderSpacing.Around = 6
+ Caption = 'lblRunIfExecBefore'
+ ParentColor = False
+ end
+ object ExecuteBeforeCommandLabel: TLabel
+ AnchorSideLeft.Control = ExecuteBeforeGroupBox
+ AnchorSideTop.Control = ExecuteBeforeCommandEdit
+ AnchorSideTop.Side = asrCenter
+ Left = 6
+ Height = 14
+ Top = 32
+ Width = 144
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteBeforeCommandLabel'
+ ParentColor = False
+ end
+ object chkExecBeforeCompile: TCheckBox
+ AnchorSideLeft.Control = lblRunIfExecBefore
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteBeforeGroupBox
+ Left = 129
+ Height = 17
+ Top = 6
+ Width = 126
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecBeforeCompile'
+ TabOrder = 0
+ end
+ object chkExecBeforeBuild: TCheckBox
+ AnchorSideLeft.Control = chkExecBeforeCompile
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteBeforeGroupBox
+ Left = 285
+ Height = 17
+ Top = 6
+ Width = 111
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecBeforeBuild'
+ TabOrder = 1
+ end
+ object chkExecBeforeRun: TCheckBox
+ AnchorSideLeft.Control = chkExecBeforeBuild
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteBeforeGroupBox
+ Left = 426
+ Height = 17
+ Top = 6
+ Width = 108
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'chkExecBeforeRun'
+ TabOrder = 2
+ end
+ object ExecuteBeforeCommandEdit: TEdit
+ AnchorSideLeft.Control = ExecuteBeforeCommandLabel
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = chkExecBeforeCompile
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = ExecuteBeforeGroupBox
+ AnchorSideRight.Side = asrBottom
+ Left = 168
+ Height = 21
+ Top = 29
+ Width = 421
+ Anchors = [akTop, akLeft, akRight]
+ BorderSpacing.Left = 12
+ BorderSpacing.Around = 6
+ TabOrder = 3
+ Text = 'ExecuteBeforeCommandEdit'
+ end
+ object ExecuteBeforeScanFPCCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteBeforeScanMakeCheckBox
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteBeforeCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 220
+ Height = 17
+ Top = 56
+ Width = 178
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteBeforeScanFPCCheckBox'
+ TabOrder = 4
+ end
+ object ExecuteBeforeScanMakeCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteBeforeGroupBox
+ AnchorSideTop.Control = ExecuteBeforeCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 6
+ Height = 17
+ Top = 56
+ Width = 184
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteBeforeScanMakeCheckBox'
+ TabOrder = 5
+ end
+ object ExecuteBeforeShowAllCheckBox: TCheckBox
+ AnchorSideLeft.Control = ExecuteBeforeScanFPCCheckBox
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = ExecuteBeforeCommandEdit
+ AnchorSideTop.Side = asrBottom
+ Left = 428
+ Height = 17
+ Top = 56
+ Width = 173
+ BorderSpacing.Left = 24
+ BorderSpacing.Around = 6
+ Caption = 'ExecuteBeforeShowAllCheckBox'
+ TabOrder = 6
+ end
+ end
+end
diff --git a/ide/frames/compiler_compilation_options.lrs b/ide/frames/compiler_compilation_options.lrs
new file mode 100644
index 0000000000..9287dadeb2
--- /dev/null
+++ b/ide/frames/compiler_compilation_options.lrs
@@ -0,0 +1,146 @@
+{ This is an automatically generated lazarus resource file }
+
+LazarusResources.Add('TCompilerCompilationOptionsFrame','FORMDATA',[
+ 'TPF0'#241' TCompilerCompilationOptionsFrame'#31'CompilerCompilationOptionsFr'
+ +'ame'#6'Height'#3#27#2#5'Width'#3'W'#2#12'ClientHeight'#3#27#2#11'ClientWidt'
+ +'h'#3'W'#2#10'DesignLeft'#3#225#1#9'DesignTop'#3#150#0#0#242#2#0#9'TCheckBox'
+ +#17'chkCreateMakefile'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo'
+ +'p.Control'#7#5'Owner'#4'Left'#2#0#6'Height'#2#17#3'Top'#2#0#5'Width'#2'j'#7
+ +'Caption'#6#17'chkCreateMakefile'#8'TabOrder'#2#0#0#0#242#2#1#9'TGroupBox'#20
+ +'ExecuteAfterGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo'
+ +'p.Control'#7#11'grpCompiler'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Ancho'
+ +'rSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Le'
+ +'ft'#2#0#6'Height'#2'a'#3'Top'#3#206#0#5'Width'#3'W'#2#7'Anchors'#11#5'akTop'
+ +#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#7'Caption'#6
+ +#20'ExecuteAfterGroupBox'#12'ClientHeight'#2'O'#11'ClientWidth'#3'S'#2#8'Tab'
+ +'Order'#2#1#0#6'TLabel'#17'lblRunIfExecAfter'#22'AnchorSideLeft.Control'#7#20
+ +'ExecuteAfterGroupBox'#21'AnchorSideTop.Control'#7#20'ExecuteAfterGroupBox'#4
+ +'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2'V'#20'BorderSpacing.Around'#2
+ +#6#7'Caption'#6#17'lblRunIfExecAfter'#11'ParentColor'#8#0#0#6'TLabel'#24'Exe'
+ +'cuteAfterCommandLabel'#22'AnchorSideLeft.Control'#7#20'ExecuteAfterGroupBox'
+ +#21'AnchorSideTop.Control'#7#23'ExecuteAfterCommandEdit'#18'AnchorSideTop.Si'
+ +'de'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#14#3'Top'#2' '#5'Width'#3#137#0
+ +#20'BorderSpacing.Around'#2#6#7'Caption'#6#24'ExecuteAfterCommandLabel'#11'P'
+ +'arentColor'#8#0#0#9'TCheckBox'#19'chkExecAfterCompile'#22'AnchorSideLeft.Co'
+ +'ntrol'#7#17'lblRunIfExecAfter'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An'
+ +'chorSideTop.Control'#7#20'ExecuteAfterGroupBox'#4'Left'#2'z'#6'Height'#2#17
+ +#3'Top'#2#6#5'Width'#2'w'#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Aroun'
+ +'d'#2#6#7'Caption'#6#19'chkExecAfterCompile'#8'TabOrder'#2#0#0#0#9'TCheckBox'
+ +#17'chkExecAfterBuild'#22'AnchorSideLeft.Control'#7#19'chkExecAfterCompile'
+ +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'Execu'
+ +'teAfterGroupBox'#4'Left'#3#15#1#6'Height'#2#17#3'Top'#2#6#5'Width'#2'h'#18
+ +'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'chkEx'
+ +'ecAfterBuild'#8'TabOrder'#2#1#0#0#9'TCheckBox'#15'chkExecAfterRun'#22'Ancho'
+ +'rSideLeft.Control'#7#17'chkExecAfterBuild'#19'AnchorSideLeft.Side'#7#9'asrB'
+ +'ottom'#21'AnchorSideTop.Control'#7#20'ExecuteAfterGroupBox'#4'Left'#3#149#1
+ +#6'Height'#2#17#3'Top'#2#6#5'Width'#2'e'#18'BorderSpacing.Left'#2#24#20'Bord'
+ +'erSpacing.Around'#2#6#7'Caption'#6#15'chkExecAfterRun'#8'TabOrder'#2#2#0#0#5
+ +'TEdit'#23'ExecuteAfterCommandEdit'#22'AnchorSideLeft.Control'#7#24'ExecuteA'
+ +'fterCommandLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C'
+ +'ontrol'#7#19'chkExecAfterCompile'#18'AnchorSideTop.Side'#7#9'asrBottom'#23
+ +'AnchorSideRight.Control'#7#20'ExecuteAfterGroupBox'#20'AnchorSideRight.Side'
+ +#7#9'asrBottom'#4'Left'#3#161#0#6'Height'#2#21#3'Top'#2#29#5'Width'#3#172#1#7
+ +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#12#20
+ +'BorderSpacing.Around'#2#6#8'TabOrder'#2#3#4'Text'#6#23'ExecuteAfterCommandE'
+ +'dit'#0#0#9'TCheckBox'#27'ExecuteAfterScanFPCCheckBox'#22'AnchorSideLeft.Con'
+ +'trol'#7#28'ExecuteAfterScanMakeCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBot'
+ +'tom'#21'AnchorSideTop.Control'#7#23'ExecuteAfterCommandEdit'#18'AnchorSideT'
+ +'op.Side'#7#9'asrBottom'#4'Left'#3#213#0#6'Height'#2#17#3'Top'#2'8'#5'Width'
+ +#3#171#0#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'
+ +#6#27'ExecuteAfterScanFPCCheckBox'#8'TabOrder'#2#4#0#0#9'TCheckBox'#28'Execu'
+ +'teAfterScanMakeCheckBox'#22'AnchorSideLeft.Control'#7#20'ExecuteAfterGroupB'
+ +'ox'#21'AnchorSideTop.Control'#7#23'ExecuteAfterCommandEdit'#18'AnchorSideTo'
+ +'p.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#17#3'Top'#2'8'#5'Width'#3#177
+ +#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#28'ExecuteAfterScanMakeCheckBox'
+ +#8'TabOrder'#2#5#0#0#9'TCheckBox'#27'ExecuteAfterShowAllCheckBox'#22'AnchorS'
+ +'ideLeft.Control'#7#27'ExecuteAfterScanFPCCheckBox'#19'AnchorSideLeft.Side'#7
+ +#9'asrBottom'#21'AnchorSideTop.Control'#7#23'ExecuteAfterCommandEdit'#18'Anc'
+ +'horSideTop.Side'#7#9'asrBottom'#4'Left'#3#158#1#6'Height'#2#17#3'Top'#2'8'#5
+ +'Width'#3#166#0#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'C'
+ +'aption'#6#27'ExecuteAfterShowAllCheckBox'#8'TabOrder'#2#6#0#0#0#242#2#2#9'T'
+ +'GroupBox'#11'grpCompiler'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi'
+ +'deTop.Control'#7#21'ExecuteBeforeGroupBox'#18'AnchorSideTop.Side'#7#9'asrBo'
+ +'ttom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'a'
+ +'srBottom'#4'Left'#2#0#6'Height'#2'J'#3'Top'#2'~'#5'Width'#3'W'#2#7'Anchors'
+ +#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#7
+ +'Caption'#6#11'grpCompiler'#12'ClientHeight'#2'8'#11'ClientWidth'#3'S'#2#8'T'
+ +'abOrder'#2#2#0#6'TLabel'#16'lblRunIfCompiler'#22'AnchorSideLeft.Control'#7
+ ,#11'grpCompiler'#21'AnchorSideTop.Control'#7#11'grpCompiler'#4'Left'#2#6#6'H'
+ +'eight'#2#14#3'Top'#2#6#5'Width'#2'O'#20'BorderSpacing.Around'#2#6#7'Caption'
+ +#6#16'lblRunIfCompiler'#11'ParentColor'#8#0#0#6'TLabel'#11'lblCompiler'#22'A'
+ +'nchorSideLeft.Control'#7#11'grpCompiler'#21'AnchorSideTop.Control'#7#11'edt'
+ +'Compiler'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#14#3
+ +'Top'#2' '#5'Width'#2'4'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'lblCom'
+ +'piler'#11'ParentColor'#8#0#0#9'TCheckBox'#18'chkCompilerCompile'#22'AnchorS'
+ +'ideLeft.Control'#7#16'lblRunIfCompiler'#19'AnchorSideLeft.Side'#7#9'asrBott'
+ +'om'#21'AnchorSideTop.Control'#7#11'grpCompiler'#4'Left'#2's'#6'Height'#2#17
+ +#3'Top'#2#6#5'Width'#2'p'#18'BorderSpacing.Left'#2#30#17'BorderSpacing.Top'#2
+ +#6#7'Caption'#6#18'chkCompilerCompile'#8'TabOrder'#2#0#0#0#9'TCheckBox'#16'c'
+ +'hkCompilerBuild'#22'AnchorSideLeft.Control'#7#18'chkCompilerCompile'#19'Anc'
+ +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11'grpCompiler'
+ +#4'Left'#3#1#1#6'Height'#2#17#3'Top'#2#6#5'Width'#2'a'#18'BorderSpacing.Left'
+ +#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'chkCompilerBuild'#8'TabOr'
+ +'der'#2#1#0#0#9'TCheckBox'#14'chkCompilerRun'#22'AnchorSideLeft.Control'#7#16
+ +'chkCompilerBuild'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C'
+ +'ontrol'#7#11'grpCompiler'#4'Left'#3#128#1#6'Height'#2#17#3'Top'#2#6#5'Width'
+ +#2'^'#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6
+ +#14'chkCompilerRun'#8'TabOrder'#2#2#0#0#5'TEdit'#11'edtCompiler'#22'AnchorSi'
+ +'deLeft.Control'#7#11'lblCompiler'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+ +'AnchorSideTop.Control'#7#18'chkCompilerCompile'#18'AnchorSideTop.Side'#7#9
+ +'asrBottom'#23'AnchorSideRight.Control'#7#11'grpCompiler'#20'AnchorSideRight'
+ +'.Side'#7#9'asrBottom'#4'Left'#2'L'#6'Height'#2#21#3'Top'#2#29#5'Width'#3#1#2
+ +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#12#20
+ +'BorderSpacing.Around'#2#6#8'TabOrder'#2#3#4'Text'#6#11'edtCompiler'#0#0#0
+ +#242#2#3#9'TGroupBox'#21'ExecuteBeforeGroupBox'#22'AnchorSideLeft.Control'#7
+ +#5'Owner'#21'AnchorSideTop.Control'#7#17'chkCreateMakefile'#18'AnchorSideTop'
+ +'.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideR'
+ +'ight.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'a'#3'Top'#2#23#5'Width'#3
+ +'W'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderS'
+ +'pacing.Top'#2#6#7'Caption'#6#21'ExecuteBeforeGroupBox'#12'ClientHeight'#2'O'
+ +#11'ClientWidth'#3'S'#2#8'TabOrder'#2#3#0#6'TLabel'#18'lblRunIfExecBefore'#22
+ +'AnchorSideLeft.Control'#7#21'ExecuteBeforeGroupBox'#21'AnchorSideTop.Contro'
+ +'l'#7#21'ExecuteBeforeGroupBox'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Widt'
+ +'h'#2']'#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'lblRunIfExecBefore'#11
+ +'ParentColor'#8#0#0#6'TLabel'#25'ExecuteBeforeCommandLabel'#22'AnchorSideLef'
+ +'t.Control'#7#21'ExecuteBeforeGroupBox'#21'AnchorSideTop.Control'#7#24'Execu'
+ +'teBeforeCommandEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'He'
+ +'ight'#2#14#3'Top'#2' '#5'Width'#3#144#0#20'BorderSpacing.Around'#2#6#7'Capt'
+ +'ion'#6#25'ExecuteBeforeCommandLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#20
+ +'chkExecBeforeCompile'#22'AnchorSideLeft.Control'#7#18'lblRunIfExecBefore'#19
+ +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'ExecuteB'
+ +'eforeGroupBox'#4'Left'#3#129#0#6'Height'#2#17#3'Top'#2#6#5'Width'#2'~'#18'B'
+ +'orderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'chkExe'
+ +'cBeforeCompile'#8'TabOrder'#2#0#0#0#9'TCheckBox'#18'chkExecBeforeBuild'#22
+ +'AnchorSideLeft.Control'#7#20'chkExecBeforeCompile'#19'AnchorSideLeft.Side'#7
+ +#9'asrBottom'#21'AnchorSideTop.Control'#7#21'ExecuteBeforeGroupBox'#4'Left'#3
+ +#29#1#6'Height'#2#17#3'Top'#2#6#5'Width'#2'o'#18'BorderSpacing.Left'#2#24#20
+ +'BorderSpacing.Around'#2#6#7'Caption'#6#18'chkExecBeforeBuild'#8'TabOrder'#2
+ +#1#0#0#9'TCheckBox'#16'chkExecBeforeRun'#22'AnchorSideLeft.Control'#7#18'chk'
+ +'ExecBeforeBuild'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co'
+ +'ntrol'#7#21'ExecuteBeforeGroupBox'#4'Left'#3#170#1#6'Height'#2#17#3'Top'#2#6
+ +#5'Width'#2'l'#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Ca'
+ +'ption'#6#16'chkExecBeforeRun'#8'TabOrder'#2#2#0#0#5'TEdit'#24'ExecuteBefore'
+ +'CommandEdit'#22'AnchorSideLeft.Control'#7#25'ExecuteBeforeCommandLabel'#19
+ +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'chkExecB'
+ +'eforeCompile'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Cont'
+ +'rol'#7#21'ExecuteBeforeGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4
+ +'Left'#3#168#0#6'Height'#2#21#3'Top'#2#29#5'Width'#3#165#1#7'Anchors'#11#5'a'
+ +'kTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#12#20'BorderSpacing.A'
+ +'round'#2#6#8'TabOrder'#2#3#4'Text'#6#24'ExecuteBeforeCommandEdit'#0#0#9'TCh'
+ +'eckBox'#28'ExecuteBeforeScanFPCCheckBox'#22'AnchorSideLeft.Control'#7#29'Ex'
+ +'ecuteBeforeScanMakeCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anch'
+ ,'orSideTop.Control'#7#24'ExecuteBeforeCommandEdit'#18'AnchorSideTop.Side'#7#9
+ +'asrBottom'#4'Left'#3#220#0#6'Height'#2#17#3'Top'#2'8'#5'Width'#3#178#0#18'B'
+ +'orderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#28'Execut'
+ +'eBeforeScanFPCCheckBox'#8'TabOrder'#2#4#0#0#9'TCheckBox'#29'ExecuteBeforeSc'
+ +'anMakeCheckBox'#22'AnchorSideLeft.Control'#7#21'ExecuteBeforeGroupBox'#21'A'
+ +'nchorSideTop.Control'#7#24'ExecuteBeforeCommandEdit'#18'AnchorSideTop.Side'
+ +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#17#3'Top'#2'8'#5'Width'#3#184#0#20'B'
+ +'orderSpacing.Around'#2#6#7'Caption'#6#29'ExecuteBeforeScanMakeCheckBox'#8'T'
+ +'abOrder'#2#5#0#0#9'TCheckBox'#28'ExecuteBeforeShowAllCheckBox'#22'AnchorSid'
+ +'eLeft.Control'#7#28'ExecuteBeforeScanFPCCheckBox'#19'AnchorSideLeft.Side'#7
+ +#9'asrBottom'#21'AnchorSideTop.Control'#7#24'ExecuteBeforeCommandEdit'#18'An'
+ +'chorSideTop.Side'#7#9'asrBottom'#4'Left'#3#172#1#6'Height'#2#17#3'Top'#2'8'
+ +#5'Width'#3#173#0#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7
+ +'Caption'#6#28'ExecuteBeforeShowAllCheckBox'#8'TabOrder'#2#6#0#0#0#0
+]);
diff --git a/ide/frames/compiler_compilation_options.pas b/ide/frames/compiler_compilation_options.pas
new file mode 100644
index 0000000000..7f6a6b73a5
--- /dev/null
+++ b/ide/frames/compiler_compilation_options.pas
@@ -0,0 +1,259 @@
+unit compiler_compilation_options;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
+ StdCtrls, IDEOptionsIntf, Project, CompilerOptions, LazarusIDEStrConsts,
+ ProjectIntf, PackageDefs;
+
+type
+
+ { TCompilerCompilationOptionsFrame }
+
+ TCompilerCompilationOptionsFrame = class(TAbstractIDEOptionsEditor)
+ chkCompilerBuild: TCheckBox;
+ chkCompilerCompile: TCheckBox;
+ chkCompilerRun: TCheckBox;
+ chkCreateMakefile: TCheckBox;
+ chkExecAfterBuild: TCheckBox;
+ chkExecAfterCompile: TCheckBox;
+ chkExecAfterRun: TCheckBox;
+ chkExecBeforeBuild: TCheckBox;
+ chkExecBeforeCompile: TCheckBox;
+ chkExecBeforeRun: TCheckBox;
+ edtCompiler: TEdit;
+ ExecuteAfterCommandEdit: TEdit;
+ ExecuteAfterCommandLabel: TLabel;
+ ExecuteAfterGroupBox: TGroupBox;
+ ExecuteAfterScanFPCCheckBox: TCheckBox;
+ ExecuteAfterScanMakeCheckBox: TCheckBox;
+ ExecuteAfterShowAllCheckBox: TCheckBox;
+ ExecuteBeforeCommandEdit: TEdit;
+ ExecuteBeforeCommandLabel: TLabel;
+ ExecuteBeforeGroupBox: TGroupBox;
+ ExecuteBeforeScanFPCCheckBox: TCheckBox;
+ ExecuteBeforeScanMakeCheckBox: TCheckBox;
+ ExecuteBeforeShowAllCheckBox: TCheckBox;
+ grpCompiler: TGroupBox;
+ lblCompiler: TLabel;
+ lblRunIfCompiler: TLabel;
+ lblRunIfExecAfter: TLabel;
+ lblRunIfExecBefore: TLabel;
+ private
+ { private declarations }
+ public
+ function GetTitle: string; override;
+ procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
+ procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
+ procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
+ class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
+ end;
+
+implementation
+
+{ TCompilerCompilationOptionsFrame }
+
+function TCompilerCompilationOptionsFrame.GetTitle: string;
+begin
+ Result := dlgCOCompilation;
+end;
+
+procedure TCompilerCompilationOptionsFrame.Setup(
+ ADialog: TAbstractOptionsEditorDialog);
+begin
+ chkCreateMakefile.Caption := dlgCOCreateMakefile;
+
+ ExecuteBeforeGroupBox.Caption := lisCOExecuteBefore;
+ chkExecBeforeBuild.Caption := lisCOCallOnBuild;
+ chkExecBeforeCompile.Caption := lisCOCallOnCompile;
+ chkExecBeforeRun.Caption := lisCOCallOnRun;
+ ExecuteBeforeCommandEdit.Text := '';
+ ExecuteBeforeCommandLabel.Caption := lisCOCommand;
+ ExecuteBeforeScanFPCCheckBox.Caption := lisCOScanForFPCMessages;
+ ExecuteBeforeScanMakeCheckBox.Caption := lisCOScanForMakeMessages;
+ ExecuteBeforeShowAllCheckBox.Caption := lisCOShowAllMessages;
+ lblRunIfExecBefore.Caption := lisCOCallOn;
+
+ grpCompiler.Caption := lisCompiler;
+ chkCompilerBuild.Caption := lisCOCallOnBuild;
+ chkCompilerBuild.Checked := True;
+ chkCompilerCompile.Caption := lisCOCallOnCompile;
+ chkCompilerCompile.Checked := True;
+ chkCompilerRun.Caption := lisCOCallOnRun;
+ chkCompilerRun.Checked := True;
+ edtCompiler.Text := '';
+ lblCompiler.Caption := lisCOCommand;
+ lblRunIfCompiler.Caption := lisCOCallOn;
+
+ ExecuteAfterGroupBox.Caption := lisCOExecuteAfter;
+ chkExecAfterBuild.Caption := lisCOCallOnBuild;
+ chkExecAfterCompile.Caption := lisCOCallOnCompile;
+ chkExecAfterRun.Caption := lisCOCallOnRun;
+ ExecuteAfterCommandEdit.Text := '';
+ ExecuteAfterCommandLabel.Caption := lisCOCommand;
+ ExecuteAfterScanFPCCheckBox.Caption := lisCOScanForFPCMessages;
+ ExecuteAfterScanMakeCheckBox.Caption := lisCOScanForMakeMessages;
+ ExecuteAfterShowAllCheckBox.Caption := lisCOShowAllMessages;
+ lblRunIfExecAfter.Caption := lisCOCallOn;
+end;
+
+procedure TCompilerCompilationOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
+var
+ Options: TBaseCompilerOptions absolute AOptions;
+begin
+ chkCreateMakefile.Checked := Options.CreateMakefileOnBuild;
+
+ ExecuteBeforeCommandEdit.Text := Options.ExecuteBefore.Command;
+ ExecuteBeforeScanFPCCheckBox.Checked := Options.ExecuteBefore.ScanForFPCMessages;
+ ExecuteBeforeScanMakeCheckBox.Checked :=
+ Options.ExecuteBefore.ScanForMakeMessages;
+ ExecuteBeforeShowAllCheckBox.Checked := Options.ExecuteBefore.ShowAllMessages;
+ if Options.ExecuteBefore is TProjectCompilationToolOptions then
+ with TProjectCompilationToolOptions(Options.ExecuteBefore) do
+ begin
+ chkExecBeforeCompile.Checked := crCompile in CompileReasons;
+ chkExecBeforeBuild.Checked := crBuild in CompileReasons;
+ chkExecBeforeRun.Checked := crRun in CompileReasons;
+ lblRunIfExecBefore.Visible := True;
+ chkExecBeforeCompile.Visible := True;
+ chkExecBeforeBuild.Visible := True;
+ chkExecBeforeRun.Visible := True;
+ end
+ else
+ begin
+ lblRunIfExecBefore.Visible := False;
+ chkExecBeforeCompile.Visible := False;
+ chkExecBeforeBuild.Visible := False;
+ chkExecBeforeRun.Visible := False;
+ end;
+
+ edtCompiler.Text := Options.CompilerPath;
+ if Options is TProjectCompilerOptions then
+ with TProjectCompilerOptions(Options) do
+ begin
+ lblRunIfCompiler.Visible := True;
+ chkCompilerCompile.AnchorToNeighbour(akLeft, 30, lblRunIfCompiler);
+ chkCompilerCompile.Checked := crCompile in CompileReasons;
+ chkCompilerBuild.Checked := crBuild in CompileReasons;
+ chkCompilerRun.Checked := crRun in CompileReasons;
+ chkCompilerCompile.Caption := lisCOCallOnCompile;
+ chkCompilerCompile.Visible := True;
+ chkCompilerBuild.Visible := True;
+ chkCompilerRun.Visible := True;
+ edtCompiler.AnchorToNeighbour(akTop, 0, chkCompilerCompile);
+ end
+ else if Options is TPkgCompilerOptions then
+ begin
+ lblRunIfCompiler.Visible := False;
+ chkCompilerCompile.AnchorParallel(akTop, 6, chkCompilerCompile.Parent);
+ chkCompilerCompile.AnchorParallel(akLeft, 6, chkCompilerCompile.Parent);
+ chkCompilerCompile.Visible := True;
+ chkCompilerCompile.Caption := lisCOSkipCallingCompiler;
+ chkCompilerCompile.Checked := TPkgCompilerOptions(Options).SkipCompiler;
+ chkCompilerBuild.Visible := False;
+ chkCompilerRun.Visible := False;
+ edtCompiler.AnchorToNeighbour(akTop, 0, chkCompilerCompile);
+ end
+ else
+ begin
+ lblRunIfCompiler.Visible := False;
+ chkCompilerCompile.Visible := False;
+ chkCompilerBuild.Visible := False;
+ chkCompilerRun.Visible := False;
+ edtCompiler.AnchorParallel(akTop, 0, lblCompiler.Parent);
+ end;
+
+ ExecuteAfterCommandEdit.Text := Options.ExecuteAfter.Command;
+ ExecuteAfterScanFPCCheckBox.Checked := Options.ExecuteAfter.ScanForFPCMessages;
+ ExecuteAfterScanMakeCheckBox.Checked := Options.ExecuteAfter.ScanForMakeMessages;
+ ExecuteAfterShowAllCheckBox.Checked := Options.ExecuteAfter.ShowAllMessages;
+ if Options.ExecuteAfter is TProjectCompilationToolOptions then
+ with TProjectCompilationToolOptions(Options.ExecuteAfter) do
+ begin
+ chkExecAfterCompile.Checked := crCompile in CompileReasons;
+ chkExecAfterBuild.Checked := crBuild in CompileReasons;
+ chkExecAfterRun.Checked := crRun in CompileReasons;
+ lblRunIfExecAfter.Visible := True;
+ chkExecAfterCompile.Visible := True;
+ chkExecAfterBuild.Visible := True;
+ chkExecAfterRun.Visible := True;
+ end
+ else
+ begin
+ lblRunIfExecAfter.Visible := False;
+ chkExecAfterCompile.Visible := False;
+ chkExecAfterBuild.Visible := False;
+ chkExecAfterRun.Visible := False;
+ end;
+end;
+
+procedure TCompilerCompilationOptionsFrame.WriteSettings(
+ AOptions: TAbstractIDEOptions);
+
+ function MakeCompileReasons(const ACompile, ABuild, ARun: TCheckBox): TCompileReasons;
+ begin
+ Result := [];
+ if ACompile.Checked then Include(Result, crCompile);
+ if ABuild.Checked then Include(Result, crBuild);
+ if ARun.Checked then Include(Result, crRun);
+ end;
+
+var
+ Options: TBaseCompilerOptions absolute AOptions;
+begin
+ Options.CreateMakefileOnBuild := chkCreateMakefile.Checked;
+
+ Options.ExecuteBefore.Command := ExecuteBeforeCommandEdit.Text;
+ Options.ExecuteBefore.ScanForFPCMessages :=
+ ExecuteBeforeScanFPCCheckBox.Checked;
+ Options.ExecuteBefore.ScanForMakeMessages :=
+ ExecuteBeforeScanMakeCheckBox.Checked;
+ Options.ExecuteBefore.ShowAllMessages := ExecuteBeforeShowAllCheckBox.Checked;
+ if Options.ExecuteBefore is TProjectCompilationToolOptions then
+ begin
+ TProjectCompilationToolOptions(Options.ExecuteBefore).CompileReasons :=
+ MakeCompileReasons(chkExecBeforeCompile,
+ chkExecBeforeBuild, chkExecBeforeRun);
+ end;
+
+ Options.CompilerPath := edtCompiler.Text;
+ if Options is TProjectCompilerOptions then
+ begin
+ TProjectCompilerOptions(Options).CompileReasons :=
+ MakeCompileReasons(chkCompilerCompile, chkCompilerBuild,
+ chkCompilerRun);
+ end
+ else if Options is TPkgCompilerOptions then
+ begin
+ TPkgCompilerOptions(Options).SkipCompiler := chkCompilerCompile.Checked;
+ end;
+
+ Options.ExecuteAfter.Command := ExecuteAfterCommandEdit.Text;
+ Options.ExecuteAfter.ScanForFPCMessages :=
+ ExecuteAfterScanFPCCheckBox.Checked;
+ Options.ExecuteAfter.ScanForMakeMessages :=
+ ExecuteAfterScanMakeCheckBox.Checked;
+ Options.ExecuteAfter.ShowAllMessages := ExecuteAfterShowAllCheckBox.Checked;
+ if Options.ExecuteAfter is TProjectCompilationToolOptions then
+ begin
+ TProjectCompilationToolOptions(Options.ExecuteAfter).CompileReasons :=
+ MakeCompileReasons(chkExecAfterCompile,
+ chkExecAfterBuild, chkExecAfterRun);
+ end;
+end;
+
+class function TCompilerCompilationOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
+begin
+ Result := TBaseCompilerOptions;
+end;
+
+initialization
+ {$I compiler_compilation_options.lrs}
+ RegisterIDEOptionsEditor(GroupCompiler, TCompilerCompilationOptionsFrame,
+ CompilerOptionsCompilation);
+
+end.
+
diff --git a/ide/lazarus.lpi b/ide/lazarus.lpi
index e4e4a669c2..7865771529 100644
--- a/ide/lazarus.lpi
+++ b/ide/lazarus.lpi
@@ -43,7 +43,7 @@
-
+
@@ -505,6 +505,13 @@
+
+
+
+
+
+
+
diff --git a/ide/main.pp b/ide/main.pp
index 0651465d76..37c5f05f73 100644
--- a/ide/main.pp
+++ b/ide/main.pp
@@ -128,7 +128,7 @@ uses
// project compiler options
compiler_path_options, compiler_parsing_options, compiler_codegen_options,
compiler_linking_options, compiler_verbosity_options, compiler_messages_options,
- compiler_other_options, compiler_inherited_options,
+ compiler_other_options, compiler_inherited_options, compiler_compilation_options,
PublishModule, EnvironmentOpts, TransferMacros, KeyMapping, IDETranslations,
IDEProcs, ExtToolDialog, ExtToolEditDlg, OutputFilter, JumpHistoryView,