48 class dynamicCodeContext;
94 std::string makeOptions_;
215 return codeRoot_/codeDirName_;
222 return codeRoot_/libSubDir_/
"lib" + codeName_ +
".so";
238 return codeRoot_/codeDirName_/
"Make/SHA1Digest";
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
An STL-conforming hash table.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A 2-tuple for storing two objects of different types.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Encapsulation of dynamic code dictionaries.
Tools for handling dynamic code compilation.
const word & codeName() const
Return the code-name.
const word & codeDirName() const
Return the code-dirname.
static int allowSystemOperations
Flag if system operations are allowed.
static void copyAndFilter(ISstream &, OSstream &, const HashTable< string > &mapping)
Copy lines while expanding variables.
dynamicCode(const word &codeName, const word &codeDirName="")
Construct for a specified code name and code directory name.
fileName codePath() const
Path for specified code name.
bool copyOrCreateFiles(const bool verbose=false) const
Copy/create files prior to compilation.
fileName libPath() const
Library path for specified code name.
void addCopyFile(const fileName &name)
Add a file template name, which will be found and filtered.
const fileName & codeRoot() const
Root for dynamic code compilation.
fileName libSubDir() const
Subdirectory name for loading libraries.
void reset(const dynamicCodeContext &)
Clear files and reset variables to specified context.
fileName libRelPath() const
Library path for specified code name relative to $FOAM_CASE.
void addCreateFile(const fileName &name, const string &contents)
Add a file to create with its contents. Will not be filtered.
static bool resolveTemplates(const UList< fileName > &templateNames, DynamicList< fileName > &resolvedFiles, DynamicList< fileName > &badFiles)
Resolve code-templates via the codeTemplateEnvName.
static const word codeTemplateEnvName
Name of the code template environment variable.
static const char *const topDirName
Top-level directory name for copy/compiling.
void setFilterVariable(const word &key, const std::string &value)
Define a filter variable.
static const char *const libTargetRoot
Root of the LIB target for Make/files.
static word libraryBaseName(const fileName &libPath)
Return the library basename without leading 'lib' or trailing '.so'.
static void checkSecurity(const char *title, const dictionary &)
Check security for creating dynamic code.
void operator=(const dynamicCode &)=delete
Disallow default bitwise assignment.
bool createMakeFiles() const
Copy/create Make/files prior to compilation.
fileName digestFile() const
Path for SHA1Digest.
bool writeDigest(const SHA1Digest &) const
Write digest to Make/SHA1Digest.
fileName codeRelPath() const
Path for specified code name relative to $FOAM_CASE.
void addCompileFile(const fileName &name)
Add a file template name, which will be found and filtered.
Tuple2< fileName, string > fileAndContent
void clear()
Clear files and variables.
static fileName resolveTemplate(const fileName &templateName)
Resolve code-template via the codeTemplateEnvName.
bool upToDate(const dynamicCodeContext &context) const
Verify if the copied code is up-to-date, based on Make/SHA1Digest.
static const fileName codeTemplateDirName
Name of the code template sub-directory.
bool createMakeOptions() const
Copy/create Make/options prior to compilation.
bool wmakeLibso() const
Compile a libso.
bool writeCommentSHA1(Ostream &) const
Write SHA1 value as C-comment.
void setMakeOptions(const std::string &content)
Define contents for Make/options.
A class for handling file names.
A class for handling words, derived from string.
word name(const bool)
Return a word representation of a bool.