scripts: udpate_deps retry on clone or fetch failure

Duplicate change from commit b636386a7824eb4e6a0d99962e1491ac68d3a295
on KhronosGroup/Vulkan-ValidationLayers, to keep update_deps.py
in sync across all repos.  Original commit message is:

We see spurious failures to connect to github when trying to
run update_deps.py (up to 7% of runs, depending on the machine).
This is an annoyance when running by hand, but a headache and
a serious resource waste when running in automation (as a single
broken "git clone" or "git fetch" can cause the whole run to fail).

These changes allow update_deps.py to automatically retry
"git fetch" and "git clone" operations on failure.

These changes will be duplicated in follow-on PRs to the
other repositories that include "update_deps.py", to keep
them all in sync. These are KhronosGroup/Vulkan-Tools,
KhronosGroup/Vulkan-Loader, LunarG/VulkanSamples, and
LunarG/VulkanTools.

I'm also including a "technical debt" update here, because
VulkanTools/scripts/update_deps.py had diverged from the other
"update_deps.py" versions, to add a way to avoid building a
dependency if that dependency is not supported on the current
build platform. This should be harmless to the other
repositories (though potentially useful in the future). The
original commit was aaabc9df034f1fdf9a976a6293d0983b079143ee
with description:

    In update deps, this will check that a dependency is actually supported
    on the platform being built. This is needed because the loader is a
    dependency on all platforms other than Windows.
1 file changed
tree: 755b2049f997bfd337a7e2b2668461a9fa451e87
  1. .appveyor.yml
  2. .clang-format
  3. .cmake-format.py
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. .travis.yml
  8. BUILD.gn
  9. BUILD.md
  10. CMakeLists.txt
  11. CODE_OF_CONDUCT.md
  12. CONTRIBUTING.md
  13. GOVERNANCE.md
  14. LICENSE.txt
  15. README.md
  16. build-android/
  17. build-gn/
  18. cmake/
  19. common/
  20. cube/
  21. external/
  22. icd/
  23. mac_common.cmake
  24. scripts/
  25. vulkaninfo/
  26. windows-runtime-installer/
README.md

Vulkan Ecosystem Components

This project provides Khronos official Vulkan Tools and Utilities for Windows, Linux, Android, and MacOS.

CI Build Status

PlatformBuild Status
Linux/AndroidBuild Status
WindowsBuild status

Introduction

This project provides Vulkan tools and utilities that can assist development by enabling developers to verify their applications correct use of the Vulkan API.

The following components are available in this repository:

Contact Information

Information for Developing or Contributing:

Please see the CONTRIBUTING.md file in this repository for more details. Please see the GOVERNANCE.md file in this repository for repository management details.

How to Build and Run

BUILD.md Includes directions for building all components as well as running the vkcube demo applications.

Version Tagging Scheme

Updates to the Vulkan-Tools repository which correspond to a new Vulkan specification release are tagged using the following format: v<version> (e.g., v1.1.96).

Note: Marked version releases have undergone thorough testing but do not imply the same quality level as SDK tags. SDK tags follow the sdk-<version>.<patch> format (e.g., sdk-1.1.92.0).

This scheme was adopted following the 1.1.96 Vulkan specification release.

License

This work is released as open source under a Apache-style license from Khronos including a Khronos copyright.

See COPYRIGHT.txt for a full list of licenses used in this repository.

Acknowledgements

While this project has been developed primarily by LunarG, Inc., there are many other companies and individuals making this possible: Valve Corporation, funding project development; Google providing significant contributions to the validation layers; Khronos providing oversight and hosting of the project.