Skip to content

Commit adac8ae

Browse files
authored
Merge pull request #175 from go-flutter-desktop/jit-release-mode
Add JIT release mode
2 parents 34a2cf4 + 6573420 commit adac8ae

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
}
@@ -305,7 +310,7 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
305310
}
306311

307312
numberOfBuildOrRunModeFlagsSet := 0
308-
for _, flag := range []bool{buildOrRunDebug, buildOrRunRelease, buildOrRunProfile} {
313+
for _, flag := range []bool{buildOrRunDebug, buildOrRunJitRelease, buildOrRunRelease, buildOrRunProfile} {
309314
if flag {
310315
numberOfBuildOrRunModeFlagsSet++
311316
}
@@ -321,6 +326,9 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
321326
if buildOrRunDebug {
322327
buildOrRunMode = build.DebugMode
323328
}
329+
if buildOrRunJitRelease {
330+
buildOrRunMode = build.JitReleaseMode
331+
}
324332
if buildOrRunRelease {
325333
buildOrRunMode = build.ReleaseMode
326334
}
@@ -361,6 +369,7 @@ func validateBuildParameters(targetOS string) {
361369
}
362370
} else {
363371
log.Errorf("AOT builds currently only work on their host OS")
372+
log.Errorf("Use the JIT release mode using the `--jit-release` flag instead")
364373
os.Exit(1)
365374
}
366375
}

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)