Implementation of the build configuration data.
A build table can currently have the following fields
[build]
auto-executables = bool
auto-examples = bool
auto-tests = bool
link = ["lib"]
Configuration data for build
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | auto_examples | = | .true. |
Automatic discovery of examples |
|
| logical, | public | :: | auto_executables | = | .true. |
Automatic discovery of executables |
|
| logical, | public | :: | auto_tests | = | .true. |
Automatic discovery of tests |
|
| type(string_t), | public, | allocatable | :: | external_modules(:) |
External modules to use |
||
| type(string_t), | public, | allocatable | :: | link(:) |
Libraries to link against |
||
| logical, | public | :: | module_naming | = | .false. |
Enforcing of package module names |
|
| type(string_t), | public | :: | module_prefix |
| generic, public :: dump => dump_to_toml, dump_to_file, dump_to_unit | |
| procedure, public :: dump_to_toml | |
| procedure, public :: info | Print information on this instance |
| generic, public :: load => load_from_toml, load_from_file, load_from_unit | |
| procedure, public :: load_from_toml | |
| generic, public :: operator(==) => serializable_is_same | |
| procedure, public :: serializable_is_same => build_conf_is_same | Serialization interface |
| procedure, public, non_overridable :: test_serialization | Test load/write roundtrip |
Construct a new build configuration from a TOML data structure
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(build_config_t), | intent(out) | :: | self |
Instance of the build configuration |
||
| type(toml_table), | intent(inout) | :: | table |
Instance of the TOML data structure |
||
| character(len=*), | intent(in) | :: | package_name |
Package name |
||
| type(error_t), | intent(out), | allocatable | :: | error |
Error handling |