|
16 | 16 | package phases
|
17 | 17 |
|
18 | 18 | import (
|
| 19 | + "io" |
| 20 | + |
| 21 | + "github.com/arduino/arduino-cli/arduino/builder" |
19 | 22 | "github.com/arduino/arduino-cli/arduino/builder/cpp"
|
| 23 | + "github.com/arduino/arduino-cli/arduino/builder/progress" |
20 | 24 | "github.com/arduino/arduino-cli/arduino/builder/utils"
|
21 | 25 | f "github.com/arduino/arduino-cli/internal/algorithms"
|
22 |
| - "github.com/arduino/arduino-cli/legacy/builder/types" |
| 26 | + rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" |
| 27 | + "github.com/arduino/go-paths-helper" |
| 28 | + "github.com/arduino/go-properties-orderedmap" |
23 | 29 | "github.com/pkg/errors"
|
24 | 30 | )
|
25 | 31 |
|
26 |
| -type SketchBuilder struct{} |
27 |
| - |
28 |
| -func (s *SketchBuilder) Run(ctx *types.Context) error { |
29 |
| - sketchBuildPath := ctx.SketchBuildPath |
30 |
| - buildProperties := ctx.BuildProperties |
31 |
| - includesFolders := ctx.SketchLibrariesDetector.IncludeFolders() |
| 32 | +func SketchBuilder( |
| 33 | + sketchBuildPath *paths.Path, |
| 34 | + buildProperties *properties.Map, |
| 35 | + includesFolders paths.PathList, |
| 36 | + onlyUpdateCompilationDatabase, verbose bool, |
| 37 | + compilationDatabase *builder.CompilationDatabase, |
| 38 | + jobs int, |
| 39 | + warningsLevel string, |
| 40 | + stdoutWriter, stderrWriter io.Writer, |
| 41 | + verboseInfoFn func(msg string), |
| 42 | + verboseStdoutFn, verboseStderrFn func(data []byte), |
| 43 | + progress *progress.Struct, progressCB rpc.TaskProgressCB, |
| 44 | +) (paths.PathList, error) { |
32 | 45 | includes := f.Map(includesFolders.AsStrings(), cpp.WrapWithHyphenI)
|
33 | 46 |
|
34 | 47 | if err := sketchBuildPath.MkdirAll(); err != nil {
|
35 |
| - return errors.WithStack(err) |
| 48 | + return nil, errors.WithStack(err) |
36 | 49 | }
|
37 | 50 |
|
38 |
| - objectFiles, err := utils.CompileFiles( |
| 51 | + sketchObjectFiles, err := utils.CompileFiles( |
39 | 52 | sketchBuildPath, sketchBuildPath, buildProperties, includes,
|
40 |
| - ctx.OnlyUpdateCompilationDatabase, |
41 |
| - ctx.CompilationDatabase, |
42 |
| - ctx.Jobs, |
43 |
| - ctx.Verbose, |
44 |
| - ctx.WarningsLevel, |
45 |
| - ctx.Stdout, ctx.Stderr, |
46 |
| - func(msg string) { ctx.Info(msg) }, |
47 |
| - func(data []byte) { ctx.WriteStdout(data) }, |
48 |
| - func(data []byte) { ctx.WriteStderr(data) }, |
49 |
| - &ctx.Progress, ctx.ProgressCB, |
| 53 | + onlyUpdateCompilationDatabase, |
| 54 | + compilationDatabase, |
| 55 | + jobs, |
| 56 | + verbose, |
| 57 | + warningsLevel, |
| 58 | + stdoutWriter, stderrWriter, |
| 59 | + verboseInfoFn, |
| 60 | + verboseStdoutFn, |
| 61 | + verboseStderrFn, |
| 62 | + progress, progressCB, |
50 | 63 | )
|
51 | 64 | if err != nil {
|
52 |
| - return errors.WithStack(err) |
| 65 | + return nil, errors.WithStack(err) |
53 | 66 | }
|
54 | 67 |
|
55 | 68 | // The "src/" subdirectory of a sketch is compiled recursively
|
56 | 69 | sketchSrcPath := sketchBuildPath.Join("src")
|
57 | 70 | if sketchSrcPath.IsDir() {
|
58 | 71 | srcObjectFiles, err := utils.CompileFilesRecursive(
|
59 | 72 | sketchSrcPath, sketchSrcPath, buildProperties, includes,
|
60 |
| - ctx.OnlyUpdateCompilationDatabase, |
61 |
| - ctx.CompilationDatabase, |
62 |
| - ctx.Jobs, |
63 |
| - ctx.Verbose, |
64 |
| - ctx.WarningsLevel, |
65 |
| - ctx.Stdout, ctx.Stderr, |
66 |
| - func(msg string) { ctx.Info(msg) }, |
67 |
| - func(data []byte) { ctx.WriteStdout(data) }, |
68 |
| - func(data []byte) { ctx.WriteStderr(data) }, |
69 |
| - &ctx.Progress, ctx.ProgressCB, |
| 73 | + onlyUpdateCompilationDatabase, |
| 74 | + compilationDatabase, |
| 75 | + jobs, |
| 76 | + verbose, |
| 77 | + warningsLevel, |
| 78 | + stdoutWriter, stderrWriter, |
| 79 | + verboseInfoFn, |
| 80 | + verboseStdoutFn, |
| 81 | + verboseStderrFn, |
| 82 | + progress, progressCB, |
70 | 83 | )
|
71 | 84 | if err != nil {
|
72 |
| - return errors.WithStack(err) |
| 85 | + return nil, errors.WithStack(err) |
73 | 86 | }
|
74 |
| - objectFiles.AddAll(srcObjectFiles) |
| 87 | + sketchObjectFiles.AddAll(srcObjectFiles) |
75 | 88 | }
|
76 | 89 |
|
77 |
| - ctx.SketchObjectFiles = objectFiles |
78 |
| - |
79 |
| - return nil |
| 90 | + return sketchObjectFiles, nil |
80 | 91 | }
|
0 commit comments