CBuild
C++ build system with scripts written in c++
|
#include <Build.hpp>
Public Member Functions | |
virtual std::string | gen_out_name (std::string executable=".run", std::string dyn_lib=".so", std::string stat_lib=".a") |
Generate output file name (after linking) | |
virtual void | load_project_deps (std::string curr_path) |
Load all project dependencies. | |
virtual void | stdargs () |
Add standard compile and link arguments into compilation Need to be publick for some hashers to work. | |
Toolchain () | |
virtual | ~Toolchain () |
std::string | get_id () |
virtual void | call (std::vector< std::string > *args, bool force=false, bool debug=false, bool dummy=false) |
Call tollchain to execute. | |
virtual void | run (std::vector< std::string > *args) |
Run builded app. | |
virtual void | debug (std::vector< std::string > *args, std::vector< std::string > *pargs) |
Build program in debug mode and after run gdb on it. | |
virtual void | clear () |
Clear all caches and builded app. | |
virtual void | add_define (std::string define, std::string val="") |
Add new define. | |
virtual void | add_undef (std::string define) |
Add new undefine (undefine previvious define) | |
virtual void | add_include (std::string include_path) |
Add compile-time include. | |
virtual void | add_compile_arg (std::string arg) |
Directly add compiler argument. | |
virtual void | add_link_arg (std::string arg) |
Add linker arguments. | |
virtual void | add_library_include (std::string library) |
Add system library include, library include folder need to be in PATH. | |
virtual void | add_library_dir (std::string include, std::string lib) |
Add library include directory (with *.h files) and directory with library *.a and *.so/*.dll files. | |
virtual void | add_requirment (std::string task_, CBuild::stage run_stage=CBuild::PRE) |
Add required task, that task will be executed before toolchain, it can have dependecies, but toolchain can depend on multiple tasks also. | |
virtual void | depends_on (std::string target) |
This target depends on other target. | |
virtual void | warn () |
Enable more warnings. | |
virtual void | static_analizer () |
Enable static anlizer (very slow) | |
virtual void | error () |
Add -Werror. | |
virtual void | multithreaded_target () |
Add -pthread argument. | |
virtual void | set_standart (std::string std_) |
Set standart for code (-std=std_) | |
virtual void | add_file (std::string path) |
Add file for compilation. | |
virtual void | add_folder (std::string path) |
Add folder to compile path, scan is not recursive. | |
virtual void | set_type (CBuild::build_type type) |
Set the type of build. | |
virtual void | depends_on_project (std::string path, std::string name, std::string id, std::string headers_path) |
Add another CBuild project as dependency. | |
virtual void | set_profiling_mode () |
Enable -pg for gprof. | |
virtual void | set_version_major (int version) |
Set major version component, used in -Wl,-soname | |
virtual std::array< std::string, 3 > | get_cmds () |
Get all three commands from class - compile, linker and packer. | |
virtual lib::map< std::string, std::string > | gen_file_list_force () |
Generate list of all files, that is tracked by this target. | |
virtual std::string | get_compile_args () |
Get preprocessed compile args. | |
virtual void | crash () __attribute__((__noreturn__)) |
Crash compilation, needed when gcc throws error. | |
virtual void | compile (std::string cmd) |
Call compiler. | |
virtual void | add_pkgconfig_entry (std::string id) |
Add a lib, data for what need to be searched using pkg-config tool. | |
virtual void | set_hasher (Hash *hasher) |
Set used hasher for this target. | |
virtual void | set_name (std::string name) |
Change out file name. | |
virtual void | set_id (std::string id) |
Change id of this toolchain, if done after registering it can brake things. | |
void | add_external_dependency (CBuild::Dependency *dep) |
Add external dependency to this toolchain. | |
Protected Member Functions | |
virtual void | pre_build () |
Before build. | |
virtual void | post_build () |
After build. | |
virtual void | pre_link () |
Before linking. | |
virtual void | post_link () |
After linking. | |
virtual void | build ()=0 |
Build. | |
virtual void | link ()=0 |
Linking. | |
virtual void | link_pack ()=0 |
Linking for static libraries. | |
virtual lib::map< std::string, std::string > | gen_file_list (bool force) |
Generate list of files that need to be compiles. | |
virtual std::string | gen_out_file (std::string file) |
Generate output object file from input file. | |
virtual std::string | cmd_str (std::string in) |
Replace spaces by "\ ". | |
virtual void | init () |
Initialize folder structure. | |
Protected Attributes | |
std::string | name = "" |
Name of output, if undefined (""), for id is used for binary name. | |
std::string | id |
Must be initialized in derived classes. | |
lib::map< std::string, CBuild::stage > | required |
Save task id with run stage sprecified for this task. | |
std::vector< std::string > | depends |
All other targets, that is needed for this target. | |
std::vector< CBuild::Path > | targets |
Target files or folders. | |
std::vector< std::string > | compiler_args |
Compiler args (specified and generated) | |
std::vector< std::string > | link_args |
Linker args (specified and generated) | |
std::string | compiler |
Compiler command. | |
std::string | linker |
Linker command. | |
std::string | packer |
ar command for packing static libraries | |
CBuild::build_type | build_type |
Type of build. | |
std::vector< CBuild::Project_dependency > | project_deps |
Project dependencies. | |
bool | dummy = false |
We do dummy compilation. | |
int | version_major = -1 |
Major version, can be necesary for shared libraries. | |
bool | gen_out_name_without_base_path = false |
gen_out_name() dont prepend base path | |
bool | gen_file_list_for_linking = false |
Generate file list for linking - force and no changes to hashes. | |
std::vector< std::string > | pkg_config_include_entries |
Libs that need to be searched in pkg-config. | |
Hash * | hasher |
Hasher used here. | |
std::vector< CBuild::Dependency * > | dependency_list |
Dependencies. | |
std::vector< std::string > * | args |
Argument pointer (scratch variable) | |
bool | force |
Force argument (scratch variable) | |
bool | stdargs_lock = false |
Lock that specifies that stdargs() function need to do nothing. | |
|
virtual |
Directly add compiler argument.
arg | => std:string -> argument, directly passed to compiler |
Definition at line 38 of file Build.cpp.
References CBuild::arg, and compiler_args.
Referenced by CBuild::Registry::AddCompileArg(), CBuild::ConfigToolchain::clone_config(), and CBuild::Registry::init().
|
virtual |
void CBuild::Toolchain::add_external_dependency | ( | CBuild::Dependency * | dep | ) |
Add external dependency to this toolchain.
dep | => CBuild::Dependency* -> Dependency |
Definition at line 172 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
Add file for compilation.
path | => std::string -> Path to file |
Definition at line 176 of file Build.cpp.
References CBuild::Path::folder, and CBuild::Path::path.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
Add folder to compile path, scan is not recursive.
path | => std::string -> Path to folder |
Definition at line 187 of file Build.cpp.
References CBuild::Path::folder, and CBuild::Path::path.
Referenced by CBuild::ConfigToolchain::clone_config(), and CBuild::Registry::init().
|
virtual |
|
virtual |
|
virtual |
Add system library include, library include folder need to be in PATH.
library | => std:string -> library name, will be used as -l<library> |
Definition at line 83 of file Build.cpp.
Referenced by CBuild::Registry::init().
|
virtual |
Add linker arguments.
arg | => std:string -> argument, directly passed to compiler |
Definition at line 44 of file Build.cpp.
References CBuild::arg.
Referenced by CBuild::Registry::AddLinkArg(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::ConfigToolchain::clone_config(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::Registry::init(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), and CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT().
|
virtual |
Add a lib, data for what need to be searched using pkg-config tool.
id | => std::string -> Package id in a pkg-config database |
Definition at line 160 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
Add required task, that task will be executed before toolchain, it can have dependecies, but toolchain can depend on multiple tasks also.
task_ | => std:string -> task id |
run_stage | => CBuild::stage -> run stage of task |
Definition at line 104 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
|
protectedpure virtual |
Build.
Implemented in CBuild::ConfigToolchain, CBuild::MetaToolchain, CBuild::CLANGXX< hash >, CBuild::CLANGXXMT< hash >, CBuild::CLANG< hash >, CBuild::CLANGMT< hash >, CBuild::GXX< hash >, CBuild::GXXMT< hash >, CBuild::GCC< hash >, CBuild::GCCMT< hash >, CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, CBuild::MINGW_GCCMT< hash >, and CBuild::SimpleToolchain< hash >.
|
virtual |
Call tollchain to execute.
args | => std::vector<std::string>* -> argument for call, pointer, nonull |
force | => bool -> force argument, used internally |
debug | => bool -> does we run in build mode |
dummy | => bool -> we dont build - we run this to evalueate all things |
Reimplemented in CBuild::ConfigToolchain, and CBuild::MetaToolchain.
Definition at line 572 of file Build.cpp.
References CBuild::Registry::CallTask(), CBUILD_BUILD_DIR, CBUILD_BUILD_OUT_DIR, CBuild::DYNAMIC_LIBRARY, CBuild::Registry::GetToolchain(), CBuild::GREEN, CBuild::MAGENTA, CBuild::POST, CBuild::PRE, CBuild::print(), CBuild::RED, CBuild::STATIC_LIBRARY, and CBuild::system().
Referenced by CBuild::MetaToolchain::call(), and CBuild::loop().
|
virtual |
Clear all caches and builded app.
Reimplemented in CBuild::ConfigToolchain, and CBuild::MetaToolchain.
Definition at line 723 of file Build.cpp.
References CBUILD_BUILD_DIR, and CBuild::system().
Referenced by CBuild::MetaToolchain::clear(), and CBuild::loop().
|
protectedvirtual |
Replace spaces by "\ ".
in | => std::string -> input string |
Definition at line 443 of file Build.cpp.
Referenced by CBuild::MINGW_GXX< hash >::gen_out_name(), CBuild::MINGW_GXXMT< hash >::gen_out_name(), CBuild::MINGW_GCC< hash >::gen_out_name(), and CBuild::MINGW_GCCMT< hash >::gen_out_name().
|
virtual |
Call compiler.
cmd | => std::string -> Shell command |
Reimplemented in CBuild::ConfigToolchain.
Definition at line 504 of file Build.cpp.
References CBuild::system().
Referenced by CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::CLANGMT< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::GCCMT< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), and CBuild::SimpleToolchain< hash >::link_pack().
|
virtual |
Crash compilation, needed when gcc throws error.
Definition at line 500 of file Build.cpp.
References CBuild::exit(), CBuild::print(), and CBuild::RED.
|
virtual |
Build program in debug mode and after run gdb on it.
args | => std::vector<std::string>* -> arguments for build |
pargs | => std::vector<std::string>* -> arguments for run |
Reimplemented in CBuild::ConfigToolchain, CBuild::MetaToolchain, CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, and CBuild::MINGW_GCCMT< hash >.
Definition at line 698 of file Build.cpp.
References CBuild::GREEN, CBuild::MAGENTA, CBuild::print(), CBuild::RED, and CBuild::system().
Referenced by CBuild::MetaToolchain::debug(), and CBuild::loop().
|
virtual |
This target depends on other target.
target | => std::string -> Other target id |
Definition at line 136 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
Add another CBuild project as dependency.
path | => std::string -> Relative (from CBuild.run) path to needed toolchain |
name | => std::string -> name of build target (for lib linking) |
id | => std::string -> Id of needed toolchain for calling target build |
headers_path | => std::string -> path to headers dir |
Definition at line 140 of file Build.cpp.
References CBuild::Project_dependency::headers_path, CBuild::Project_dependency::id, CBuild::Project_dependency::name, and CBuild::Project_dependency::path.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protectedvirtual |
Generate list of files that need to be compiles.
force | => bool -> Do we do force compilation |
Definition at line 216 of file Build.cpp.
References lib::map< _K, _D >::at(), lib::map< _K, _D >::clear(), CBuild::fs::dir(), CBuild::fs::normalize_relative_path(), CBuild::print_full(), lib::map< _K, _D >::push_back(), and lib::map< _K, _D >::size().
Referenced by CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::CLANGMT< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::GCCMT< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), and CBuild::SimpleToolchain< hash >::link_pack().
|
virtual |
|
protectedvirtual |
Generate output object file from input file.
file | => std::string -> input file |
Definition at line 199 of file Build.cpp.
References CBUILD_BUILD_CACHE_DIR, and CBUILD_BUILD_DIR.
|
virtual |
Generate output file name (after linking)
Reimplemented in CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, and CBuild::MINGW_GCCMT< hash >.
Definition at line 394 of file Build.cpp.
References CBUILD_BUILD_DIR, CBUILD_BUILD_OUT_DIR, CBuild::DYNAMIC_LIBRARY, and CBuild::EXECUTABLE.
Referenced by CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::SimpleToolchain< hash >::link_pack(), and CBuild::CBuildRebuildScript::post_link().
|
virtual |
Get all three commands from class - compile, linker and packer.
Reimplemented in CBuild::ConfigToolchain, and CBuild::MetaToolchain.
|
virtual |
|
inline |
Definition at line 244 of file Build.hpp.
References id.
Referenced by CBuild::Registry::RegisterTarget().
|
protectedvirtual |
Initialize folder structure.
Reimplemented in CBuild::ConfigToolchain.
Definition at line 454 of file Build.cpp.
References CBUILD_BUILD_CACHE_DIR, CBUILD_BUILD_DIR, CBUILD_BUILD_OUT_DIR, CBUILD_METADATA_FOLDER, CBuild::fs::create(), CBuild::fs::DIR, and CBuild::fs::exists().
|
protectedpure virtual |
Linking.
Implemented in CBuild::ConfigToolchain, CBuild::MetaToolchain, CBuild::CLANGXX< hash >, CBuild::CLANGXXMT< hash >, CBuild::CLANG< hash >, CBuild::CLANGMT< hash >, CBuild::GXX< hash >, CBuild::GXXMT< hash >, CBuild::GCC< hash >, CBuild::GCCMT< hash >, CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, CBuild::MINGW_GCCMT< hash >, and CBuild::SimpleToolchain< hash >.
|
protectedpure virtual |
Linking for static libraries.
Implemented in CBuild::ConfigToolchain, CBuild::MetaToolchain, CBuild::CLANGXX< hash >, CBuild::CLANGXXMT< hash >, CBuild::CLANG< hash >, CBuild::CLANGMT< hash >, CBuild::GXX< hash >, CBuild::GXXMT< hash >, CBuild::GCC< hash >, CBuild::GCCMT< hash >, CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, CBuild::MINGW_GCCMT< hash >, and CBuild::SimpleToolchain< hash >.
|
virtual |
Load all project dependencies.
curr_path | => std::string -> current path |
Reimplemented in CBuild::ConfigToolchain, and CBuild::MetaToolchain.
Definition at line 478 of file Build.cpp.
References CBUILD_BUILD_DIR, CBUILD_BUILD_OUT_DIR, CBUILD_CACHE_DIR, CBUILD_PROJECT_DEPS_DIR, CBUILD_PROJECT_DEPS_HEADERS, and CBuild::system().
Referenced by CBuild::MetaToolchain::load_project_deps(), and CBuild::loop().
|
virtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
After linking.
Reimplemented in CBuild::ConfigToolchain, CBuild::CBuildRebuildScript, CBuild::MINGW_GXX< hash >, CBuild::MINGW_GXXMT< hash >, CBuild::MINGW_GCC< hash >, and CBuild::MINGW_GCCMT< hash >.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
virtual |
Run builded app.
args | => std::vector<std::string>* -> program arguments |
Reimplemented in CBuild::ConfigToolchain, CBuild::MetaToolchain, CBuild::MINGW_GXX< hash >, and CBuild::MINGW_GXXMT< hash >.
Definition at line 677 of file Build.cpp.
References CBuild::MAGENTA, CBuild::print(), CBuild::RED, and CBuild::system().
Referenced by CBuild::loop(), and CBuild::MetaToolchain::run().
|
virtual |
Set used hasher for this target.
hasher | => Hash* -> Hasher that need to be used |
Definition at line 163 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
Change id of this toolchain, if done after registering it can brake things.
id | => std::string -> New id |
Reimplemented in CBuild::ConfigToolchain.
Definition at line 169 of file Build.cpp.
Referenced by CBuild::CrossCompiler::add_arch_tool().
|
virtual |
Change out file name.
name | => std::string -> Out name |
Reimplemented in CBuild::ConfigToolchain.
Definition at line 166 of file Build.cpp.
Referenced by CBuild::CrossCompiler::add_arch_tool(), and CBuild::Registry::SetRebuildName().
|
virtual |
|
virtual |
Set standart for code (-std=std_)
std_ | => std::string -> Stadart name |
Definition at line 126 of file Build.cpp.
Referenced by CBuild::Registry::init().
|
virtual |
Set the type of build.
type | Build type |
Reimplemented in CBuild::ConfigToolchain.
Definition at line 133 of file Build.cpp.
Referenced by CBuild::ConfigToolchain::clone_config(), and CBuild::Registry::init().
|
virtual |
Set major version component, used in -Wl,-soname
version | => int -> Major version |
Reimplemented in CBuild::ConfigToolchain.
Definition at line 153 of file Build.cpp.
References CBuild::version.
Referenced by CBuild::ConfigToolchain::clone_config().
|
virtual |
|
virtual |
Add standard compile and link arguments into compilation Need to be publick for some hashers to work.
Reimplemented in CBuild::ConfigToolchain.
Definition at line 510 of file Build.cpp.
References CBuild::package_info::cargs, CBUILD_BUILD_DIR, CBUILD_BUILD_OUT_DIR, CBUILD_CACHE_DIR, CBUILD_PROJECT_DEPS_DIR, CBUILD_PROJECT_DEPS_HEADERS, CBuild::DYNAMIC_LIBRARY, CBuild::get_pkg_info(), CBuild::Registry::GetToolchain(), CBuild::package_info::largs, and CBuild::package_info::name.
|
virtual |
Enable more warnings.
Definition at line 110 of file Build.cpp.
Referenced by CBuild::Registry::init().
|
protected |
Argument pointer (scratch variable)
Definition at line 149 of file Build.hpp.
Referenced by CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), CBuild::MetaToolchain::call(), CBuild::MetaToolchain::debug(), CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::CLANGMT< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::GCCMT< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), CBuild::SimpleToolchain< hash >::link_pack(), CBuild::MetaToolchain::run(), CBuild::MINGW_GXX< hash >::run(), and CBuild::MINGW_GXXMT< hash >::run().
|
protected |
|
protected |
Compiler command.
Definition at line 98 of file Build.hpp.
Referenced by CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::CLANGMT< hash >::link(), CBuild::GCCMT< hash >::link(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), and CBuild::SimpleToolchain< hash >::set_compiler().
|
protected |
Compiler args (specified and generated)
Definition at line 90 of file Build.hpp.
Referenced by add_compile_arg(), CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), and CBuild::ConfigToolchain::clone_config().
|
protected |
Dependencies.
Definition at line 142 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protected |
All other targets, that is needed for this target.
Definition at line 82 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config(), CBuild::MINGW_GXX< hash >::post_link(), CBuild::MINGW_GXXMT< hash >::post_link(), CBuild::MINGW_GCC< hash >::post_link(), and CBuild::MINGW_GCCMT< hash >::post_link().
|
protected |
We do dummy compilation.
Definition at line 118 of file Build.hpp.
Referenced by CBuild::MetaToolchain::call().
|
protected |
Force argument (scratch variable)
Definition at line 153 of file Build.hpp.
Referenced by CBuild::CLANGXX< hash >::build(), CBuild::CLANGXXMT< hash >::build(), CBuild::CLANG< hash >::build(), CBuild::CLANGMT< hash >::build(), CBuild::GXX< hash >::build(), CBuild::GXXMT< hash >::build(), CBuild::GCC< hash >::build(), CBuild::GCCMT< hash >::build(), CBuild::MINGW_GXX< hash >::build(), CBuild::MINGW_GXXMT< hash >::build(), CBuild::MINGW_GCC< hash >::build(), CBuild::MINGW_GCCMT< hash >::build(), CBuild::SimpleToolchain< hash >::build(), CBuild::MetaToolchain::call(), CBuild::CLANGMT< hash >::link(), and CBuild::GCCMT< hash >::link().
|
protected |
Generate file list for linking - force and no changes to hashes.
Definition at line 130 of file Build.hpp.
Referenced by CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), and CBuild::SimpleToolchain< hash >::link_pack().
|
protected |
gen_out_name() dont prepend base path
|
protected |
Hasher used here.
Definition at line 138 of file Build.hpp.
Referenced by CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::ConfigToolchain::clone_config(), CBuild::ConfigToolchain::ConfigToolchain(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), and CBuild::SimpleToolchain< hash >::SimpleToolchain().
|
protected |
Must be initialized in derived classes.
Definition at line 74 of file Build.hpp.
Referenced by CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::MINGW_GXX< hash >::gen_out_name(), CBuild::MINGW_GXXMT< hash >::gen_out_name(), CBuild::MINGW_GCC< hash >::gen_out_name(), CBuild::MINGW_GCCMT< hash >::gen_out_name(), get_id(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::SimpleToolchain< hash >::SimpleToolchain(), and CBuild::SimpleToolchain< hash >::SimpleToolchain().
|
protected |
Linker args (specified and generated)
Definition at line 94 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config(), CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::CLANGMT< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::GCCMT< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), and CBuild::SimpleToolchain< hash >::link_pack().
|
protected |
Linker command.
Definition at line 102 of file Build.hpp.
Referenced by CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::CLANGXX< hash >::link(), CBuild::CLANGXXMT< hash >::link(), CBuild::CLANG< hash >::link(), CBuild::GXX< hash >::link(), CBuild::GXXMT< hash >::link(), CBuild::GCC< hash >::link(), CBuild::MINGW_GXX< hash >::link(), CBuild::MINGW_GXXMT< hash >::link(), CBuild::MINGW_GCC< hash >::link(), CBuild::MINGW_GCCMT< hash >::link(), CBuild::SimpleToolchain< hash >::link(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), and CBuild::SimpleToolchain< hash >::set_linker().
|
protected |
Name of output, if undefined (""), for id is used for binary name.
Definition at line 70 of file Build.hpp.
Referenced by CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::MINGW_GXX< hash >::gen_out_name(), CBuild::MINGW_GXXMT< hash >::gen_out_name(), CBuild::MINGW_GCC< hash >::gen_out_name(), CBuild::MINGW_GCCMT< hash >::gen_out_name(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXX< hash >::run(), CBuild::MINGW_GXXMT< hash >::run(), CBuild::SimpleToolchain< hash >::SimpleToolchain(), and CBuild::SimpleToolchain< hash >::SimpleToolchain().
|
protected |
ar command for packing static libraries
Definition at line 106 of file Build.hpp.
Referenced by CBuild::CLANG< hash >::CLANG(), CBuild::CLANG< hash >::CLANG(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGMT< hash >::CLANGMT(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXX< hash >::CLANGXX(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::CLANGXXMT< hash >::CLANGXXMT(), CBuild::GCC< hash >::GCC(), CBuild::GCC< hash >::GCC(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GCCMT< hash >::GCCMT(), CBuild::GXX< hash >::GXX(), CBuild::GXX< hash >::GXX(), CBuild::GXXMT< hash >::GXXMT(), CBuild::GXXMT< hash >::GXXMT(), CBuild::CLANGXX< hash >::link_pack(), CBuild::CLANGXXMT< hash >::link_pack(), CBuild::CLANG< hash >::link_pack(), CBuild::CLANGMT< hash >::link_pack(), CBuild::GXX< hash >::link_pack(), CBuild::GXXMT< hash >::link_pack(), CBuild::GCC< hash >::link_pack(), CBuild::GCCMT< hash >::link_pack(), CBuild::MINGW_GXX< hash >::link_pack(), CBuild::MINGW_GXXMT< hash >::link_pack(), CBuild::MINGW_GCC< hash >::link_pack(), CBuild::MINGW_GCCMT< hash >::link_pack(), CBuild::SimpleToolchain< hash >::link_pack(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCC< hash >::MINGW_GCC(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GCCMT< hash >::MINGW_GCCMT(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXX< hash >::MINGW_GXX(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), CBuild::MINGW_GXXMT< hash >::MINGW_GXXMT(), and CBuild::SimpleToolchain< hash >::set_packer().
|
protected |
Libs that need to be searched in pkg-config.
Definition at line 134 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protected |
Project dependencies.
Definition at line 114 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protected |
Save task id with run stage sprecified for this task.
Definition at line 78 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protected |
|
protected |
Target files or folders.
Definition at line 86 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config().
|
protected |
Major version, can be necesary for shared libraries.
Definition at line 122 of file Build.hpp.
Referenced by CBuild::ConfigToolchain::clone_config(), and CBuild::ConfigToolchain::set_version_major().