123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- # 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/chromeos/ui_mode.gni")
- import("//build/config/ui.gni")
- import("//gpu/vulkan/features.gni")
- import("//skia/features.gni")
- import("//ui/gl/features.gni")
- if (is_android) {
- import("//build/config/android/rules.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) ]
- }
- }
- if (enable_vulkan) {
- component("vulkan_info") {
- sources = [
- "vulkan_info.cc",
- "vulkan_info.h",
- ]
- configs += [ "//gpu:gpu_implementation" ]
- deps = [ "//gpu/ipc/common:vulkan_interface" ]
- public_deps = [
- "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers",
- "//ui/gfx",
- ]
- # surpass linke error 4217. It is because vulkan_info depends on
- # //gpu/ipc/common:vulkan_interface and //gpu/ipc/common:vulkan_interface"
- # depends on this target.
- # TODO(penghuang): Fix this link error
- if (is_win && is_component_build) {
- ldflags = [ "/IGNORE:4217" ]
- }
- }
- }
- 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 = [
- "device_perf_info.cc",
- "device_perf_info.h",
- "dx_diag_node.cc",
- "dx_diag_node.h",
- "gpu_blocklist.cc",
- "gpu_blocklist.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_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_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",
- "skia_limits.cc",
- "skia_limits.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" ]
- if (enable_vulkan) {
- public_deps += [ ":vulkan_info" ]
- }
- deps = [
- ":process_json",
- "//base",
- "//build:branding_buildflags",
- "//build:chromecast_buildflags",
- "//build:chromeos_buildflags",
- "//gpu/command_buffer/common:common_sources",
- "//gpu/ipc/common:gpu_preferences_interface",
- "//gpu/vulkan:buildflags",
- "//media:media_buildflags",
- "//skia:buildflags",
- "//third_party/re2",
- "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers",
- "//ui/gfx",
- "//ui/gl",
- "//ui/gl:buildflags",
- "//ui/gl/init",
- ]
- if (use_dawn || skia_use_dawn) {
- public_deps += [ "//third_party/dawn/include/dawn:headers" ]
- deps += [
- "//third_party/dawn/src/dawn:cpp",
- "//third_party/dawn/src/dawn:proc",
- "//third_party/dawn/src/dawn/native",
- ]
- }
- # GpuPreferences is using its own mojo bindings which creates a
- # cycle between this target and gpu_preferences_interface.
- allow_circular_includes_from =
- [ "//gpu/ipc/common:gpu_preferences_interface" ]
- # Prefer mesa GL headers to system headers, which cause problems on Win.
- include_dirs = [ "//third_party/mesa_headers" ]
- if (is_android) {
- sources += [ "gpu_info_collector_android.cc" ]
- }
- if (is_win) {
- sources += [
- "gpu_dx_diagnostics_win.cc",
- "gpu_info_collector_win.cc",
- ]
- libs = [
- "dxgi.lib",
- "dxguid.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) {
- sources += [ "gpu_info_collector_mac.mm" ]
- frameworks = [ "OpenGL.framework" ]
- }
- if (is_linux || is_chromeos) {
- sources += [ "gpu_info_collector_linux.cc" ]
- }
- if (is_linux || is_chromeos || is_mac || is_fuchsia) {
- deps += [ "//third_party/angle:angle_gpu_info_util" ]
- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
- }
- if (is_android) {
- java_cpp_strings("java_switches_srcjar") {
- # External code should depend on ":config_java" instead.
- visibility = [ ":*" ]
- sources = [ "gpu_switches.cc" ]
- template = "android/java/src/org/chromium/gpu/config/GpuSwitches.java.tmpl"
- }
- java_cpp_features("java_features_srcjar") {
- # External code should depend on ":config_java" instead.
- visibility = [ ":*" ]
- sources = [ "gpu_finch_features.cc" ]
- template = "android/java/src/org/chromium/gpu/config/GpuFeatures.java.tmpl"
- }
- android_library("config_java") {
- # Right now, this only includes the Java switches/features. But if we need
- # more Java files, they should be added here as necessary.
- srcjar_deps = [
- ":java_features_srcjar",
- ":java_switches_srcjar",
- ]
- }
- }
|