fpm_manifest_build Module

Implementation of the build configuration data.

A build table can currently have the following fields

auto-executables = bool
auto-examples = bool
auto-tests = bool
link = ["lib"]

Derived Types

type, public, extends(serializable_t) ::  build_config_t

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

Type-Bound Procedures

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


public subroutine new_build_config(self, table, package_name, error)

Construct a new build configuration from a TOML data structure

Read more…


Type IntentOptional 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