1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
module fpm_dependency_modules_33
implicit none
type :: error_t
character(len=:), allocatable :: message
end type error_t
type :: dependency_config_t
character(len=:), allocatable :: name
character(len=:), allocatable :: path
end type dependency_config_t
type, extends(dependency_config_t) :: dependency_node_t
character(len=:), allocatable :: proj_dir
character(len=:), allocatable :: revision
logical :: done = .false.
logical :: update = .false.
end type dependency_node_t
type :: dependency_tree_t
integer :: unit
integer :: verbosity
character(len=:), allocatable :: dep_dir
integer :: ndep
type(dependency_node_t), allocatable :: dep(:)
character(len=:), allocatable :: cache
contains
generic :: update => update_dependency
procedure, private :: update_dependency
generic :: add => add_project, add_project_dependencies
procedure, private :: add_project
procedure, private :: add_project_dependencies
end type dependency_tree_t
type :: package_config_t
character(len=:), allocatable :: name
end type package_config_t
contains
subroutine update_dependency(self, name, error)
class(dependency_tree_t), intent(inout) :: self
character(len=*), intent(in) :: name
type(error_t), allocatable, intent(out) :: error
end subroutine update_dependency
subroutine add_project(self, package, error)
class(dependency_tree_t), intent(inout) :: self
type(package_config_t), intent(in) :: package
type(error_t), allocatable, intent(out) :: error
end subroutine add_project
recursive subroutine add_project_dependencies(self, root, main, error)
class(dependency_tree_t), intent(inout) :: self
character(len=*), intent(in) :: root
logical, intent(in) :: main
type(error_t), allocatable, intent(out) :: error
end subroutine add_project_dependencies
end module fpm_dependency_modules_33
|