# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Note: changes to this file will require updating fuchsia.versions, which
# can be done by running `./cipd ensure-file-resolve -ensure-file fuchsia.ensure`
# from this directory.

$VerifiedPlatform linux-amd64
$VerifiedPlatform mac-amd64

$ParanoidMode CheckPresence
$ResolvedVersions fuchsia.versions

# GN
gn/gn/${platform} git_revision:bdb0fd02324b120cacde634a9235405061c8ea06

# vpython
infra/tools/luci/vpython/${platform} git_revision:9a931a5307c46b16b1c12e01e8239d4a73830b89

# LUCI editor
infra/tools/luci/led/${platform} git_revision:364409bad34a43aaaeab8d3d92d8f890fb96d572

# LogDog CLI client
infra/tools/luci/logdog/logdog/${platform} git_revision:cf9d281c2ff478928ff11dfa4995d09a97046990

# Ninja
infra/ninja/${platform} version:1.8.2

# Breakpad
fuchsia/tools/breakpad/${os=linux}-${arch} git_revision:9eac2058b70615519b2c4d8c6bdbfca1bd079e39

# dump_breakpad_symbols
fuchsia/tools/dump_breakpad_symbols/${os=linux}-${arch} git_revision:ceab742028fe55c4e111dc44051929fd1dfc96bc

# godepfile
fuchsia/tools/godepfile/${platform} git_revision:6922d7833617841e853a0be52a285f6cd07a0a10

# CMake
@Subdir cmake
infra/cmake/${platform} version:3.10.0

# Clang
@Subdir clang
fuchsia/clang/${platform} git_revision:e26bce5269e367446e2adb259e2394ce4bd5235e

# Go
@Subdir go
fuchsia/go/${platform} git_revision:b8bd7d94a2ae6c80ab8b6ed5900d3eeba8a777c3

# Rust
@Subdir rust
fuchsia/rust/${platform} git_revision:46880f41b7aeb897b8245474196bba9dc11f0e88

# Swift
@Subdir swift
fuchsia/swift/${os=linux}-${arch} git_revision:d4943f3da1ae8b69fba21fa359b62f25d74a6b14

# QEMU
@Subdir qemu
fuchsia/qemu/${platform} git_revision:0f0027d617976b4cbb7b937d5836f8ef0ac25ba1

# sysroot
@Subdir sysroot
fuchsia/sysroot/${os=linux}-${arch} git_revision:a96053c799a0f1ad0b7e8ab8199edbfa18adcbb6
