|
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().