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

PYTHON_VERSION_COMPATIBILITY = 'PY2+3'

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 ConfigGroup, Single

PROPERTIES = {
    '$gn/macos_sdk':
        Property(
            help='Properties specifically for the macos_sdk module.',
            param_name='sdk_properties',
            kind=ConfigGroup(  # pylint: disable=line-too-long
                # XCode build version number. Internally maps to an XCode build id like
                # '9c40b'. See
                #
                #   https://chrome-infra-packages.appspot.com/p/infra_internal/ios/xcode/mac/+/
                #
                # For an up to date list of the latest SDK builds.
                sdk_version=Single(str),

                # The CIPD toolchain tool package and version.
                tool_pkg=Single(str),
                tool_ver=Single(str),
            ),
            default={
                'sdk_version':
                    '12B5025f',
                'tool_package':
                    'infra/tools/mac_toolchain/${platform}',
                'tool_version':
                    'git_revision:e9b1fe29fe21a1cd36428c43ea2aba244bd31280',
            },
        )
}
