# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This file contains a mapping of platform names to paths to the platforms's
# implementation. To add another platform, simply add another entry in the same
# style to this list.

platforms = [
  {
    name = "stub"
    path = "starboard/stub"
  },
  {
    name = "linux-x64x11"
    path = "starboard/linux/x64x11"
  },
  {
    name = "linux-x64x11-egl"
    path = "starboard/linux/x64x11/egl"
  },
  {
    name = "linux-x64x11-internal"
    path = "starboard/linux/x64x11/internal"
  },
  {
    name = "linux-x64x11-skia"
    path = "starboard/linux/x64x11/skia"
  },
  {
    name = "android-arm"
    path = "starboard/android/arm"
  },
  {
    name = "android-arm64"
    path = "starboard/android/arm64"
  },
  {
    name = "android-arm64-vulkan"
    path = "starboard/android/arm64/vulkan"
  },
  {
    name = "android-x86"
    path = "starboard/android/x86"
  },
  {
    name = "raspi-2"
    path = "starboard/raspi/2"
  },
  {
    name = "raspi-2-skia"
    path = "starboard/raspi/2/skia"
  },
  {
    name = "win-win32"
    path = "starboard/win/win32"
  },
  {
    name = "darwin-tvos-arm64"
    path = "starboard/darwin/tvos/arm64"
  },
  {
    name = "darwin-tvos-simulator"
    path = "starboard/darwin/tvos/simulator"
  },
  {
    name = "evergreen-x64"
    path = "starboard/evergreen/x64"
  },
]
