diff --git a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C index 48691501ee..a35de05c8c 100644 --- a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C +++ b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C @@ -85,6 +85,14 @@ Foam::dynamicCodeContext::dynamicCodeContext(const dictionary& dict) stringOps::inplaceExpand(libs_, dict); } + // optional + const entry* localPtr = dict.lookupEntryPtr("localCode", false, false); + if (localPtr) + { + localCode_ = stringOps::trim(localPtr->stream()); + stringOps::inplaceExpand(localCode_, dict); + } + // calculate SHA1 digest from include, options, localCode, code OSHA1stream os; os << include_ << options_ << libs_ << localCode_ << code_; @@ -103,14 +111,18 @@ Foam::dynamicCodeContext::dynamicCodeContext(const dictionary& dict) { addLineDirective(include_, includePtr->startLineNumber(), dict.name()); } - if (optionsPtr) - { - addLineDirective(options_, optionsPtr->startLineNumber(), dict.name()); - } + + // Do not add line directive to options_ (Make/options) since at it is a + // single line at this point. Can be fixed. + if (libsPtr) { addLineDirective(libs_, libsPtr->startLineNumber(), dict.name()); } + if (localPtr) + { + addLineDirective(localCode_, localPtr->startLineNumber(), dict.name()); + } }