Skip to content

Commit 6573420

Browse files
committed
Add JIT release mode
1 parent 5118a4a commit 6573420

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

cmd/build.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var (
3737
buildOrRunHoverFlavor string
3838
buildOrRunDocker bool
3939
buildOrRunDebug bool
40+
buildOrRunJitRelease bool
4041
buildOrRunRelease bool
4142
buildOrRunProfile bool
4243
buildOrRunMode build.Mode
@@ -53,6 +54,7 @@ func initCompileFlags(cmd *cobra.Command) {
5354
cmd.PersistentFlags().StringVar(&buildOrRunHoverFlavor, "flavor", "", "The flavor to use, defaults to 'hover.yaml'.")
5455
cmd.PersistentFlags().BoolVar(&buildOrRunDocker, "docker", false, "Execute the go build and packaging in a docker container. The Flutter build is always run locally")
5556
cmd.PersistentFlags().BoolVar(&buildOrRunDebug, "debug", false, "Build a debug version of the app.")
57+
cmd.PersistentFlags().BoolVar(&buildOrRunJitRelease, "jit-release", false, "Build a debug version of the app without the terminal windows on Windows.")
5658
cmd.PersistentFlags().BoolVar(&buildOrRunRelease, "release", false, "Build a release version of the app. Currently very experimental")
5759
cmd.PersistentFlags().BoolVar(&buildOrRunProfile, "profile", false, "Build a profile version of the app. Currently very experimental")
5860
cmd.PersistentFlags().BoolVar(&buildOrRunSkipFlutter, "skip-flutter", false, "Skip the flutter steps")
@@ -234,6 +236,9 @@ func subcommandBuild(targetOS string, packagingTask packaging.Task, vmArguments
234236
if buildOrRunDebug {
235237
buildFlags = append(buildFlags, "--debug")
236238
}
239+
if buildOrRunJitRelease {
240+
buildFlags = append(buildFlags, "--jit-release")
241+
}
237242
if buildOrRunRelease {
238243
buildFlags = append(buildFlags, "--release")
239244
}
@@ -307,7 +312,7 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
307312
}
308313

309314
numberOfBuildOrRunModeFlagsSet := 0
310-
for _, flag := range []bool{buildOrRunDebug, buildOrRunRelease, buildOrRunProfile} {
315+
for _, flag := range []bool{buildOrRunDebug, buildOrRunJitRelease, buildOrRunRelease, buildOrRunProfile} {
311316
if flag {
312317
numberOfBuildOrRunModeFlagsSet++
313318
}
@@ -323,6 +328,9 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
323328
if buildOrRunDebug {
324329
buildOrRunMode = build.DebugMode
325330
}
331+
if buildOrRunJitRelease {
332+
buildOrRunMode = build.JitReleaseMode
333+
}
326334
if buildOrRunRelease {
327335
buildOrRunMode = build.ReleaseMode
328336
}
@@ -358,6 +366,7 @@ func validateBuildParameters(targetOS string) {
358366
}
359367
} else {
360368
log.Errorf("AOT builds currently only work on their host OS")
369+
log.Errorf("Use the JIT release mode using the `--jit-release` flag instead")
361370
os.Exit(1)
362371
}
363372
}

internal/build/mode.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ var DebugMode = Mode{
1010
IsAot: false,
1111
}
1212

13+
// JitReleaseMode is the same debug build, but disables the terminal windows on Windows
14+
var JitReleaseMode = Mode{
15+
Name: "debug_unopt",
16+
IsAot: false,
17+
}
18+
1319
var ReleaseMode = Mode{
1420
Name: "release",
1521
IsAot: true,

0 commit comments

Comments
 (0)