Momotor lang-gcc-build checklet

The mtrchk-org-momotor-lang-gcc-build package provides a checklet to build an executable from C source code using GCC.

Checklet

checklet mtrchk.org.momotor.lang.gcc.build.GccBuild(recipe, product, config, results, task_id, work_dir=None)

Compile C source files using GCC

tasks@scheduler option

Enable multiple tasks for this step. If not provided, a single task is generated for this step.

See Scheduler tasks option for the documentation of this option.

Type:

string

Required:

False

Multiple:

False

Location:

config, recipe, step

Default:

No default

Provided by: StepTasksCheckletMixin

secret option

Dynamic secret property value for the result. Momotor LTI will not show steps with a secret property set to true to learners, but will still show that step to reviewers.

The option value can be one of the following:

  • always or true: adds a secret property with value true to the result.

  • false: do not add a secret property to the result.

  • on-fail: adds a secret property with value true to the result if the step fails.

  • on-pass: adds a secret property with value true to the result if the step passed.

  • default: inherits the value from the next provider. If the last provider is ‘default’ no property will be added.

Note that this only adds a secret property with value true, but never one with value false. This ensures that a default defined in a recipe will be used unless the step or config explicitly override it.

The value can contain reference placeholders to inherit the value from another step’s options or properties.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

default

Provided by: SecretOptionMixin

label option

Label for this step. Momotor LTI uses labels as the header of the step in the result view. If a step does not have a label, Momotor LTI will use the step id as the label.

Can contain reference placeholders and task id placeholders.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: LabelOptionMixin

feedback-pass option

Feedback to prepend to the report property when this step passes.

Can contain reference placeholders and task id placeholders.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: FeedbackOptionMixin

feedback-fail option

Feedback to prepend to the report property when this step fails.

Can contain reference placeholders and task id placeholders.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: FeedbackOptionMixin

timeLimit option

Maximum time allowed for execution. Can be supplied in hh:mm:ss format, or as seconds

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: ExecutionMixin

blockLimit option

Maximum time allowed without any progress (wall clock time). Can be supplied in hh:mm:ss format, or as seconds

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: ExecutionMixin

memoryLimit option

Maximum memory usage allowed for execution. Can use IEC or SI units, eg. 1k (for 1000 bytes) or 1KiB (for 1024 bytes)

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: ExecutionMixin

processLimit option

Maximum number of child processes

Type:

integer

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

Provided by: ExecutionMixin

gcc@tools option

GCC version(s) to use.

Can be a space or comma separated list of version requirements to indicate alternative version preferences (in order of most to least preferred).

See the tool registry documentation for details.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

gcc

input-file-ref option

Reference to the C source files to build.

The files will be copied to a working directory and the file names will be provided to the compiler.

The reference is parsed with find_files(), see that method for details.

Type:

Any

Required:

False

Multiple:

True

All:

True

Location:

config, step, recipe

Default:

@product:#*.c

extra-file-ref option

Reference to the additional source files to build (e.g. header files, libs etc.).

The files will be copied to the directory with the C files.

The reference is parsed with find_files(), see that method for details.

Type:

Any

Required:

False

Multiple:

True

All:

True

Location:

config, step, recipe

Default:

@product:#*.h

language option

Language option (-x) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

none

standard option

Standard option (-std) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default

feature-option option

Feature option(s) (any boolean option starting with -f) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

True

All:

True

Location:

config, step, recipe

Default:

No default

lib option

Libs option(s) (-l) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

True

All:

False

Location:

config, step, recipe

Default:

m

extra-lib option

Additional libs option(s) (-l) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

True

All:

True

Location:

config, step, recipe

Default:

No default

optimize option

Optimization option (-O) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

True

All:

False

Location:

config, step, recipe

Default:

2

warn option

Warning options (any boolean option starting with -W) provided to the GCC compiler.

Type:

Any

Required:

False

Multiple:

True

All:

True

Location:

config, step, recipe

Default:

all

static-executable option

Build a static executable.

Type:

boolean

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

False

output-file-name option

Name of the executable file.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

a.out

output-file-class option

File class for collected executable files.

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

executable

pass-score option

Score when passing

Type:

Any

Required:

False

Multiple:

False

Location:

config, step, recipe

Default:

No default