CBuild
C++ build system with scripts written in c++
Loading...
Searching...
No Matches
register.hpp
Go to the documentation of this file.
1
21#ifndef __CBUILD_REGISTER_HPP__
22#define __CBUILD_REGISTER_HPP__
23// C++ libraries
24#include "string"
25#include "vector"
26// Project headers
27#include "build/Build.hpp"
29#include "task/Task.hpp"
30// Code
31namespace CBuild {
32namespace Registry {
36void init();
42void RegisterTask(CBuild::Task* task);
49void CallTask(std::string name, std::vector<std::string> args);
66CBuild::Toolchain* GetToolchain(std::string name, bool force = false);
80void RegisterKeyword(std::string key, CBuild::Task* func);
92void SetRebuildName(std::string _name);
97void AddLinkArg(std::string arg);
102void AddCompileArg(std::string arg);
108void SetVersionHandler(void (*handler)());
116void ToolchainAll(bool force, std::string path, std::vector<std::string>* args);
123CBuild::generator_base* GetGenerator(std::string id);
130void RegisterGenerator(CBuild::generator_base* gen, std::string id);
136std::vector<std::string> GetGeneratorsList();
142std::vector<std::string> GetToolchainsList();
148std::vector<std::string> GetTasksList();
155} // namespace Registry
156} // namespace CBuild
157#endif // __CBUILD_REGISTER_HPP__
Build toolchain headers.
Task main class.
Task, can be runned from shell or code.
Definition Task.hpp:32
Toolchain class.
Definition Build.hpp:65
Base for any generator.
Definition generator.hpp:36
Simple map implementation with some stack operation added.
Definition map.hpp:79
Base class for generator of some output from command sequence.
void SetVersionHandler(void(*handler)())
Set handler to add output to --version
Definition register.cpp:352
std::vector< std::string > GetToolchainsList()
Get list of registered toolchains.
Definition register.cpp:338
CBuild::Toolchain * GetToolchain(std::string name, bool force=false)
Get the registered toolchain.
Definition register.cpp:239
void RegisterTask(CBuild::Task *task)
Register new task.
Definition register.cpp:194
void CallTask(std::string name, std::vector< std::string > args)
Run tasks.
Definition register.cpp:206
void SetRebuildName(std::string _name)
Set the rebuilt CBuild executable name.
Definition register.cpp:281
void AddLinkArg(std::string arg)
Add linker arg for CBuild rebuild.
Definition register.cpp:285
lib::map< std::string, std::string > GetKeywordsList()
Get list of all user registered keywords.
Definition register.cpp:276
lib::map< std::string, CBuild::Toolchain * > GetTargets()
Get list of all targets.
Definition register.cpp:262
void RegisterGenerator(CBuild::generator_base *gen, std::string id)
Register generator for id.
Definition register.cpp:324
CBuild::Toolchain * GetRebuildTarget()
Get target used for rebuild of CBuild script.
Definition register.cpp:355
void init()
Internal init.
Definition register.cpp:165
std::vector< std::string > GetGeneratorsList()
Get list of registered generators.
Definition register.cpp:331
CBuild::generator_base * GetGenerator(std::string id)
Get generator for specified id.
Definition register.cpp:317
void AddCompileArg(std::string arg)
Add compiler argument for CBuild rebuild.
Definition register.cpp:289
void RegisterKeyword(std::string key, CBuild::Task *func)
Register new keyord for parsing, ! Dangerous, owerwriting existing keywords can lead to undefined beh...
Definition register.cpp:266
std::vector< std::string > GetTasksList()
Get list of registered tasks.
Definition register.cpp:345
void RegisterTarget(CBuild::Toolchain *target)
Register new target for build.
Definition register.cpp:226
void ToolchainAll(bool force, std::string path, std::vector< std::string > *args)
Call and execute all toolchains.
Definition register.cpp:293
Filebuffer for CBuild ecosystem.
Definition Build.hpp:34
ARG_TYPE(*)(lib::map< std::string, std::string > *, char **, int, int, CBuild::RType *) handler
Handler for specific argument.