@@ -30,22 +30,18 @@ import (
30
30
"github.com/arduino/arduino-cli/arduino/builder/utils"
31
31
"github.com/arduino/arduino-cli/arduino/globals"
32
32
"github.com/arduino/arduino-cli/arduino/libraries"
33
- "github.com/arduino/arduino-cli/arduino/sketch"
34
33
"github.com/arduino/arduino-cli/legacy/builder/constants"
35
34
)
36
35
37
36
var lineMatcher = regexp .MustCompile (`^#line\s\d+\s"` )
38
37
39
- func ExportProjectCMake (
38
+ func ( b * Builder ) ExportProjectCMake (
40
39
sketchError bool , // Was there an error while compiling the sketch?
41
- buildPath , sketchBuildPath * paths.Path ,
42
40
importedLibraries libraries.List ,
43
- buildProperties * properties.Map ,
44
- sketch * sketch.Sketch ,
45
41
includeFolders paths.PathList ,
46
42
lineOffset int ,
47
43
onlyUpdateCompilationDatabase bool ,
48
- ) ([] byte , [] byte , error ) {
44
+ ) error {
49
45
// copies the contents of the file named src to the file named
50
46
// by dst. The file will be created if it does not already exist. If the
51
47
// destination file exists, all it's contents will be replaced by the contents
@@ -182,12 +178,12 @@ func ExportProjectCMake(
182
178
var validStaticLibExtensions = []string {".a" }
183
179
184
180
// 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
187
183
}
188
184
189
185
// Create new cmake subFolder - clean if the folder is already there
190
- cmakeFolder := buildPath .Join ("_cmake" )
186
+ cmakeFolder := b . buildPath .Join ("_cmake" )
191
187
if _ , err := cmakeFolder .Stat (); err == nil {
192
188
cmakeFolder .RemoveAll ()
193
189
}
@@ -207,7 +203,7 @@ func ExportProjectCMake(
207
203
for _ , library := range importedLibraries {
208
204
// Copy used libraries in the correct folder
209
205
libDir := libBaseFolder .Join (library .DirName )
210
- mcu := buildProperties .Get ("build.mcu" )
206
+ mcu := b . buildProperties .Get ("build.mcu" )
211
207
copyDir (library .InstallDir .String (), libDir .String (), validExportExtensions )
212
208
213
209
// Read cmake options if available
@@ -238,28 +234,20 @@ func ExportProjectCMake(
238
234
}
239
235
240
236
// 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 )
242
238
if err != nil {
243
239
fmt .Println (err )
244
240
}
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 )
246
242
if err != nil {
247
243
fmt .Println (err )
248
244
}
249
245
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
260
248
}
261
249
262
- err = copyDir (sketchBuildPath .String (), cmakeFolder .Join ("sketch" ).String (), validExportExtensions )
250
+ err = copyDir (b . sketchBuildPath .String (), cmakeFolder .Join ("sketch" ).String (), validExportExtensions )
263
251
if err != nil {
264
252
fmt .Println (err )
265
253
}
@@ -294,9 +282,9 @@ func ExportProjectCMake(
294
282
var dynamicLibsFromGccMinusL []string
295
283
var linkDirectories []string
296
284
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 )
300
288
301
289
// Extract folders with .h in them for adding in include list
302
290
headerFiles , _ := utils .FindFilesInFolder (cmakeFolder , true , validHeaderExtensions ... )
@@ -307,7 +295,7 @@ func ExportProjectCMake(
307
295
308
296
// Generate the CMakeLists global file
309
297
310
- projectName := sketch .Name
298
+ projectName := b . sketch .Name
311
299
312
300
cmakelist := "cmake_minimum_required(VERSION 3.5.0)\n "
313
301
cmakelist += "INCLUDE(FindPkgConfig)\n "
@@ -364,7 +352,7 @@ func ExportProjectCMake(
364
352
365
353
cmakeFile .WriteFile ([]byte (cmakelist ))
366
354
367
- return normalOutput , verboseOutput , nil
355
+ return nil
368
356
}
369
357
370
358
func extractCompileFlags (buildProperties * properties.Map , recipe string , defines , dynamicLibs , linkerflags , linkDirectories * []string ) {
0 commit comments