# 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 = false
}

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_drm = false
  ozone_platform_egltest = false
  ozone_platform_gbm = true
  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_drm = true
    ozone_platform_test = true
    ozone_platform_egltest = true
  }
}
