@@ -41,11 +41,12 @@ import (
4141 "arduino.cc/builder/constants"
4242 "arduino.cc/builder/i18n"
4343 "arduino.cc/builder/utils"
44+ "arduino.cc/builder/types"
4445 "arduino.cc/properties"
4546)
4647
47- func CompileFilesRecursive (objectFiles []string , sourcePath string , buildPath string , buildProperties properties.Map , includes []string , verbose bool , warningsLevel string , logger i18n. Logger ) ([]string , error ) {
48- objectFiles , err := CompileFiles (objectFiles , sourcePath , false , buildPath , buildProperties , includes , verbose , warningsLevel , logger )
48+ func CompileFilesRecursive (ctx * types. Context , objectFiles []string , sourcePath string , buildPath string , buildProperties properties.Map , includes []string ) ([]string , error ) {
49+ objectFiles , err := CompileFiles (ctx , objectFiles , sourcePath , false , buildPath , buildProperties , includes )
4950 if err != nil {
5051 return nil , i18n .WrapError (err )
5152 }
@@ -56,7 +57,7 @@ func CompileFilesRecursive(objectFiles []string, sourcePath string, buildPath st
5657 }
5758
5859 for _ , folder := range folders {
59- objectFiles , err = CompileFilesRecursive (objectFiles , filepath .Join (sourcePath , folder .Name ()), filepath .Join (buildPath , folder .Name ()), buildProperties , includes , verbose , warningsLevel , logger )
60+ objectFiles , err = CompileFilesRecursive (ctx , objectFiles , filepath .Join (sourcePath , folder .Name ()), filepath .Join (buildPath , folder .Name ()), buildProperties , includes )
6061 if err != nil {
6162 return nil , i18n .WrapError (err )
6263 }
@@ -65,28 +66,28 @@ func CompileFilesRecursive(objectFiles []string, sourcePath string, buildPath st
6566 return objectFiles , nil
6667}
6768
68- func CompileFiles (objectFiles []string , sourcePath string , recurse bool , buildPath string , buildProperties properties.Map , includes []string , verbose bool , warningsLevel string , logger i18n. Logger ) ([]string , error ) {
69- objectFiles , err := compileFilesWithExtensionWithRecipe (objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".S" , constants .RECIPE_S_PATTERN , verbose , warningsLevel , logger )
69+ func CompileFiles (ctx * types. Context , objectFiles []string , sourcePath string , recurse bool , buildPath string , buildProperties properties.Map , includes []string ) ([]string , error ) {
70+ objectFiles , err := compileFilesWithExtensionWithRecipe (ctx , objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".S" , constants .RECIPE_S_PATTERN )
7071 if err != nil {
7172 return nil , i18n .WrapError (err )
7273 }
73- objectFiles , err = compileFilesWithExtensionWithRecipe (objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".c" , constants .RECIPE_C_PATTERN , verbose , warningsLevel , logger )
74+ objectFiles , err = compileFilesWithExtensionWithRecipe (ctx , objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".c" , constants .RECIPE_C_PATTERN )
7475 if err != nil {
7576 return nil , i18n .WrapError (err )
7677 }
77- objectFiles , err = compileFilesWithExtensionWithRecipe (objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".cpp" , constants .RECIPE_CPP_PATTERN , verbose , warningsLevel , logger )
78+ objectFiles , err = compileFilesWithExtensionWithRecipe (ctx , objectFiles , sourcePath , recurse , buildPath , buildProperties , includes , ".cpp" , constants .RECIPE_CPP_PATTERN )
7879 if err != nil {
7980 return nil , i18n .WrapError (err )
8081 }
8182 return objectFiles , nil
8283}
8384
84- func compileFilesWithExtensionWithRecipe (objectFiles []string , sourcePath string , recurse bool , buildPath string , buildProperties properties.Map , includes []string , extension string , recipe string , verbose bool , warningsLevel string , logger i18n. Logger ) ([]string , error ) {
85+ func compileFilesWithExtensionWithRecipe (ctx * types. Context , objectFiles []string , sourcePath string , recurse bool , buildPath string , buildProperties properties.Map , includes []string , extension string , recipe string ) ([]string , error ) {
8586 sources , err := findFilesInFolder (sourcePath , extension , recurse )
8687 if err != nil {
8788 return nil , i18n .WrapError (err )
8889 }
89- return compileFilesWithRecipe (objectFiles , sourcePath , sources , buildPath , buildProperties , includes , recipe , verbose , warningsLevel , logger )
90+ return compileFilesWithRecipe (ctx , objectFiles , sourcePath , sources , buildPath , buildProperties , includes , recipe )
9091}
9192
9293func findFilesInFolder (sourcePath string , extension string , recurse bool ) ([]string , error ) {
@@ -145,9 +146,9 @@ func findAllFilesInFolder(sourcePath string, recurse bool) ([]string, error) {
145146 return sources , nil
146147}
147148
148- func compileFilesWithRecipe (objectFiles []string , sourcePath string , sources []string , buildPath string , buildProperties properties.Map , includes []string , recipe string , verbose bool , warningsLevel string , logger i18n. Logger ) ([]string , error ) {
149+ func compileFilesWithRecipe (ctx * types. Context , objectFiles []string , sourcePath string , sources []string , buildPath string , buildProperties properties.Map , includes []string , recipe string ) ([]string , error ) {
149150 for _ , source := range sources {
150- objectFile , err := compileFileWithRecipe (sourcePath , source , buildPath , buildProperties , includes , recipe , verbose , warningsLevel , logger )
151+ objectFile , err := compileFileWithRecipe (ctx , sourcePath , source , buildPath , buildProperties , includes , recipe )
151152 if err != nil {
152153 return nil , i18n .WrapError (err )
153154 }
@@ -157,9 +158,10 @@ func compileFilesWithRecipe(objectFiles []string, sourcePath string, sources []s
157158 return objectFiles , nil
158159}
159160
160- func compileFileWithRecipe (sourcePath string , source string , buildPath string , buildProperties properties.Map , includes []string , recipe string , verbose bool , warningsLevel string , logger i18n.Logger ) (string , error ) {
161+ func compileFileWithRecipe (ctx * types.Context , sourcePath string , source string , buildPath string , buildProperties properties.Map , includes []string , recipe string ) (string , error ) {
162+ logger := ctx .GetLogger ()
161163 properties := buildProperties .Clone ()
162- properties [constants .BUILD_PROPERTIES_COMPILER_WARNING_FLAGS ] = properties [constants .BUILD_PROPERTIES_COMPILER_WARNING_FLAGS + "." + warningsLevel ]
164+ properties [constants .BUILD_PROPERTIES_COMPILER_WARNING_FLAGS ] = properties [constants .BUILD_PROPERTIES_COMPILER_WARNING_FLAGS + "." + ctx . WarningsLevel ]
163165 properties [constants .BUILD_PROPERTIES_INCLUDES ] = strings .Join (includes , constants .SPACE )
164166 properties [constants .BUILD_PROPERTIES_SOURCE_FILE ] = source
165167 relativeSource , err := filepath .Rel (sourcePath , source )
@@ -179,11 +181,11 @@ func compileFileWithRecipe(sourcePath string, source string, buildPath string, b
179181 }
180182
181183 if ! objIsUpToDate {
182- _ , err = ExecRecipe (properties , recipe , false , verbose , verbose , logger )
184+ _ , err = ExecRecipe (properties , recipe , false , ctx . Verbose , ctx . Verbose , logger )
183185 if err != nil {
184186 return "" , i18n .WrapError (err )
185187 }
186- } else if verbose {
188+ } else if ctx . Verbose {
187189 logger .Println (constants .LOG_LEVEL_INFO , constants .MSG_USING_PREVIOUS_COMPILED_FILE , properties [constants .BUILD_PROPERTIES_OBJECT_FILE ])
188190 }
189191
@@ -309,7 +311,8 @@ func CoreOrReferencedCoreHasChanged(corePath, targetCorePath, targetFile string)
309311 return true
310312}
311313
312- func ArchiveCompiledFiles (buildPath string , archiveFile string , objectFiles []string , buildProperties properties.Map , verbose bool , logger i18n.Logger ) (string , error ) {
314+ func ArchiveCompiledFiles (ctx * types.Context , buildPath string , archiveFile string , objectFiles []string , buildProperties properties.Map ) (string , error ) {
315+ logger := ctx .GetLogger ()
313316 archiveFilePath := filepath .Join (buildPath , archiveFile )
314317
315318 rebuildArchive := false
@@ -332,7 +335,7 @@ func ArchiveCompiledFiles(buildPath string, archiveFile string, objectFiles []st
332335 return "" , i18n .WrapError (err )
333336 }
334337 } else {
335- if verbose {
338+ if ctx . Verbose {
336339 logger .Println (constants .LOG_LEVEL_INFO , constants .MSG_USING_PREVIOUS_COMPILED_FILE , archiveFilePath )
337340 }
338341 return archiveFilePath , nil
@@ -345,7 +348,7 @@ func ArchiveCompiledFiles(buildPath string, archiveFile string, objectFiles []st
345348 properties [constants .BUILD_PROPERTIES_ARCHIVE_FILE_PATH ] = archiveFilePath
346349 properties [constants .BUILD_PROPERTIES_OBJECT_FILE ] = objectFile
347350
348- _ , err := ExecRecipe (properties , constants .RECIPE_AR_PATTERN , false , verbose , verbose , logger )
351+ _ , err := ExecRecipe (properties , constants .RECIPE_AR_PATTERN , false , ctx . Verbose , ctx . Verbose , logger )
349352 if err != nil {
350353 return "" , i18n .WrapError (err )
351354 }
0 commit comments