Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit aa33373

Browse files
committed
Split composed sketch and preprocessed sketch into different files
1 parent 2d449aa commit aa33373

File tree

3 files changed

+7
-14
lines changed

3 files changed

+7
-14
lines changed

‎internal/arduino/builder/internal/detector/detector.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ func (l *SketchLibrariesDetector) findIncludes(
289289
sourceFileQueue := &uniqueSourceFileQueue{}
290290

291291
if !l.useCachedLibrariesResolution {
292-
mergedfile, err := makeSourceFile(sketchBuildPath, sketchBuildPath, paths.New(sketch.MainFile.Base()+".cpp"))
292+
mergedfile, err := makeSourceFile(sketchBuildPath, sketchBuildPath, paths.New(sketch.MainFile.Base()+".cpp.merged"))
293293
if err != nil {
294294
return err
295295
}

‎internal/arduino/builder/internal/preprocessor/ctags.go‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,17 @@ func PreprocessSketchWithCtags(
5757

5858
// Check if the preprocessed file is already up-to-date
5959
unpreprocessedSourceFile := buildPath.Join("sketch", sketch.MainFile.Base()+".cpp.merged")
60-
sourceFile := buildPath.Join("sketch", sketch.MainFile.Base()+".cpp")
60+
preprocessedSourceFile := buildPath.Join("sketch", sketch.MainFile.Base()+".cpp")
6161
if unpreprocessedStat, err := unpreprocessedSourceFile.Stat(); err != nil {
6262
return nil, fmt.Errorf("%s: %w", i18n.Tr("unable to open unpreprocessed source file"), err)
63-
} else if sourceStat, err := sourceFile.Stat(); err != nil {
64-
return nil, fmt.Errorf("%s: %w", i18n.Tr("unable to open source file"), err)
65-
} else if unpreprocessedStat.ModTime().Before(sourceStat.ModTime()) {
63+
} else if sourceStat, err := preprocessedSourceFile.Stat(); err == nil && unpreprocessedStat.ModTime().Before(sourceStat.ModTime()) {
6664
fmt.Fprintln(stdout, i18n.Tr("Sketch is unchanged, skipping preprocessing."))
6765
res := &runner.Result{Stdout: stdout.Bytes(), Stderr: stderr.Bytes()}
6866
return res, nil
6967
}
7068

7169
// Run GCC preprocessor
72-
result := GCC(sourceFile, ctagsTarget, includes, buildProperties).Run(ctx)
70+
result := GCC(unpreprocessedSourceFile, ctagsTarget, includes, buildProperties).Run(ctx)
7371
stdout.Write(result.Stdout)
7472
stderr.Write(result.Stderr)
7573
if err := result.Error; err != nil {
@@ -81,7 +79,7 @@ func PreprocessSketchWithCtags(
8179
fmt.Fprintf(stderr, "%s: %s",
8280
i18n.Tr("An error occurred adding prototypes"),
8381
i18n.Tr("the compilation database may be incomplete or inaccurate"))
84-
if err := sourceFile.CopyTo(ctagsTarget); err != nil {
82+
if err := unpreprocessedSourceFile.CopyTo(ctagsTarget); err != nil {
8583
return &runner.Result{Args: result.Args, Stdout: stdout.Bytes(), Stderr: stderr.Bytes()}, err
8684
}
8785
}
@@ -114,7 +112,7 @@ func PreprocessSketchWithCtags(
114112

115113
// Add prototypes to the original sketch source
116114
var source string
117-
if sourceData, err := sourceFile.ReadFile(); err == nil {
115+
if sourceData, err := unpreprocessedSourceFile.ReadFile(); err == nil {
118116
source = string(sourceData)
119117
} else {
120118
return &runner.Result{Args: result.Args, Stdout: stdout.Bytes(), Stderr: stderr.Bytes()}, err
@@ -148,7 +146,7 @@ func PreprocessSketchWithCtags(
148146
}
149147

150148
// Write back arduino-preprocess output to the sourceFile
151-
err = sourceFile.WriteFile([]byte(preprocessedSource))
149+
err = preprocessedSourceFile.WriteFile([]byte(preprocessedSource))
152150
return &runner.Result{Args: result.Args, Stdout: stdout.Bytes(), Stderr: stderr.Bytes()}, err
153151
}
154152

‎internal/arduino/builder/sketch.go‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,6 @@ func (b *Builder) prepareSketchBuildPath() error {
6161
if err := destFileUnpreprocessed.WriteFile([]byte(mergedSource)); err != nil {
6262
return err
6363
}
64-
65-
destFile := b.sketchBuildPath.Join(b.sketch.MainFile.Base() + ".cpp")
66-
if err := destFileUnpreprocessed.CopyTo(destFile); err != nil {
67-
return err
68-
}
6964
}
7065

7166
if err := b.sketchCopyAdditionalFiles(b.sketchBuildPath, b.sourceOverrides); err != nil {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /