CBuild
C++ build system with scripts written in c++
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CBuild::CBuildHashV2 Class Reference

#include <cbuild_hash.hpp>

Inheritance diagram for CBuild::CBuildHashV2:
CBuild::Hash

Public Member Functions

 CBuildHashV2 (std::string target_id)
 
virtual lib::map< std::string, std::string > get_files_for_recompilation (std::vector< std::string > file_list, std::vector< std::string > objects_list) override
 Pass a list of source files and coresponding object files and get a map of source-object that need to be recompiled (check only hash and dependencie hash, not any arg canges)
 
virtual int compare_and_set_cargs (std::vector< std::string > cargs) override
 Compare compile args and update metadata.
 
virtual int compare_and_set_largs (std::vector< std::string > largs) override
 Compare link args and update metadata.
 
virtual int compare_and_set_commands (std::string compiler, std::string linker, std::string packer) override
 Compare shell commands used for compilation and update metadata.
 
virtual int compare_and_set_output_file (std::string out) override
 Compare output file name and update metadata.
 
virtual void set_target_meta (std::vector< std::string > cargs, std::vector< std::string > largs, std::string out, std::string compiler, std::string linker, std::string packer) override
 Set the target meta.
 
- Public Member Functions inherited from CBuild::Hash
 Hash (std::string target_id)
 

Additional Inherited Members

- Protected Attributes inherited from CBuild::Hash
std::string target_id
 

Detailed Description

Definition at line 34 of file cbuild_hash.hpp.

Constructor & Destructor Documentation

◆ CBuildHashV2()

CBuild::CBuildHashV2::CBuildHashV2 ( std::string target_id)
inline

Definition at line 36 of file cbuild_hash.hpp.

Member Function Documentation

◆ compare_and_set_cargs()

virtual int CBuild::CBuildHashV2::compare_and_set_cargs ( std::vector< std::string > cargs)
inlineoverridevirtual

Compare compile args and update metadata.

Parameters
cargs=> std::vector<std::string> -> Compile args
Returns
int -> 0 - all good, 1 - args didnt match, -1 - File didnt exist at all

Implements CBuild::Hash.

Definition at line 40 of file cbuild_hash.hpp.

References CBuild::target_metadata_file::cargs, CBuild::printf_full(), CBuild::read_target_metadata(), CBuild::RED, CBuild::Hash::target_id, and CBuild::write_target_metadata().

◆ compare_and_set_commands()

virtual int CBuild::CBuildHashV2::compare_and_set_commands ( std::string compiler,
std::string linker,
std::string packer )
inlineoverridevirtual

Compare shell commands used for compilation and update metadata.

Parameters
compiler=> std::string -> Command used for compiling source files
linker=> std::string -> Command used for linking objects
packer=> std::string -> Command used for packing static libs
Returns
int -> 0 - all good, 1 - args didnt match, -1 - File didnt exist at all

Implements CBuild::Hash.

Definition at line 66 of file cbuild_hash.hpp.

References CBuild::target_metadata_file::compiler, CBuild::target_metadata_file::linker, CBuild::target_metadata_file::packer, CBuild::printf_full(), CBuild::read_target_metadata(), CBuild::RED, CBuild::Hash::target_id, and CBuild::write_target_metadata().

◆ compare_and_set_largs()

virtual int CBuild::CBuildHashV2::compare_and_set_largs ( std::vector< std::string > largs)
inlineoverridevirtual

Compare link args and update metadata.

Parameters
cargs=> std::vector<std::string> -> Compile args
Returns
int -> 0 - all good, 1 - args didnt match, -1 - File didnt exist at all

Implements CBuild::Hash.

Definition at line 53 of file cbuild_hash.hpp.

References CBuild::target_metadata_file::largs, CBuild::printf_full(), CBuild::read_target_metadata(), CBuild::RED, CBuild::Hash::target_id, and CBuild::write_target_metadata().

◆ compare_and_set_output_file()

virtual int CBuild::CBuildHashV2::compare_and_set_output_file ( std::string out)
inlineoverridevirtual

Compare output file name and update metadata.

Parameters
out=> std::string -> Output name
Returns
int -> 0 - all good, 1 - args didnt match, -1 - File didnt exist at all

Implements CBuild::Hash.

Definition at line 82 of file cbuild_hash.hpp.

References CBuild::target_metadata_file::out, CBuild::printf_full(), CBuild::read_target_metadata(), CBuild::RED, CBuild::Hash::target_id, and CBuild::write_target_metadata().

◆ get_files_for_recompilation()

lib::map< std::string, std::string > CBuild::CBuildHashV2::get_files_for_recompilation ( std::vector< std::string > file_list,
std::vector< std::string > objects_list )
overridevirtual

Pass a list of source files and coresponding object files and get a map of source-object that need to be recompiled (check only hash and dependencie hash, not any arg canges)

Parameters
file_list=> std::vector<std::string> -> List of source files
objects_list=> std::vector<std::string> -> List of object files
Returns
lib::map<std::string, std::string> -> Map of source->object, that need to be recompiled

Implements CBuild::Hash.

Definition at line 169 of file cbuild_hash.cpp.

References check_mismatch_recursive(), internal_data::headers_metadata, internal_data::headers_to_parse, parse_file(), CBuild::print_full(), print_metadata(), lib::map< _K, _D >::ptr_at(), lib::map< _K, _D >::push_back(), lib::map< _K, _D >::size(), internal_data::sources_metadata, and CBuild::Hash::target_id.

◆ set_target_meta()

virtual void CBuild::CBuildHashV2::set_target_meta ( std::vector< std::string > cargs,
std::vector< std::string > largs,
std::string out,
std::string compiler,
std::string linker,
std::string packer )
inlineoverridevirtual

Set the target meta.

Parameters
cargs=> std::vector<std::string> -> Compile args
largs=> std::vector<std::string> -> Link args
out=> std::string -> Output binary name
compiler=> std::string -> Command used for compiling source files
linker=> std::string -> Command used for linking objects
packer=> std::string -> Command used for packing static libs

Implements CBuild::Hash.

Definition at line 96 of file cbuild_hash.hpp.

References CBuild::target_metadata_file::cargs, CBuild::target_metadata_file::compiler, CBuild::target_metadata_file::largs, CBuild::target_metadata_file::linker, CBuild::target_metadata_file::out, CBuild::target_metadata_file::packer, CBuild::Hash::target_id, and CBuild::write_target_metadata().


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