BuildCache
Public Member Functions | Private Member Functions | List of all members
bcache::ghs_wrapper_t Class Reference

This is a wrapper for the Green Hills Software C/C++ compiler. More...

#include <ghs_wrapper.hpp>

Inheritance diagram for bcache::ghs_wrapper_t:
bcache::gcc_wrapper_t bcache::program_wrapper_t

Public Member Functions

 ghs_wrapper_t (const file::exe_path_t &exe_path, const string_list_t &args)
 
bool can_handle_command () override
 Check if this class implements a wrapper for the given command. More...
 
- Public Member Functions inherited from bcache::gcc_wrapper_t
 gcc_wrapper_t (const file::exe_path_t &exe_path, const string_list_t &args)
 
- Public Member Functions inherited from bcache::program_wrapper_t
bool handle_command (int &return_code)
 Try to wrap a program command. More...
 

Private Member Functions

string_list_t get_include_files (const std::string &std_err) const override
 
string_list_t get_capabilities () override
 Generate a list of supported capabilites. More...
 
std::string get_program_id () override
 Get a string that uniquely identifies the program. More...
 
string_list_t get_relevant_arguments () override
 Get relevant command line arguments for hashing. More...
 
std::map< std::string, std::string > get_relevant_env_vars () override
 Get relevant environment variables for hashing. More...
 

Additional Inherited Members

- Protected Member Functions inherited from bcache::gcc_wrapper_t
std::map< std::string, expected_file_tget_build_files () override
 Get the paths to the files that are to be generated by the command. More...
 
string_list_t get_input_files () override
 Get the paths to the input files for the command. More...
 
std::string preprocess_source () override
 Generate the preprocessed source text. More...
 
string_list_t get_implicit_input_files () override
 Get a list of paths to implicit input files. More...
 
- Protected Member Functions inherited from bcache::program_wrapper_t
 program_wrapper_t (const file::exe_path_t &exe_path, const string_list_t &args)
 
virtual sys::run_result_t run_for_miss ()
 Run the actual command (when there is a cache miss). More...
 
- Protected Attributes inherited from bcache::gcc_wrapper_t
string_list_t m_resolved_args
 
- Protected Attributes inherited from bcache::program_wrapper_t
const file::exe_path_tm_exe_path
 
const string_list_tm_args
 
capabilities_t m_active_capabilities
 Active capabilities. More...
 

Detailed Description

This is a wrapper for the Green Hills Software C/C++ compiler.

The GHS compiler is fairly compatible with the GCC wrapper, so we derive from it.

Member Function Documentation

◆ can_handle_command()

bool bcache::ghs_wrapper_t::can_handle_command ( )
overridevirtual

Check if this class implements a wrapper for the given command.

Returns
true if this wrapper can handle the command.

Reimplemented from bcache::gcc_wrapper_t.

◆ get_capabilities()

string_list_t bcache::ghs_wrapper_t::get_capabilities ( )
overrideprivatevirtual

Generate a list of supported capabilites.

The list of capabilites can contain zero or more of the following (case sensitive) strings:

String Meaning
create_target_dirs Request creation of missing output dirs
direct_mode Supports direct mode
hard_links Can use hard links for cached files

In order to support direct mode, get_input_files() and get_implicit_input_files() need to be implemented.

Returns
a list of supported capabilites.
Exceptions
runtime_errorif the request could not be completed.
Note
Capabilites are "opt-in". If this method is not implemented or returns an empty list, all capabilites will be treated as "not supported".

Reimplemented from bcache::gcc_wrapper_t.

◆ get_program_id()

std::string bcache::ghs_wrapper_t::get_program_id ( )
overrideprivatevirtual

Get a string that uniquely identifies the program.

Returns
a program ID string.
Exceptions
runtime_errorif the request could not be completed.

Reimplemented from bcache::gcc_wrapper_t.

◆ get_relevant_arguments()

string_list_t bcache::ghs_wrapper_t::get_relevant_arguments ( )
overrideprivatevirtual

Get relevant command line arguments for hashing.

Returns
filtered command line arguments.
Exceptions
runtime_errorif the request could not be completed.
Note
The purpose of this function is to create a list of arguments that is suitable for hashing (i.e. uniquely identifying) the program options. As such, things like absolute file paths and compilation defines should be excluded (since they are resolved in the preprocess step).

Reimplemented from bcache::gcc_wrapper_t.

◆ get_relevant_env_vars()

std::map< std::string, std::string > bcache::ghs_wrapper_t::get_relevant_env_vars ( )
overrideprivatevirtual

Get relevant environment variables for hashing.

Returns
relevant environment variables and their values.
Exceptions
runtime_errorif the request could not be completed.
Note
The purpose of this function is to create a list of environment variables that may affect program output.

Reimplemented from bcache::gcc_wrapper_t.


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