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

DEPS = [
    'recipe_engine/cipd',
    'recipe_engine/context',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/step',
]

from recipe_engine.recipe_api import Property
from recipe_engine.config import Single

PROPERTIES = {
    'macos_sdk.sdk_dir':
        Property(param_name='sdk_dir', kind=Single(str), default=None),
    'macos_sdk.version':
        Property(param_name='version', kind=Single(str), default='10b61'),
    'macos_sdk.cipd_package':
        Property(
            param_name='cipd_package',
            kind=Single(str),
            default='infra/tools/mac_toolchain/${platform}'),
    'macos_sdk.cipd_version':
        Property(
            param_name='cipd_version',
            kind=Single(str),
            default='git_revision:434f5462a77e7103f9d610fa5cabc426bb21502e'),
}
