@@ -25,46 +25,49 @@ def print_output(self, renderable: RenderableType) -> None:
25
25
def compile_libs (self ) -> None :
26
26
# Compile the libraries
27
27
28
- # Get the Arduino path from the command line arguments or use the default path
29
- arduino_path = ""
30
- if len (sys .argv ) > 1 :
31
- arduino_path = sys .argv [1 ]
32
- else :
33
- arduino_path = "/arduino-esp32"
34
-
35
28
label = self .query_one ("#compile-title" , Static )
36
29
self .child_process = None
37
30
target = self .app .setting_target
38
31
39
- if os .path .exists (arduino_path ):
40
- print ("Starting compilation process. Using Arduino path: " + arduino_path )
32
+ print ("Compiling for " + target .upper ())
33
+ label .update ("Compiling for " + target .upper ())
34
+ self .print_output ("======== Compiling for " + target .upper () + " ========" )
41
35
42
- print ("Compiling for " + target .upper ())
43
- if target == "all" :
44
- command = ["./build.sh" , "-c" , arduino_path ]
36
+ command = ["./build.sh" , "-t" , target , "-D" , self .app .setting_debug_level ]
37
+ #command.append("--help") # For testing without compiling
38
+
39
+ if self .app .setting_enable_copy :
40
+ if os .path .isdir (self .app .setting_arduino_path ):
41
+ command .extend (["-c" , self .app .setting_arduino_path ])
45
42
else :
46
- command = ["./build.sh" , "-c" , arduino_path , "-t" , target ]
47
- #command.append("--help") # For testing without compiling
48
-
49
- label .update ("Compiling for " + target .upper ())
50
- self .print_output ("======== Compiling for " + target .upper () + " ========" )
51
- self .print_output ("Running: " + " " .join (command ) + "\n " )
52
- print ("Running: " + " " .join (command ))
53
- self .child_process = subprocess .Popen (command , stdout = subprocess .PIPE , stderr = subprocess .PIPE , text = True , shell = True )
54
- for output in self .child_process .stdout :
55
- if output == '' and self .child_process .poll () is not None :
56
- print ("Child process finished" )
57
- break
58
- if output :
59
- self .print_output (output .strip ()) # Update RichLog widget with subprocess output
60
- self .child_process .stdout .close ()
61
- else :
62
- print ("Arduino path does not exist: " + arduino_path )
63
- self .print_output ("Arduino path does not exist: " + arduino_path )
43
+ print ("Invalid path to Arduino core: " + self .app .setting_arduino_path )
44
+ self .print_output ("Invalid path to Arduino core: " + self .app .setting_arduino_path )
45
+ label .update ("Invalid path to Arduino core" )
46
+ return
47
+
48
+ if self .app .setting_arduino_branch :
49
+ command .extend (["-A" , self .app .setting_arduino_branch ])
50
+
51
+ if self .app .setting_idf_branch :
52
+ command .extend (["-I" , self .app .setting_idf_branch ])
53
+
54
+ if self .app .setting_idf_commit :
55
+ command .extend (["-i" , self .app .setting_idf_commit ])
56
+
57
+ self .print_output ("Running: " + " " .join (command ) + "\n " )
58
+ print ("Running: " + " " .join (command ))
59
+ self .child_process = subprocess .Popen (command , stdout = subprocess .PIPE , stderr = subprocess .PIPE , text = True , shell = True )
60
+ for output in self .child_process .stdout :
61
+ if output == '' and self .child_process .poll () is not None :
62
+ print ("Child process finished" )
63
+ break
64
+ if output :
65
+ self .print_output (output .strip ()) # Update RichLog widget with subprocess output
66
+ self .child_process .stdout .close ()
64
67
65
68
if not self .child_process :
66
- print ("Compilation failed for " + target .upper () + ". Invalid path to Arduino core. " )
67
- label .update ("Compilation failed for " + target .upper () + ". Invalid path to Arduino core. " )
69
+ print ("Compilation failed for " + target .upper () + "Child process failed to start " )
70
+ label .update ("Compilation failed for " + target .upper () + "Child process failed to start " )
68
71
elif self .child_process .returncode != 0 :
69
72
print ("Compilation failed for " + target .upper () + ". Return code: " + str (self .child_process .returncode ))
70
73
self .print_output ("Compilation failed for " + target .upper () + ". Return code: " + str (self .child_process .returncode ))
0 commit comments