Skip to content

Commit 3bd60c6

Browse files
authored
[skip-changelog] regression: Fix property expansion of "recipe.preproc.macros" (#2268)
Previously the undefined template placeholders in "recipe.preproc.macros" were silently replaced the empty string. This changed after a refactoring in 0585435. Previously it was: 0585435#diff-371f93465ca5a66f01cbe876348f67990750091d27a827781c8633456b93ef3bL62 - cmd, err := builder_utils.PrepareCommandForRecipe(buildProperties, "recipe.preproc.macros", true, ctx.PackageManager.GetEnvVarsForSpawnedProcess()) The `true` parameter in the call to `builder_utils.PrepareCommandForRecipe` is the parameter `removeUnsetProperties`. This behaviour has not been ported over after the "refactoring": 0585435#diff-733dda6759fe968eb8a8d7305c37c7a320a8df52764ca0cba8e88a6f1d077eb5R44-R65 + const gccPreprocRecipeProperty = "recipe.preproc.macros" + if gccBuildProperties.Get(gccPreprocRecipeProperty) == "" { + // autogenerate preprocess macros recipe from compile recipe + preprocPattern := gccBuildProperties.Get("recipe.cpp.o.pattern") + // add {preproc.macros.flags} to {compiler.cpp.flags} + preprocPattern = strings.Replace(preprocPattern, "{compiler.cpp.flags}", "{compiler.cpp.flags} {preproc.macros.flags}", 1) + // replace "{object_file}" with "{preprocessed_file_path}" + preprocPattern = strings.Replace(preprocPattern, "{object_file}", "{preprocessed_file_path}", 1) + + gccBuildProperties.Set(gccPreprocRecipeProperty, preprocPattern) + } + + pattern := gccBuildProperties.Get(gccPreprocRecipeProperty) + if pattern == "" { + return nil, nil, errors.Errorf(tr("%s pattern is missing"), gccPreprocRecipeProperty) + } + + commandLine := gccBuildProperties.ExpandPropsInString(pattern) + args, err := properties.SplitQuotedString(commandLine, `"'`, false) + if err != nil { + return nil, nil, err + } that is missing the call to `properties.DeleteUnexpandedPropsFromString`.
1 parent 9510d61 commit 3bd60c6

File tree

1 file changed

+1
-0
lines changed
  • arduino/builder/preprocessor

1 file changed

+1
-0
lines changed

Diff for: arduino/builder/preprocessor/gcc.go

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ func GCC(sourceFilePath *paths.Path, targetFilePath *paths.Path, includes paths.
5959
}
6060

6161
commandLine := gccBuildProperties.ExpandPropsInString(pattern)
62+
commandLine = properties.DeleteUnexpandedPropsFromString(commandLine)
6263
args, err := properties.SplitQuotedString(commandLine, `"'`, false)
6364
if err != nil {
6465
return nil, nil, err

0 commit comments

Comments
 (0)