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 18335b6

Browse files
committed
Split composed sketch and preprocessed sketch into different files
1 parent a838351 commit 18335b6

File tree

3 files changed

+7
-15
lines changed

3 files changed

+7
-15
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 & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,6 @@ func (b *Builder) prepareSketchBuildPath() error {
6262
if err := destFileUnpreprocessed.WriteFile([]byte(mergedSource)); err != nil {
6363
return err
6464
}
65-
66-
b.logger.Warn(i18n.Tr("Generating sketch files in build path"))
67-
destFile := b.sketchBuildPath.Join(b.sketch.MainFile.Base() + ".cpp")
68-
if err := destFile.WriteFile([]byte(mergedSource)); err != nil {
69-
return err
70-
}
7165
} else {
7266
b.logger.Warn(fmt.Sprintf("%s %s", i18n.Tr("Generating sketch files in build path..."), i18n.Tr("(sketch unchanged)")))
7367
}

0 commit comments

Comments
(0)

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