Definition of a build command
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(string_t), | public, | allocatable | :: | arguments(:) | |||
| type(string_t), | public | :: | directory | ||||
| type(string_t), | public | :: | file | 
Override default initializer (GCC 15 bug)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | directory | |||
| character(len=*), | intent(in), | optional | :: | arguments(:) | ||
| character(len=*), | intent(in) | :: | file | 
Operation
Cleanup compile command
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compile_command_t), | intent(inout) | :: | self | Instance of the serializable object | 
Dump dependency to toml table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(srcfile_t), | intent(inout) | :: | self | Instance of the serializable object | ||
| type(toml_table), | intent(inout) | :: | table | Data structure | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | 
Write serializable object to file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serializable_t), | intent(inout) | :: | self | Instance of the dependency tree | ||
| character(len=*), | intent(in) | :: | file | File name | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | |
| logical, | intent(in), | optional | :: | json | Optional JSON format | 
Write serializable object to a formatted Fortran unit
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serializable_t), | intent(inout) | :: | self | Instance of the dependency tree | ||
| integer, | intent(in) | :: | unit | Formatted unit | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | |
| logical, | intent(in), | optional | :: | json | Optional JSON format requested? | 
Dump compile_command_t to toml table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compile_command_t), | intent(inout) | :: | self | Instance of the serializable object | ||
| type(toml_table), | intent(inout) | :: | table | Data structure | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | 
Read dependency from toml table (no checks made at this stage)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(srcfile_t), | intent(inout) | :: | self | Instance of the serializable object | ||
| type(toml_table), | intent(inout) | :: | table | Data structure | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | 
Read dependency tree from file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serializable_t), | intent(inout) | :: | self | Instance of the dependency tree | ||
| character(len=*), | intent(in) | :: | file | File name | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | |
| logical, | intent(in), | optional | :: | json | Optional JSON format | 
Read dependency tree from file init JSON interpreter Read object from TOML table
use default TOML parser
Read object from TOML table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serializable_t), | intent(inout) | :: | self | Instance of the dependency tree | ||
| integer, | intent(in) | :: | unit | File name | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | |
| logical, | intent(in), | optional | :: | json | Optional JSON format | 
Read compile_command_t from toml table (no checks made at this stage)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compile_command_t), | intent(inout) | :: | self | Instance of the serializable object | ||
| type(toml_table), | intent(inout) | :: | table | Data structure | ||
| type(error_t), | intent(out), | allocatable | :: | error | Error handling | 
Check that two source files are equal All checks passed!
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(srcfile_t), | intent(in) | :: | this | |||
| class(serializable_t), | intent(in) | :: | that | 
Serialization interface
Check that two compile_command_t objects are equal All checks passed!
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(compile_command_t), | intent(in) | :: | this | |||
| class(serializable_t), | intent(in) | :: | that | 
Test load/write roundtrip
Test serialization of a serializable object Dump to scratch file Load from scratch file Check same
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serializable_t), | intent(inout) | :: | self | |||
| character(len=*), | intent(in) | :: | message | |||
| type(error_t), | intent(out), | allocatable | :: | error | 
type, extends(serializable_t) :: compile_command_t type(string_t) :: directory type(string_t), allocatable :: arguments(:) type(string_t) :: file contains !> Operation procedure :: destroy => compile_command_destroy !> Serialization interface procedure :: serializable_is_same => compile_command_is_same procedure :: dump_to_toml => compile_command_dump_toml procedure :: load_from_toml => compile_command_load_toml end type compile_command_t