@@ -30,22 +30,18 @@ import (
3030 "github.com/arduino/arduino-cli/arduino/builder/utils"
3131 "github.com/arduino/arduino-cli/arduino/globals"
3232 "github.com/arduino/arduino-cli/arduino/libraries"
33- "github.com/arduino/arduino-cli/arduino/sketch"
3433 "github.com/arduino/arduino-cli/legacy/builder/constants"
3534)
3635
3736var lineMatcher = regexp .MustCompile (`^#line\s\d+\s"` )
3837
39- func ExportProjectCMake (
38+ func ( b * Builder ) ExportProjectCMake (
4039 sketchError bool , // Was there an error while compiling the sketch?
41- buildPath , sketchBuildPath * paths.Path ,
4240 importedLibraries libraries.List ,
43- buildProperties * properties.Map ,
44- sketch * sketch.Sketch ,
4541 includeFolders paths.PathList ,
4642 lineOffset int ,
4743 onlyUpdateCompilationDatabase bool ,
48- ) ([] byte , [] byte , error ) {
44+ ) error {
4945 // copies the contents of the file named src to the file named
5046 // by dst. The file will be created if it does not already exist. If the
5147 // destination file exists, all it's contents will be replaced by the contents
@@ -182,12 +178,12 @@ func ExportProjectCMake(
182178 var validStaticLibExtensions = []string {".a" }
183179
184180 // If sketch error or cannot export Cmake project
185- if sketchError || buildProperties .Get ("compiler.export_cmake" ) == "" {
186- return nil , nil , nil
181+ if sketchError || b . buildProperties .Get ("compiler.export_cmake" ) == "" {
182+ return nil
187183 }
188184
189185 // Create new cmake subFolder - clean if the folder is already there
190- cmakeFolder := buildPath .Join ("_cmake" )
186+ cmakeFolder := b . buildPath .Join ("_cmake" )
191187 if _ , err := cmakeFolder .Stat (); err == nil {
192188 cmakeFolder .RemoveAll ()
193189 }
@@ -207,7 +203,7 @@ func ExportProjectCMake(
207203 for _ , library := range importedLibraries {
208204 // Copy used libraries in the correct folder
209205 libDir := libBaseFolder .Join (library .DirName )
210- mcu := buildProperties .Get ("build.mcu" )
206+ mcu := b . buildProperties .Get ("build.mcu" )
211207 copyDir (library .InstallDir .String (), libDir .String (), validExportExtensions )
212208
213209 // Read cmake options if available
@@ -238,28 +234,20 @@ func ExportProjectCMake(
238234 }
239235
240236 // Copy core + variant in use + preprocessed sketch in the correct folders
241- err := copyDir (buildProperties .Get ("build.core.path" ), coreFolder .String (), validExportExtensions )
237+ err := copyDir (b . buildProperties .Get ("build.core.path" ), coreFolder .String (), validExportExtensions )
242238 if err != nil {
243239 fmt .Println (err )
244240 }
245- err = copyDir (buildProperties .Get ("build.variant.path" ), coreFolder .Join ("variant" ).String (), validExportExtensions )
241+ err = copyDir (b . buildProperties .Get ("build.variant.path" ), coreFolder .Join ("variant" ).String (), validExportExtensions )
246242 if err != nil {
247243 fmt .Println (err )
248244 }
249245
250- normalOutput , verboseOutput , err := PreprocessSketch (
251- sketch ,
252- buildPath ,
253- includeFolders ,
254- lineOffset ,
255- buildProperties ,
256- onlyUpdateCompilationDatabase ,
257- )
258- if err != nil {
259- return normalOutput , verboseOutput , err
246+ if err := b .PreprocessSketch (includeFolders , lineOffset , onlyUpdateCompilationDatabase ); err != nil {
247+ return err
260248 }
261249
262- err = copyDir (sketchBuildPath .String (), cmakeFolder .Join ("sketch" ).String (), validExportExtensions )
250+ err = copyDir (b . sketchBuildPath .String (), cmakeFolder .Join ("sketch" ).String (), validExportExtensions )
263251 if err != nil {
264252 fmt .Println (err )
265253 }
@@ -294,9 +282,9 @@ func ExportProjectCMake(
294282 var dynamicLibsFromGccMinusL []string
295283 var linkDirectories []string
296284
297- extractCompileFlags (buildProperties , constants .RECIPE_C_COMBINE_PATTERN , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
298- extractCompileFlags (buildProperties , "recipe.c.o.pattern" , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
299- extractCompileFlags (buildProperties , "recipe.cpp.o.pattern" , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
285+ extractCompileFlags (b . buildProperties , constants .RECIPE_C_COMBINE_PATTERN , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
286+ extractCompileFlags (b . buildProperties , "recipe.c.o.pattern" , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
287+ extractCompileFlags (b . buildProperties , "recipe.cpp.o.pattern" , & defines , & dynamicLibsFromGccMinusL , & linkerflags , & linkDirectories )
300288
301289 // Extract folders with .h in them for adding in include list
302290 headerFiles , _ := utils .FindFilesInFolder (cmakeFolder , true , validHeaderExtensions ... )
@@ -307,7 +295,7 @@ func ExportProjectCMake(
307295
308296 // Generate the CMakeLists global file
309297
310- projectName := sketch .Name
298+ projectName := b . sketch .Name
311299
312300 cmakelist := "cmake_minimum_required(VERSION 3.5.0)\n "
313301 cmakelist += "INCLUDE(FindPkgConfig)\n "
@@ -364,7 +352,7 @@ func ExportProjectCMake(
364352
365353 cmakeFile .WriteFile ([]byte (cmakelist ))
366354
367- return normalOutput , verboseOutput , nil
355+ return nil
368356}
369357
370358func extractCompileFlags (buildProperties * properties.Map , recipe string , defines , dynamicLibs , linkerflags , linkDirectories * []string ) {
0 commit comments