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

This is a wrapper for the QNX C/C++ compiler, QCC. More...

#include <qcc_wrapper.hpp>

Inheritance diagram for bcache::qcc_wrapper_t:
bcache::gcc_wrapper_t bcache::program_wrapper_t

Public Member Functions

 qcc_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_capabilities () override
 Generate a list of supported capabilites. More...
 
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...
 
std::string get_program_id () override
 Get a string that uniquely identifies the program. 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
string_list_t get_relevant_arguments () override
 Get relevant command line arguments for hashing. 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 QNX C/C++ compiler, QCC.

QCC is a command line front end that invokes GCC under the hood, so we derive the behaviour from the GCC wrapper.

Member Function Documentation

◆ can_handle_command()

bool bcache::qcc_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_build_files()

std::map< std::string, expected_file_t > bcache::qcc_wrapper_t::get_build_files ( )
overrideprivatevirtual

Get the paths to the files that are to be generated by the command.

Returns
the files that are expected to be generated by this command.
Exceptions
runtime_errorif the request could not be completed.

Reimplemented from bcache::gcc_wrapper_t.

◆ get_capabilities()

string_list_t bcache::qcc_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::qcc_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_env_vars()

std::map< std::string, std::string > bcache::qcc_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: