fpm_manifest_dependency Module

Implementation of the meta data for dependencies.

A dependency table can currently have the following fields

[dependencies]
"dep1" = { git = "url" }
"dep2" = { git = "url", branch = "name" }
"dep3" = { git = "url", tag = "name" }
"dep4" = { git = "url", rev = "sha1" }
"dep0" = { path = "path" }

To reduce the amount of boilerplate code this module provides two constructors for dependency types, one basic for an actual dependency (inline) table and another to collect all dependency objects from a dependencies table, which is handling the allocation of the objects and is forwarding the individual dependency tables to their respective constructors. The usual entry point should be the constructor for the super table.

This objects contains a target to retrieve required fpm projects to build the target declaring the dependency. Resolving a dependency will result in obtaining a new package configuration data for the respective project.



Contents


Derived Types

type, public :: dependency_config_t

Configuration meta data for a dependency

Type-Bound Procedures

procedure, public :: info

Print information on this instance


Subroutines

public subroutine new_dependencies(deps, table, error)

Construct new dependency array from a TOML data structure

Arguments

Type IntentOptional AttributesName
type(dependency_config_t), intent(out), allocatable:: deps(:)

Instance of the dependency configuration

type(toml_table), intent(inout) :: table

Instance of the TOML data structure

type(error_t), intent(out), allocatable:: error

Error handling

public subroutine new_dependency(self, table, error)

Construct a new dependency configuration from a TOML data structure

Arguments

Type IntentOptional AttributesName
type(dependency_config_t), intent(out) :: self

Instance of the dependency configuration

type(toml_table), intent(inout) :: table

Instance of the TOML data structure

type(error_t), intent(out), allocatable:: error

Error handling