blob: 70df68296d4e2f8b87693309f571ca2a3d7a1f2b [file] [log] [blame]
# 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/jumbo.gni")
import("//build/config/ui.gni")
group("config") {
if (is_component_build) {
public_deps = [
"//gpu",
]
} else {
public_deps = [
":config_sources",
]
}
}
process_json_outputs = [
"$target_gen_dir/gpu_driver_bug_list_arrays_and_structs_autogen.h",
"$target_gen_dir/gpu_driver_bug_list_autogen.cc",
"$target_gen_dir/gpu_driver_bug_list_autogen.h",
"$target_gen_dir/gpu_driver_bug_list_exceptions_autogen.h",
"$target_gen_dir/software_rendering_list_arrays_and_structs_autogen.h",
"$target_gen_dir/software_rendering_list_autogen.cc",
"$target_gen_dir/software_rendering_list_autogen.h",
"$target_gen_dir/software_rendering_list_exceptions_autogen.h",
]
action("process_json") {
script = "process_json.py"
inputs = [
"gpu_driver_bug_list.json",
"gpu_driver_bug_workaround_type.h",
"gpu_feature_type.h",
"software_rendering_list.json",
]
outputs = process_json_outputs
args = [
"--output-dir",
rebase_path("$target_gen_dir", root_build_dir),
"--skip-testing-data",
"--os-filter",
]
if (is_win) {
args += [ "win" ]
} else if (is_mac) {
args += [ "macosx" ]
} else if (is_android) {
args += [ "android" ]
} else if (is_chromeos) {
args += [ "chromeos" ]
} else if (is_fuchsia) {
args += [ "fuchsia" ]
} else {
args += [ "linux" ]
}
public_deps = [
":workaround_list",
]
}
action("workaround_list") {
script = "build_workaround_header.py"
skia_workaround_list = "//third_party/skia/src/gpu/gpu_workaround_list.txt"
inputs = [
"gpu_workaround_list.txt",
skia_workaround_list,
]
outputs = [
"$target_gen_dir/gpu_driver_bug_workaround_autogen.h",
]
args = [
"--output-file",
rebase_path(outputs[0], root_build_dir),
]
foreach(file, inputs) {
args += [ rebase_path(file, root_build_dir) ]
}
}
jumbo_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_crash_keys.cc",
"gpu_crash_keys.h",
"gpu_domain_guilt.h",
"gpu_driver_bug_list.cc",
"gpu_driver_bug_list.h",
"gpu_driver_bug_workaround_type.h",
"gpu_driver_bug_workarounds.cc",
"gpu_driver_bug_workarounds.h",
"gpu_dx_diagnostics_win.cc",
"gpu_feature_info.cc",
"gpu_feature_info.h",
"gpu_feature_type.h",
"gpu_finch_features.cc",
"gpu_finch_features.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_mac.mm",
"gpu_info_collector_win.cc",
"gpu_mode.h",
"gpu_preferences.cc",
"gpu_preferences.h",
"gpu_switches.cc",
"gpu_switches.h",
"gpu_switching.cc",
"gpu_switching.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",
]
if (is_fuchsia) {
sources += [ "gpu_info_collector_fuchsia.cc" ]
}
sources += process_json_outputs
configs += [ "//gpu:gpu_implementation" ]
public_deps = [
"//components/crash/core/common:crash_key",
]
deps = [
":process_json",
"//base",
"//gpu/ipc/common:gpu_preferences_interface",
"//media:media_buildflags",
"//third_party/re2",
"//ui/gl",
"//ui/gl:buildflags",
"//ui/gl/init",
]
# Prefer mesa GL headers to system headers, which cause problems on Win.
include_dirs = [ "//third_party/mesa_headers" ]
if (is_win) {
libs = [
"dxguid.lib",
"setupapi.lib",
]
sources += [
"//third_party/nvml/nvml.h",
"nvml_info.cc",
"nvml_info.h",
]
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 = [ "OpenGL.framework" ]
}
if (is_linux || is_mac) {
deps += [ "//third_party/angle:angle_gpu_info_util" ]
}
}