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

import("//build/config/allocator.gni")

# GYP version: gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support
executable("gles2_conform_support") {
  sources = [
    "gles2_conform_support.c",
    "native/egl_native.cc",
    "native/egl_native_win.cc",
    "native/main.cc",
  ]
  defines = [
    "GLES2_CONFORM_SUPPORT_ONLY",
    "GTF_GLES20",
    "EGLAPI=",
    "EGLAPIENTRY=",
  ]
  deps = [
    "//base",
    "//gpu/gles2_conform_support/egl",
    "//base/third_party/dynamic_annotations",
    "//ui/gl",
    "//gpu/command_buffer/client:gles2_c_lib_nocheck",
  ]
  if (is_linux) {
    sources += [
      "native/egl_native_aura.cc",
      "native/egl_native_x11.cc",
    ]
  }
  if (use_allocator != "none") {
    # See http://crbug.com/162998#c4 for why this is needed.
    deps += [ "//base/allocator" ]
  }
}
