# 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/ui.gni")

if (is_linux && use_x11 && current_cpu != "arm") {
  executable("compositor_model_bench") {
    sources = [
      "compositor_model_bench.cc",
      "forward_render_model.cc",
      "forward_render_model.h",
      "render_model_utils.cc",
      "render_model_utils.h",
      "render_models.cc",
      "render_models.h",
      "render_tree.cc",
      "render_tree.h",
      "shaders.cc",
      "shaders.h",
    ]

    libs = [ "GL" ]

    configs += [ "//build/config/linux:x11" ]

    deps = [
      "//base",
      "//ui/gl",
      "//ui/gl/init",
    ]
  }
}
