| # 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. | 
 |  | 
 | import("//build/config/chrome_build.gni") | 
 | import("//build/config/chromecast_build.gni") | 
 | import("//build/config/ui.gni") | 
 |  | 
 | declare_args() { | 
 |   # Use the PCI lib to collect GPU information on Linux. | 
 |   use_libpci = is_linux && (!is_chromecast || is_cast_desktop_build) && | 
 |                (use_x11 || use_ozone) | 
 | } | 
 |  | 
 | group("config") { | 
 |   if (is_component_build) { | 
 |     public_deps = [ | 
 |       "//gpu", | 
 |     ] | 
 |   } else { | 
 |     public_deps = [ | 
 |       ":config_sources", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | source_set("config_sources") { | 
 |   # External code should depend on this via //gpu/config above rather than | 
 |   # depending on this directly or the component build will break. | 
 |   visibility = [ "//gpu/*" ] | 
 |  | 
 |   sources = [ | 
 |     "dx_diag_node.cc", | 
 |     "dx_diag_node.h", | 
 |     "gpu_blacklist.cc", | 
 |     "gpu_blacklist.h", | 
 |     "gpu_control_list.cc", | 
 |     "gpu_control_list.h", | 
 |     "gpu_control_list_jsons.h", | 
 |     "gpu_driver_bug_list.cc", | 
 |     "gpu_driver_bug_list.h", | 
 |     "gpu_driver_bug_list_json.cc", | 
 |     "gpu_driver_bug_workaround_type.h", | 
 |     "gpu_driver_bug_workarounds.cc", | 
 |     "gpu_driver_bug_workarounds.h", | 
 |     "gpu_dx_diagnostics_win.cc", | 
 |     "gpu_feature_type.h", | 
 |     "gpu_info.cc", | 
 |     "gpu_info.h", | 
 |     "gpu_info_collector.cc", | 
 |     "gpu_info_collector.h", | 
 |     "gpu_info_collector_android.cc", | 
 |     "gpu_info_collector_linux.cc", | 
 |     "gpu_info_collector_linux.h", | 
 |     "gpu_info_collector_mac.mm", | 
 |     "gpu_info_collector_ozone.cc", | 
 |     "gpu_info_collector_win.cc", | 
 |     "gpu_info_collector_x11.cc", | 
 |     "gpu_switches.cc", | 
 |     "gpu_switches.h", | 
 |     "gpu_test_config.cc", | 
 |     "gpu_test_config.h", | 
 |     "gpu_test_expectations_parser.cc", | 
 |     "gpu_test_expectations_parser.h", | 
 |     "gpu_util.cc", | 
 |     "gpu_util.h", | 
 |     "software_rendering_list_json.cc", | 
 |   ] | 
 |  | 
 |   configs += [ | 
 |     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | 
 |     "//build/config/compiler:no_size_t_to_int_warning", | 
 |     "//gpu:gpu_implementation", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "//base", | 
 |     "//third_party/re2", | 
 |     "//ui/gl", | 
 |     "//ui/gl/init", | 
 |   ] | 
 |  | 
 |   # Prefer mesa GL headers to system headers, which cause problems on Win. | 
 |   include_dirs = [ "//third_party/mesa/src/include" ] | 
 |  | 
 |   if (is_win) { | 
 |     deps += [ "//third_party/libxml" ] | 
 |     libs = [ | 
 |       "dxguid.lib", | 
 |       "setupapi.lib", | 
 |     ] | 
 |  | 
 |     if (is_chrome_branded && is_official_build) { | 
 |       sources += [ | 
 |         "//third_party/amd/AmdCfxPxExt.h", | 
 |         "//third_party/amd/amd_videocard_info_win.cc", | 
 |       ] | 
 |     } | 
 |   } | 
 |   if (is_mac) { | 
 |     libs = [ | 
 |       "IOKit.framework", | 
 |       "CoreFoundation.framework", | 
 |     ] | 
 |   } | 
 |   if (use_libpci) { | 
 |     defines = [ "USE_LIBPCI=1" ] | 
 |     deps += [ "//build/linux/libpci" ] | 
 |   } | 
 |   if (is_linux && use_x11) { | 
 |     configs += [ | 
 |       "//build/config/linux:x11", | 
 |       "//build/config/linux:xext", | 
 |     ] | 
 |     deps += [ | 
 |       "//third_party/libXNVCtrl", | 
 |       "//ui/gfx/x", | 
 |     ] | 
 |   } else { | 
 |     sources -= [ "gpu_info_collector_x11.cc" ] | 
 |   } | 
 |   if (!use_ozone) { | 
 |     sources -= [ "gpu_info_collector_ozone.cc" ] | 
 |   } | 
 | } |