1111import flet .version
1212import flet_cli .utils .processes as processes
1313import yaml
14- from flet .utils import copy_tree , is_windows , slugify
14+ from flet .utils import cleanup_path , copy_tree , is_windows , slugify
1515from flet .utils .platform_utils import get_bool_env_var
1616from flet .version import update_version
1717from flet_cli .commands .base import BaseCommand
@@ -681,9 +681,35 @@ def install_flutter(self):
681681 ext = ".bat" if platform .system () == "Windows" else ""
682682 self .flutter_exe = os .path .join (flutter_dir , "bin" , f"flutter{ ext } " )
683683 self .dart_exe = os .path .join (flutter_dir , "bin" , f"dart{ ext } " )
684- self . env [ "PATH" ] = os . pathsep . join (
685- [ os .path . join ( flutter_dir , "bin " ), os . environ . get ( "PATH" , "" )]
684+ path_env = cleanup_path (
685+ cleanup_path ( os .environ . get ( "PATH" , "" ), "flutter" ) , "dart"
686686 )
687+ self .env ["PATH" ] = os .pathsep .join ([os .path .join (flutter_dir , "bin" ), path_env ])
688+
689+ # desktop mode
690+ if self .config_platform in ["macos" , "windows" , "linux" ]:
691+ if self .verbose > 0 :
692+ console .log (
693+ f"Ensure Flutter has desktop support enabled" ,
694+ style = verbose1_style ,
695+ )
696+ config_result = self .run (
697+ [
698+ self .flutter_exe ,
699+ "config" ,
700+ "--suppress-analytics" ,
701+ f"--enable-{ self .config_platform } -desktop" ,
702+ ],
703+ cwd = os .getcwd (),
704+ capture_output = self .verbose < 1 ,
705+ )
706+ if config_result .returncode != 0 :
707+ if config_result .stdout :
708+ console .log (config_result .stdout , style = verbose1_style )
709+ if config_result .stderr :
710+ console .log (config_result .stderr , style = error_style )
711+ self .cleanup (config_result .returncode )
712+
687713 console .log (
688714 f"Flutter { MINIMAL_FLUTTER_VERSION } installed { self .emojis ['checkmark' ]} "
689715 )
@@ -692,7 +718,32 @@ def install_jdk(self):
692718 from flet_cli .utils .jdk import install_jdk
693719
694720 self .status .update (f"[bold blue]Installing JDK..." )
695- self .env ["JAVA_HOME" ] = install_jdk (self .log_stdout , progress = self .progress )
721+ jdk_dir = install_jdk (self .log_stdout , progress = self .progress )
722+ self .env ["JAVA_HOME" ] = jdk_dir
723+
724+ # config flutter's JDK dir
725+ if self .verbose > 0 :
726+ console .log (
727+ f"Configuring Flutter's path to JDK" ,
728+ style = verbose1_style ,
729+ )
730+ config_result = self .run (
731+ [
732+ self .flutter_exe ,
733+ "config" ,
734+ "--suppress-analytics" ,
735+ f"--jdk-dir={ jdk_dir } " ,
736+ ],
737+ cwd = os .getcwd (),
738+ capture_output = self .verbose < 1 ,
739+ )
740+ if config_result .returncode != 0 :
741+ if config_result .stdout :
742+ console .log (config_result .stdout , style = verbose1_style )
743+ if config_result .stderr :
744+ console .log (config_result .stderr , style = error_style )
745+ self .cleanup (config_result .returncode )
746+
696747 console .log (f"JDK installed { self .emojis ['checkmark' ]} " )
697748
698749 def install_android_sdk (self ):
0 commit comments