fab.steps.compile_c module

C file compilation.

class fab.steps.compile_c.MpCommonArgs(config, flags, compiler, compiler_version)

Bases: object

config: BuildConfig
flags: FlagsConfig
compiler: str
compiler_version: str
fab.steps.compile_c.compile_c(config, common_flags=None, path_flags=None, source=None)

Compiles all C files in all build trees, creating or extending a set of compiled files for each target.

This step uses multiprocessing. All C files are compiled in a single pass.

The command line compiler to is taken from the environment variable CC, and defaults to gcc -c.

Uses multiprocessing, unless disabled in the config.

Parameters:
  • config – The fab.build_config.BuildConfig object where we can read settings such as the project workspace folder or the multiprocessing flag.

  • common_flags (Optional[List[str]]) – (default: None) A list of strings to be included in the command line call, for all files.

  • path_flags (Optional[List]) – (default: None) A list of AddFlags, defining flags to be included in the command line call for selected files.

  • source (Optional[ArtefactsGetter]) – (default: None) An ArtefactsGetter which give us our c files to process.

fab.steps.compile_c.store_artefacts(compiled_files, build_lists, artefact_store)

Create our artefact collection; object files for each compiled file, per root symbol.