Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion cmd/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ var (
buildOrRunHoverFlavor string
buildOrRunDocker bool
buildOrRunDebug bool
buildOrRunJitRelease bool
buildOrRunRelease bool
buildOrRunProfile bool
buildOrRunMode build.Mode
Expand All @@ -53,6 +54,7 @@ func initCompileFlags(cmd *cobra.Command) {
cmd.PersistentFlags().StringVar(&buildOrRunHoverFlavor, "flavor", "", "The flavor to use, defaults to 'hover.yaml'.")
cmd.PersistentFlags().BoolVar(&buildOrRunDocker, "docker", false, "Execute the go build and packaging in a docker container. The Flutter build is always run locally")
cmd.PersistentFlags().BoolVar(&buildOrRunDebug, "debug", false, "Build a debug version of the app.")
cmd.PersistentFlags().BoolVar(&buildOrRunJitRelease, "jit-release", false, "Build a debug version of the app without the terminal windows on Windows.")
cmd.PersistentFlags().BoolVar(&buildOrRunRelease, "release", false, "Build a release version of the app. Currently very experimental")
cmd.PersistentFlags().BoolVar(&buildOrRunProfile, "profile", false, "Build a profile version of the app. Currently very experimental")
cmd.PersistentFlags().BoolVar(&buildOrRunSkipFlutter, "skip-flutter", false, "Skip the flutter steps")
Expand Down Expand Up @@ -234,6 +236,9 @@ func subcommandBuild(targetOS string, packagingTask packaging.Task, vmArguments
if buildOrRunDebug {
buildFlags = append(buildFlags, "--debug")
}
if buildOrRunJitRelease {
buildFlags = append(buildFlags, "--jit-release")
}
if buildOrRunRelease {
buildFlags = append(buildFlags, "--release")
}
Expand Down Expand Up @@ -307,7 +312,7 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
}

numberOfBuildOrRunModeFlagsSet := 0
for _, flag := range []bool{buildOrRunDebug, buildOrRunRelease, buildOrRunProfile} {
for _, flag := range []bool{buildOrRunDebug, buildOrRunJitRelease, buildOrRunRelease, buildOrRunProfile} {
if flag {
numberOfBuildOrRunModeFlagsSet++
}
Expand All @@ -323,6 +328,9 @@ func initBuildParameters(targetOS string, defaultBuildOrRunMode build.Mode) {
if buildOrRunDebug {
buildOrRunMode = build.DebugMode
}
if buildOrRunJitRelease {
buildOrRunMode = build.JitReleaseMode
}
if buildOrRunRelease {
buildOrRunMode = build.ReleaseMode
}
Expand Down Expand Up @@ -358,6 +366,7 @@ func validateBuildParameters(targetOS string) {
}
} else {
log.Errorf("AOT builds currently only work on their host OS")
log.Errorf("Use the JIT release mode using the `--jit-release` flag instead")
os.Exit(1)
}
}
Expand Down
6 changes: 6 additions & 0 deletions internal/build/mode.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ var DebugMode = Mode{
IsAot: false,
}

// JitReleaseMode is the same debug build, but disables the terminal windows on Windows
var JitReleaseMode = Mode{
Name: "debug_unopt",
IsAot: false,
}

var ReleaseMode = Mode{
Name: "release",
IsAot: true,
Expand Down