add_dependency Subroutine

public subroutine add_dependency(target, dependency)

Add pointer to dependeny in target%dependencies

Arguments

Type IntentOptional Attributes Name
type(build_target_t), intent(inout) :: target
type(build_target_t), intent(in), target :: dependency

Source Code

subroutine add_dependency(target, dependency)
    type(build_target_t), intent(inout) :: target
    type(build_target_t) , intent(in), target :: dependency
    
    integer :: i
    
    ! Ensure no duplicate dependencies: it may happen if we loop over two library targets that 
    ! contain the same objects
    do i=1,size(target%dependencies)
        if (target%dependencies(i)%ptr%output_name == dependency%output_name) return
    end do
    if (dependency%output_name==target%output_name) return
    
    target%dependencies = [target%dependencies, build_target_ptr(dependency)]
    
end subroutine add_dependency