CppADCodeGen  HEAD
A C++ Algorithmic Differentiation Package with Source Code Generation
CppAD::cg::GccCompiler< Base > Class Template Reference
Inheritance diagram for CppAD::cg::GccCompiler< Base >:
Inheritance graph
Collaboration diagram for CppAD::cg::GccCompiler< Base >:
Collaboration graph

Public Member Functions

 GccCompiler (const std::string &gccPath="/usr/bin/gcc")
 
 GccCompiler (const GccCompiler &orig)=delete
 
GccCompileroperator= (const GccCompiler &rhs)=delete
 
void buildDynamic (const std::string &library, JobTimer *timer=nullptr) override
 
std::string getCompilerPath () const
 
void setCompilerPath (const std::string &path)
 
const std::string & getTemporaryFolder () const override
 
void setTemporaryFolder (const std::string &tmpFolder) override
 
bool isSaveToDiskFirst () const override
 
void setSaveToDiskFirst (bool saveToDiskFirst) override
 
const std::string & getSourcesFolder () const override
 
void setSourcesFolder (const std::string &srcFolder) override
 
const std::set< std::string > & getObjectFiles () const override
 
const std::set< std::string > & getSourceFiles () const override
 
const std::vector< std::string > & getCompileFlags () const
 
void setCompileFlags (const std::vector< std::string > &compileFlags)
 
void addCompileFlag (const std::string &compileFlag)
 
const std::vector< std::string > & getLinkFlags () const
 
void setLinkFlags (const std::vector< std::string > &linkFlags)
 
void addLinkFlag (const std::string &linkFlag)
 
const std::vector< std::string > & getCompileLibFlags () const
 
void setCompileLibFlags (const std::vector< std::string > &compileLibFlags)
 
void addCompileLibFlag (const std::string &compileLibFlag)
 
bool isVerbose () const override
 
void setVerbose (bool verbose) override
 
void compileSources (const std::map< std::string, std::string > &sources, bool posIndepCode, JobTimer *timer=nullptr) override
 
virtual void compileSources (const std::map< std::string, std::string > &sources, bool posIndepCode, JobTimer *timer, const std::string &outputExtension, std::set< std::string > &outputFiles)
 
void cleanup () override
 

Protected Member Functions

void compileSource (const std::string &source, const std::string &output, bool posIndepCode) override
 
void compileFile (const std::string &path, const std::string &output, bool posIndepCode) override
 

Protected Attributes

std::string _path
 
std::string _tmpFolder
 
std::string _sourcesFolder
 
std::set< std::string > _ofiles
 
std::set< std::string > _sfiles
 
std::vector< std::string > _compileFlags
 
std::vector< std::string > _compileLibFlags
 
std::vector< std::string > _linkFlags
 
bool _verbose
 
bool _saveToDiskFirst
 

Detailed Description

template<class Base>
class CppAD::cg::GccCompiler< Base >

C compiler class used to create a dynamic library

Author
Joao Leal

Definition at line 28 of file gcc_compiler.hpp.

Member Function Documentation

◆ buildDynamic()

template<class Base >
void CppAD::cg::GccCompiler< Base >::buildDynamic ( const std::string &  library,
JobTimer timer = nullptr 
)
inlineoverridevirtual

Creates a dynamic library from a set of object files

Parameters
librarythe path to the dynamic library to be created

Implements CppAD::cg::AbstractCCompiler< Base >.

Definition at line 48 of file gcc_compiler.hpp.

◆ cleanup()

template<class Base >
void CppAD::cg::AbstractCCompiler< Base >::cleanup ( )
inlineoverridevirtualinherited

Deletes the previously compiled object files and clears of files to include in a dynamic library

Implements CppAD::cg::CCompiler< Base >.

Reimplemented in CppAD::cg::ClangCompiler< Base >.

Definition at line 254 of file abstract_c_compiler.hpp.

Referenced by CppAD::cg::ClangCompiler< Base >::cleanup().

◆ compileFile()

template<class Base >
void CppAD::cg::GccCompiler< Base >::compileFile ( const std::string &  path,
const std::string &  output,
bool  posIndepCode 
)
inlineoverrideprotectedvirtual

Compiles a single source file into an object file.

Parameters
paththe path to the source file
outputthe compiled output file name (the object file path)

Implements CppAD::cg::AbstractCCompiler< Base >.

Definition at line 110 of file gcc_compiler.hpp.

◆ compileSource()

template<class Base >
void CppAD::cg::GccCompiler< Base >::compileSource ( const std::string &  source,
const std::string &  output,
bool  posIndepCode 
)
inlineoverrideprotectedvirtual

Compiles a single source file into an object file

Parameters
sourcethe content of the source file
outputthe compiled output file name (the object file path)

Implements CppAD::cg::AbstractCCompiler< Base >.

Definition at line 92 of file gcc_compiler.hpp.

◆ compileSources()

template<class Base >
void CppAD::cg::AbstractCCompiler< Base >::compileSources ( const std::map< std::string, std::string > &  sources,
bool  posIndepCode,
JobTimer timer = nullptr 
)
inlineoverridevirtualinherited

Compiles the provided C source code.

Parameters
librarythe path of the dynamic library to be created
sourcesmaps the names to the content of the source files
posIndepCodewhether or not to create position-independent code for dynamic linking

Implements CppAD::cg::CCompiler< Base >.

Definition at line 146 of file abstract_c_compiler.hpp.

◆ getSourcesFolder()

template<class Base >
const std::string& CppAD::cg::AbstractCCompiler< Base >::getSourcesFolder ( ) const
inlineoverridevirtualinherited

Provides the path to a folder where the source files should be created when the option to save files to disk is active.

Returns
path to a folder.

Implements CppAD::cg::CCompiler< Base >.

Definition at line 78 of file abstract_c_compiler.hpp.

◆ getTemporaryFolder()

template<class Base >
const std::string& CppAD::cg::AbstractCCompiler< Base >::getTemporaryFolder ( ) const
inlineoverridevirtualinherited

Provides the path to a temporary folder that should not exist (it will be deleted after the dynamic library is created)

Returns
path to a temporary folder.

Implements CppAD::cg::CCompiler< Base >.

Definition at line 62 of file abstract_c_compiler.hpp.

◆ setSourcesFolder()

template<class Base >
void CppAD::cg::AbstractCCompiler< Base >::setSourcesFolder ( const std::string &  srcFolder)
inlineoverridevirtualinherited

Defines the path to a folder where the source files should be created when the option to save files to disk is active.

Parameters
srcFolderpath to the folder.

Implements CppAD::cg::CCompiler< Base >.

Definition at line 82 of file abstract_c_compiler.hpp.

◆ setTemporaryFolder()

template<class Base >
void CppAD::cg::AbstractCCompiler< Base >::setTemporaryFolder ( const std::string &  tmpFolder)
inlineoverridevirtualinherited

Defines the path to a temporary folder that should not exist (it will be deleted after the dynamic library is created)

Parameters
tmpFolderpath to a temporary folder.

Implements CppAD::cg::CCompiler< Base >.

Definition at line 66 of file abstract_c_compiler.hpp.


The documentation for this class was generated from the following file: