Browse Source

Added -gprof developer option.

woollybah 6 years ago
parent
commit
b1a2294ecd
2 changed files with 24 additions and 3 deletions
  1. 1 0
      default.language.ini
  2. 23 3
      maxide.bmx

+ 1 - 0
default.language.ini

@@ -297,6 +297,7 @@ menu_program_buildoptions_warnover           = "Overload Warnings"
 menu_program_buildoptions_requireoverride    = "Require 'Override' declaration"
 menu_program_buildoptions_requireoverride    = "Require 'Override' declaration"
 menu_program_buildoptions_overrideerrors     = "Raise 'override' errors not warnings"
 menu_program_buildoptions_overrideerrors     = "Raise 'override' errors not warnings"
 menu_program_buildoptions_gdbdebug           = "GDB Debug Generation"
 menu_program_buildoptions_gdbdebug           = "GDB Debug Generation"
+menu_program_buildoptions_gprof              = "GProf Profiling"
 menu_program_lockbuildfile                   = "&Lock Build File"
 menu_program_lockbuildfile                   = "&Lock Build File"
 menu_program_unlockbuildfile                 = "&Unlock Build File"
 menu_program_unlockbuildfile                 = "&Unlock Build File"
 menu_program_gotobuildfile                   = "Goto Build File"
 menu_program_gotobuildfile                   = "Goto Build File"

+ 23 - 3
maxide.bmx

@@ -180,6 +180,7 @@ Const MENUWARNOVERENABLED=65
 Const MENUGDBDEBUGENABLED=66
 Const MENUGDBDEBUGENABLED=66
 Const MENUREQUIREOVERRIDEENABLED=67
 Const MENUREQUIREOVERRIDEENABLED=67
 Const MENUOVERRIDEERRORSENABLED=68
 Const MENUOVERRIDEERRORSENABLED=68
+Const MENUGPROFENABLED=69
 
 
 Const MENUAPPOPTIONS=70
 Const MENUAPPOPTIONS=70
 Const MENUCONSOLEENABLED=71
 Const MENUCONSOLEENABLED=71
@@ -5358,7 +5359,7 @@ Type TOpenCode Extends TToolPanel
 		Return True
 		Return True
 	End Method
 	End Method
 
 
-	Method BuildSource(quick,debug,threaded,consoleBuild,guiBuild,makelibBuild,run, verbose, quickscan, universal, warnover, gdbdebug, requireOverride, overrideError, useUPX:Int, platform:String = Null, architecture:String = Null, appstub:String = Null)
+	Method BuildSource(quick,debug,threaded,consoleBuild,guiBuild,makelibBuild,run, verbose, quickscan, universal, warnover, gdbdebug, requireOverride, overrideError, useUPX:Int, gprof:Int, platform:String = Null, architecture:String = Null, appstub:String = Null)
 		Local cmd$,out$,arg$
 		Local cmd$,out$,arg$
 		If isbmx Or isc Or iscpp
 		If isbmx Or isc Or iscpp
 			cmd$=quote(host.bmkpath)
 			cmd$=quote(host.bmkpath)
@@ -5380,6 +5381,7 @@ Type TOpenCode Extends TToolPanel
 			'UPX compression is only available for "makeapp"
 			'UPX compression is only available for "makeapp"
 			If (guiBuild Or consoleBuild) And useUPX cmd :+ " -upx"
 			If (guiBuild Or consoleBuild) And useUPX cmd :+ " -upx"
 			If requireOverride cmd :+ " -override"
 			If requireOverride cmd :+ " -override"
+			If gprof cmd :+ " -gprof"
 			'bmk requires "-override" to use "-overerr"
 			'bmk requires "-override" to use "-overerr"
 			If requireOverride And overrideError cmd :+ " -overerr"
 			If requireOverride And overrideError cmd :+ " -overerr"
 			If appstub And appstub <> "brl.appstub" cmd :+ " -b " + appstub
 			If appstub And appstub <> "brl.appstub" cmd :+ " -b " + appstub
@@ -5491,9 +5493,9 @@ Type TOpenCode Extends TToolPanel
 			Case TOOLREPLACE
 			Case TOOLREPLACE
 				Return FindReplace(String(argument))
 				Return FindReplace(String(argument))
 			Case TOOLBUILD
 			Case TOOLBUILD
-				BuildSource host.quickenabled,host.debugenabled,host.threadedenabled,host.consoleenabled, host.guienabled, host.makelibenabled,False, host.verboseenabled, host.quickscanenabled, host.universalenabled, host.warnoverenabled, host.gdbdebugenabled, host.requireOverrideEnabled, host.overrideErrorsEnabled, host.upxEnabled, host.GetPlatform(), host.GetArchitecture(), host.selectedappstub
+				BuildSource host.quickenabled,host.debugenabled,host.threadedenabled,host.consoleenabled, host.guienabled, host.makelibenabled,False, host.verboseenabled, host.quickscanenabled, host.universalenabled, host.warnoverenabled, host.gdbdebugenabled, host.requireOverrideEnabled, host.overrideErrorsEnabled, host.upxEnabled, host.gprofenabled, host.GetPlatform(), host.GetArchitecture(), host.selectedappstub
 			Case TOOLRUN
 			Case TOOLRUN
-				BuildSource host.quickenabled,host.debugenabled,host.threadedenabled,host.consoleenabled, host.guienabled, host.makelibenabled,True, host.verboseenabled, host.quickscanenabled, host.universalenabled, host.warnoverenabled, host.gdbdebugenabled, host.requireOverrideEnabled, host.overrideErrorsEnabled, host.upxEnabled, host.GetPlatform(), host.GetArchitecture(), host.selectedappstub
+				BuildSource host.quickenabled,host.debugenabled,host.threadedenabled,host.consoleenabled, host.guienabled, host.makelibenabled,True, host.verboseenabled, host.quickscanenabled, host.universalenabled, host.warnoverenabled, host.gdbdebugenabled, host.requireOverrideEnabled, host.overrideErrorsEnabled, host.upxEnabled, host.gprofenabled, host.GetPlatform(), host.GetArchitecture(), host.selectedappstub
 			Case TOOLLOCK
 			Case TOOLLOCK
 				SetLocked True
 				SetLocked True
 			Case TOOLUNLOCK
 			Case TOOLUNLOCK
@@ -5761,6 +5763,7 @@ Type TCodePlay
 	Field gdbdebugenable:TGadget,gdbdebugenabled		'menu,state
 	Field gdbdebugenable:TGadget,gdbdebugenabled		'menu,state
 	Field requireOverrideEnable:TGadget,requireOverrideEnabled		'menu,state
 	Field requireOverrideEnable:TGadget,requireOverrideEnabled		'menu,state
 	Field overrideErrorsEnable:TGadget,overrideErrorsEnabled		'menu,state
 	Field overrideErrorsEnable:TGadget,overrideErrorsEnabled		'menu,state
+	Field gprofenable:TGadget,gprofenabled		'menu,state
 	Field lockBuildMenuItem:TGadget
 	Field lockBuildMenuItem:TGadget
 	Field unlockBuildMenuItem:TGadget
 	Field unlockBuildMenuItem:TGadget
 	Field gotoBuildMenuItem:TGadget
 	Field gotoBuildMenuItem:TGadget
@@ -5920,6 +5923,7 @@ Type TCodePlay
 		gdbdebugenabled=False
 		gdbdebugenabled=False
 		requireOverrideEnabled=False
 		requireOverrideEnabled=False
 		overrideErrorsEnabled=False
 		overrideErrorsEnabled=False
+		gprofenabled=False
 		For Local i:Int = 0 Until platformenabled.length
 		For Local i:Int = 0 Until platformenabled.length
 			platformenabled[i] = False
 			platformenabled[i] = False
 		Next
 		Next
@@ -5993,6 +5997,8 @@ Type TCodePlay
 					requireOverrideEnabled=Int(b$)
 					requireOverrideEnabled=Int(b$)
 				Case "prg_overrideerrors"
 				Case "prg_overrideerrors"
 					overrideErrorsEnabled=Int(b$)
 					overrideErrorsEnabled=Int(b$)
+				Case "prg_gprof"
+					gprofenabled=Int(b$)
 				Case "prg_platform"
 				Case "prg_platform"
 					For Local i:Int = 0 Until platformenabled.length
 					For Local i:Int = 0 Until platformenabled.length
 						platformenabled[i] = False
 						platformenabled[i] = False
@@ -6063,6 +6069,7 @@ Type TCodePlay
 		stream.WriteLine "prg_gdbdebug="+gdbdebugenabled
 		stream.WriteLine "prg_gdbdebug="+gdbdebugenabled
 		stream.WriteLine "prg_requireoverride="+requireOverrideEnabled
 		stream.WriteLine "prg_requireoverride="+requireOverrideEnabled
 		stream.WriteLine "prg_overrideerrors="+overrideErrorsEnabled
 		stream.WriteLine "prg_overrideerrors="+overrideErrorsEnabled
+		stream.WriteLine "prg_gprof="+gprofenabled
 		For Local i:Int = 0 Until platformenabled.length
 		For Local i:Int = 0 Until platformenabled.length
 			If platformenabled[i] Then
 			If platformenabled[i] Then
 				stream.WriteLine "prg_platform=" + i
 				stream.WriteLine "prg_platform=" + i
@@ -6357,6 +6364,7 @@ Type TCodePlay
 				cmd :+ " -overerr"
 				cmd :+ " -overerr"
 			EndIf
 			EndIf
 		EndIf
 		EndIf
+		If gprofenabled cmd:+"-gprof "
 		Local platform:String = GetPlatform()
 		Local platform:String = GetPlatform()
 		Local architecture:String = GetArchitecture()
 		Local architecture:String = GetArchitecture()
 		If platform cmd :+ "-l " + platform + " "
 		If platform cmd :+ "-l " + platform + " "
@@ -7056,6 +7064,7 @@ Type TCodePlay
 		devoptions=CreateMenu("{{menu_program_buildoptions_dev}}",0,program)
 		devoptions=CreateMenu("{{menu_program_buildoptions_dev}}",0,program)
 		verboseenable=CreateMenu("{{menu_program_buildoptions_verbose}}",MENUVERBOSEENABLED,devoptions)
 		verboseenable=CreateMenu("{{menu_program_buildoptions_verbose}}",MENUVERBOSEENABLED,devoptions)
 		gdbdebugenable=CreateMenu("{{menu_program_buildoptions_gdbdebug}}",MENUGDBDEBUGENABLED,devoptions)
 		gdbdebugenable=CreateMenu("{{menu_program_buildoptions_gdbdebug}}",MENUGDBDEBUGENABLED,devoptions)
+		gprofenable=CreateMenu("{{menu_program_buildoptions_gprof}}",MENUGPROFENABLED,devoptions)
 
 
 		CreateMenu "",0,program
 		CreateMenu "",0,program
 		lockBuildMenuItem = CreateMenu("{{menu_program_lockbuildfile}}",MENULOCKBUILD,program)
 		lockBuildMenuItem = CreateMenu("{{menu_program_lockbuildfile}}",MENULOCKBUILD,program)
@@ -7090,6 +7099,7 @@ Type TCodePlay
 		If gdbdebugenabled CheckMenu gdbdebugenable
 		If gdbdebugenabled CheckMenu gdbdebugenable
 		If requireOverrideEnabled CheckMenu requireOverrideEnable
 		If requireOverrideEnabled CheckMenu requireOverrideEnable
 		If overrideErrorsEnabled CheckMenu overrideErrorsEnable
 		If overrideErrorsEnabled CheckMenu overrideErrorsEnable
+		If gprofenabled CheckMenu gprofenable
 		'need to do this below "CheckMenu" as it automatically enables
 		'need to do this below "CheckMenu" as it automatically enables
 		'the menu (again)
 		'the menu (again)
 		If Not requireOverrideEnabled DisableMenu overrideErrorsEnable
 		If Not requireOverrideEnabled DisableMenu overrideErrorsEnable
@@ -7431,6 +7441,16 @@ Type TCodePlay
 				EndIf
 				EndIf
 				UpdateWindowMenu window
 				UpdateWindowMenu window
 
 
+			Case MENUGPROFENABLED
+				If gprofenabled
+					gprofenabled=False
+					UncheckMenu gprofenable
+				Else
+					gprofenabled=True
+					CheckMenu gprofenable
+				EndIf
+				UpdateWindowMenu window
+
 			Case MENUGDBDEBUGENABLED
 			Case MENUGDBDEBUGENABLED
 				If gdbdebugenabled
 				If gdbdebugenabled
 					gdbdebugenabled=False
 					gdbdebugenabled=False