dependency_node_t Derived Type

type, public, extends(dependency_config_t) :: dependency_node_t

Dependency node in the projects dependency tree


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
logical, public :: done =.false.

Dependency is handled

type(git_target_t), public, allocatable:: git

Git descriptor

character(len=:), public, allocatable:: name

Name of the dependency

character(len=:), public, allocatable:: path

Local target

character(len=:), public, allocatable:: proj_dir

Installation prefix of this dependencies

character(len=:), public, allocatable:: revision

Checked out revision of the version control system

logical, public :: update =.false.

Dependency should be updated

type(version_t), public, allocatable:: version

Actual version of this dependency


Type-Bound Procedures

procedure, public :: info

Print information on this instance

  • private subroutine info(self, unit, verbosity)

    Write information on instance

    Arguments

    Type IntentOptional AttributesName
    class(dependency_config_t), intent(in) :: self

    Instance of the dependency configuration

    integer, intent(in) :: unit

    Unit for IO

    integer, intent(in), optional :: verbosity

    Verbosity of the printout

procedure, public :: register

Update dependency from project manifest

  • private subroutine register(self, package, root, fetch, revision, error)

    Update dependency from project manifest

    Arguments

    Type IntentOptional AttributesName
    class(dependency_node_t), intent(inout) :: self

    Instance of the dependency node

    type(package_config_t), intent(in) :: package

    Package configuration data

    character(len=*), intent(in) :: root

    Root directory of the project

    logical, intent(in) :: fetch

    Project has been fetched

    character(len=*), intent(in), optional :: revision

    Git revision of the project

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

    Error handling

Source Code

  type, extends(dependency_config_t) :: dependency_node_t
    !> Actual version of this dependency
    type(version_t), allocatable :: version
    !> Installation prefix of this dependencies
    character(len=:), allocatable :: proj_dir
    !> Checked out revision of the version control system
    character(len=:), allocatable :: revision
    !> Dependency is handled
    logical :: done = .false.
    !> Dependency should be updated
    logical :: update = .false.
  contains
    !> Update dependency from project manifest
    procedure :: register
  end type dependency_node_t