namespace Maike

The following table summarizes all members in this namespace.

class Maike::c_array
class Maike::Command
class Maike::DataSink
class Maike::DataSource
class Maike::Dependency
class Maike::DependencyBuffer
class Maike::DependencyGraph
class Maike::ErrorMessage
class Maike::FileIn
class Maike::FileOut
class Maike::gen_seq
class Maike::gen_seq< 0, Is... >
class Maike::GraphEdgeWriter
class Maike::Handle
class Maike::MapFixed An associative container with compile-time keys.
class Maike::ParameterSet
class Maike::ParameterSetDumpable
class Maike::ParameterSetMapFixed
class Maike::Pipe
class Maike::ProcessExitStatus
class Maike::ProjectInfo
class Maike::ReadBuffer
class Maike::ResourceObject
class Maike::seq
class Maike::Spider
class Maike::Stringkey
class Maike::Target
class Maike::Target_FactoryDelegator
class Maike::Target_Hook
class Maike::Target_Loader
class Maike::TargetBase
class Maike::Thread
class Maike::ThreadBase
class Maike::Twins
class Maike::Variant
class Maike::WriteBuffer
namespace Maike::FileUtils
namespace Maike::StdStream
typedef void(* ExceptionHandler)(const ErrorMessage &message)
std::string name_full_get (const char * target_dir,const Target & t)
template<class Proc> bool dependenciesProcess (const char * target_dir,Twins< const Dependency *> deps,int use_flags,Proc && proc)
void exceptionHandlerDefault (const ErrorMessage & message)
void exceptionHandlerSet (ExceptionHandler eh)
void exceptionRaise (const ErrorMessage & message)
ExceptionHandler exceptionHandlerGet ()
ResourceObject resourceObjectCreate (ResourceObject::Type type)
ResourceObject resourceObjectCreate (DataSource & src)
Session * sessionCreateRaw () Creates a new Maike Session.
void sessionDestroy (Session * maike) Destroys a Maike Session.
std::unique_ptr< Session, decltype(&sessionDestroy)> sessionCreate () RAII wrapper for Session lifetime managment.
void versionPrint (DataSink & sink) Prints version information to sink .
void about (DataSink & sink) Prints information to sink .
void loadPath (DataSink & sink) Prints the path to the current executable to sink .
void init (ExceptionHandler eh) Sets an ExceptionHandler that is called when an exception occurs.
void init (DataSink & standard_output,DataSink & standard_error) This function sets DataSinks for standard output and standard error.
void init (DataSink & standard_output,DataSink & standard_error,ExceptionHandler eh) Combines the effect of init(ExceptionHandler), and init(DataSink& standard_output,DataSink& standard_error)
void configDump (const Session & maike,DataSink & sink)
ResourceObject configDump (const Session & maike)
void configAppendDefault (Session & maike)
void configAppend (Session & maike,DataSource & source)
void configAppend (Session & maike,const ResourceObject & obj)
void hookRegister (Session & maike,const char * name_plugin,Twins< const char *const *> filename_exts)
void hookConfigAppend (Session & maike,const char * name_hook,const ResourceObject & rc)
void configAppendCommon (Session & maike) Appends common configuration resources to maike
void configClear (Session & maike)
void sysvarsLoad (Session & maike)
void rootSet (Session & maike,const char * root)
void scanFile (Session & maike,const char * file)
bool scanRecursiveGet (const Session & maike)
void scanRecursiveSet (Session & maike,bool recursive)
const char * targetDirectoryGet (const Session & maike)
bool loaderHas (const Session & maike,const char * filename)
Twins< size_t > targetIdRangeGet (const Session & maike) Retrievs the range of target id:s.
size_t targetsCountGet (const Session & maike) Retrievs the number of targets.
void targetsListAll (const Session & maike,DataSink & sink)
void targetsListLeaf (const Session & maike,DataSink & sink)
void targetsListExternal (const Session & maike,DataSink & sink)
void targetCompile (Session & maike,const char * target_name)
void targetsCompile (Session & maike)
void targetDump (const Session & maike,ResourceObject & db,const char * target_name)
ResourceObject targetsDump (const Session & maike)
void targetsDumpTSVHeader (DataSink & sink)
void targetDumpTSV (const Session & maike,DataSink & sink,const char * target_name)
void targetsDumpTSV (const Session & maike,DataSink & sink)
void graphDump (const Session & maike,GraphEdgeWriter & writer)
void graphDump (const Session & maike,GraphEdgeWriter & writer,const char * target_start,uint8_t * targets_visited,size_t id_min) Dumps the dependency graph from and including target_start in forwards.
void graphInvDump (const Session & maike,GraphEdgeWriter & writer,const char * target_start,uint8_t * targets_visited,size_t id_min) Dumps the dependency graph from and including target_start backwards.
void clean (Session & maike) Removes all targets from disk.
void clean (Session & maike,const char * target_name) Removes target_name , and its dependencies from disk.
void removeOrphans (const Session & maike) Removes all orphans from disk.
template<class T,size_t Size> constexpr size_t c_min_index (c_array< T, Size > const & arr,size_t offset,size_t cur)
template<class T,size_t Size,size_t... Is> constexpr c_array< T, Size > c_swap (c_array< T, Size > const & arr,size_t index0,size_t index1,seq< Is... >)
template<class T,size_t Size> constexpr c_array< T, Size > c_sel_sort (c_array< T, Size > const & arr,size_t cur0)
std::string directoryNormalize (const char * str)
std::string dirname (const std::string & path)
std::string dircat (const char * a,const char * b)
std::string dircat (const char * a,const std::string & b)
std::string dircat (const std::string & a,const char * b)
std::string dircat (const std::string & a,const std::string & b)
std::string rootStrip (const char * path,const char * root)
std::string rootStrip (const std::string & path,const char * root)
std::string exename ()
std::string getcwd ()
std::string homedir ()
std::string configdir ()
std::string configdirUser ()
bool processSucceeded (const ProcessExitStatus & result)
bool processFailed (const ProcessExitStatus & result)
void format (const Twins< char *> & buffer,const char * format_string,const Twins< const Variant *> & args)
void format (const Twins< char *> & buffer,const char * format_string,const std::initializer_list< Variant > & args)
template<class T> constexpr T msb ()

void(* ExceptionHandler)(const ErrorMessage &message)

Function called when an exception happens.

An ExceptionHandler is a function that is called when an exception happens There are three legal ways to leave an ExceptionHandler:

  1. Throw the ErrorMessage. This is the default action.

  2. Package the ErrorMessage into another object, and throw the result.

  3. Terminate the process through any appropriate function provided by the runtime library or the operating system.

An ExceptionHandler should not throw anything else than the ErrorMessage, or a repackaged version of it.

std::string name_full_get (const char * target_dir,const Target & t)

template<class Proc> bool dependenciesProcess (const char * target_dir,Twins< const Dependency *> deps,int use_flags,Proc && proc)

void exceptionHandlerDefault (const ErrorMessage & message)

void exceptionHandlerSet (ExceptionHandler eh)

void exceptionRaise (const ErrorMessage & message)

ExceptionHandler exceptionHandlerGet ()

ResourceObject resourceObjectCreate (ResourceObject::Type type)

ResourceObject resourceObjectCreate (DataSource & src)

Session * sessionCreateRaw ()

This function creates a new Maike Session.

The caller is resposible for deleting the session by calling sessionDestroy.

void sessionDestroy (Session * maike)

This function destroys the Session pointed to by maike .

std::unique_ptr< Session, decltype(&sessionDestroy)> sessionCreate ()

See also

sessionCreateRaw, sessionDestroy(Session*)

void versionPrint (DataSink & sink)

This function prints version information to sink .

void about (DataSink & sink)

This function prints information about Maike to sink .

void loadPath (DataSink & sink)

This function prints the path to the current executable to sink .

void init (ExceptionHandler eh)

This function sets an ExceptionHandler that is called when an exception occurs.

void init (DataSink & standard_output,DataSink & standard_error)

This function sets DataSinks for standard output and standard error. These sinks are used to redirect output data from the programs invoked by Maike during the compilation process. By default, data are written to the corresponding standard stream. Through this function, it is possible to change that behaviour. This is useful when Maike is used from within an IDE, or another GUI application.

void init (DataSink & standard_output,DataSink & standard_error,ExceptionHandler eh)

This function combines the effect of init(ExceptionHandler), and init(DataSink& standard_output,DataSink& standard_error)

void configDump (const Session & maike,DataSink & sink)

ResourceObject configDump (const Session & maike)

void configAppendDefault (Session & maike)

void configAppend (Session & maike,DataSource & source)

void configAppend (Session & maike,const ResourceObject & obj)

void hookRegister (Session & maike,const char * name_plugin,Twins< const char *const *> filename_exts)

void hookConfigAppend (Session & maike,const char * name_hook,const ResourceObject & rc)

void configAppendCommon (Session & maike)

This function appends configuration resources from common configuration files.

void configClear (Session & maike)

void sysvarsLoad (Session & maike)

void rootSet (Session & maike,const char * root)

void scanFile (Session & maike,const char * file)

bool scanRecursiveGet (const Session & maike)

void scanRecursiveSet (Session & maike,bool recursive)

const char * targetDirectoryGet (const Session & maike)

bool loaderHas (const Session & maike,const char * filename)

Twins< size_t > targetIdRangeGet (const Session & maike)

This function retrieves the range of target id:s. The number of targets is the difference between the two members of the Twins returned.

size_t targetsCountGet (const Session & maike)

This function retrievs the number of targets.

void targetsListAll (const Session & maike,DataSink & sink)

void targetsListLeaf (const Session & maike,DataSink & sink)

void targetsListExternal (const Session & maike,DataSink & sink)

void targetCompile (Session & maike,const char * target_name)

void targetsCompile (Session & maike)

void targetDump (const Session & maike,ResourceObject & db,const char * target_name)

ResourceObject targetsDump (const Session & maike)

void targetsDumpTSVHeader (DataSink & sink)

void targetDumpTSV (const Session & maike,DataSink & sink,const char * target_name)

void targetsDumpTSV (const Session & maike,DataSink & sink)

void graphDump (const Session & maike,GraphEdgeWriter & writer)

void graphDump (const Session & maike,GraphEdgeWriter & writer,const char * target_start,uint8_t * targets_visited,size_t id_min)

Dumps the dependency graph from and including target_start in forward direction. The parameter targets_visited must point to an array with the same capacity as the range of target id:s. This range, and id_min , can be retrieved by calling targetIdRangeGet(const Session&).

void graphInvDump (const Session & maike,GraphEdgeWriter & writer,const char * target_start,uint8_t * targets_visited,size_t id_min)

This function dumps the dependency graph from and including target_start in forward direction. The parameter targets_visited must point to an array with the same capacity as the range of target id:s. This range, and id_min , can be retrieved by calling targetIdRangeGet(const Session&).

void clean (Session & maike)

This function removes all targets from disk. It behaves like a conventional make clean

void clean (Session & maike,const char * target_name)

void removeOrphans (const Session & maike)

This function removes all orphans from disk. An orphan is a target that has no corresponding source files.

template<class T,size_t Size> constexpr size_t c_min_index (c_array< T, Size > const & arr,size_t offset,size_t cur)

template<class T,size_t Size,size_t... Is> constexpr c_array< T, Size > c_swap (c_array< T, Size > const & arr,size_t index0,size_t index1,seq< Is... >)

template<class T,size_t Size> constexpr c_array< T, Size > c_sel_sort (c_array< T, Size > const & arr,size_t cur0)

std::string directoryNormalize (const char * str)

std::string dirname (const std::string & path)

std::string dircat (const char * a,const char * b)

std::string dircat (const char * a,const std::string & b)

std::string dircat (const std::string & a,const char * b)

std::string dircat (const std::string & a,const std::string & b)

std::string rootStrip (const char * path,const char * root)

std::string rootStrip (const std::string & path,const char * root)

std::string exename ()

std::string getcwd ()

std::string homedir ()

std::string configdir ()

std::string configdirUser ()

bool processSucceeded (const ProcessExitStatus & result)

bool processFailed (const ProcessExitStatus & result)

void format (const Twins< char *> & buffer,const char * format_string,const Twins< const Variant *> & args)

void format (const Twins< char *> & buffer,const char * format_string,const std::initializer_list< Variant > & args)

template<class T> constexpr T msb ()