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

declare_args() {
  # Select platforms automatically. Turn this off for manual control.
  ozone_auto_platforms = true
}

declare_args() {
  # The platform that will be active by default.
  ozone_platform = ""

  # Enable individual platforms.
  ozone_platform_caca = false
  ozone_platform_dri = false
  ozone_platform_egltest = false
  ozone_platform_gbm = false
  ozone_platform_test = false

  if (ozone_auto_platforms) {
    # Use test as the default platform.
    ozone_platform = "test"

    # Build all platforms whose deps are in install-build-deps.sh.
    # Only these platforms will be compile tested by buildbots.
    ozone_platform_dri = true
    ozone_platform_test = true
    ozone_platform_egltest = true
  }
}
