# 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.

$VerifiedPlatform linux-amd64
$VerifiedPlatform mac-amd64

$ParanoidMode CheckPresence
$ResolvedVersions fuchsia.versions

# GN
gn/gn/${platform} git_revision:106b823805adcc043b2bfe5bc21d58f160a28a7b

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

# LUCI editor
infra/tools/luci/led/${platform} git_revision:41e714f4324dd5cf66e792b7c8a76051be705f7f

# 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:70a812b6f9a686e288468cc448144f910e361939

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

# Rust
@Subdir rust
fuchsia/rust/${platform} git_revision:1c5e9c68ea6c76fe400528de17ebe03e338bac68

# 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
