From b3c7880dc9e66ff449b23e2273b4f20abecba442 Mon Sep 17 00:00:00 2001 From: brettw Date: Mon, 6 Apr 2015 12:54:34 -0700 Subject: [PATCH] Work on Windows GN component build. This makes ppapi_shared link. This required many changes to gpu to match the structure of GYP in both component and non-component modes. BUG=470212 CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg Review URL: https://codereview.chromium.org/1053203003 Cr-Commit-Position: refs/heads/master@{#323937} --- components/nacl/BUILD.gn | 1 - content/common/BUILD.gn | 9 ++++--- gpu/BUILD.gn | 10 +++---- gpu/blink/BUILD.gn | 1 + gpu/command_buffer/client/BUILD.gn | 54 ++++++++++++++++++++++++------------- gpu/command_buffer/common/BUILD.gn | 20 +++++++++++++- gpu/command_buffer/service/BUILD.gn | 22 ++++++++++----- gpu/config/BUILD.gn | 18 +++++++++++-- gpu/ipc/BUILD.gn | 18 +++++++++++-- media/base/BUILD.gn | 1 + ppapi/proxy/BUILD.gn | 16 +++++++++-- ppapi/shared_impl/BUILD.gn | 2 +- ppapi/thunk/BUILD.gn | 14 +++++++++- ui/gl/BUILD.gn | 4 +-- ui/surface/BUILD.gn | 6 ++--- 15 files changed, 147 insertions(+), 49 deletions(-) diff --git a/components/nacl/BUILD.gn b/components/nacl/BUILD.gn index 8e9cd9ba32f3..cb4496f20ddf 100644 --- a/components/nacl/BUILD.gn +++ b/components/nacl/BUILD.gn @@ -146,7 +146,6 @@ if (enable_nacl) { "//ppapi/c", "//ppapi/proxy:ipc", "//ppapi/shared_impl", - "//ppapi/thunk", "//third_party/WebKit/public:blink", "//third_party/jsoncpp", ] diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index 8d739e7714e8..25bb75168a4d 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn @@ -144,6 +144,7 @@ source_set("common") { "//build/util:webkit_version", "//components/tracing", "//gpu/command_buffer/client:gles2_interface", + "//gpu/command_buffer/common:gles2_utils", "//net", "//skia", "//third_party/icu", @@ -279,8 +280,10 @@ source_set("common") { } if (use_x11) { - include_dirs += [ "//third_party/khronos" ] - configs += [ "//build/config/linux:xcomposite" ] + configs += [ + "//build/config/linux:xcomposite", + "//third_party/khronos:khronos_headers", + ] if (current_cpu != "arm" || !is_chromeos) { sources += [ "gpu/x_util.h" ] @@ -403,7 +406,7 @@ source_set("common") { "gpu/media/dxva_video_decode_accelerator.cc", "gpu/media/dxva_video_decode_accelerator.h", ] - include_dirs += [ "//third_party/khronos" ] + configs += [ "//third_party/khronos:khronos_headers" ] deps += [ "//ui/gl" ] libs += [ "d3d9.lib", diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn index d8ac30fe3810..eba5e7a35187 100644 --- a/gpu/BUILD.gn +++ b/gpu/BUILD.gn @@ -40,12 +40,12 @@ config("gpu_implementation") { component("gpu") { public_deps = [ - "//gpu/command_buffer/client", + "//gpu/command_buffer/client:client_sources", "//gpu/command_buffer/client:gles2_cmd_helper_sources", - "//gpu/command_buffer/common", - "//gpu/command_buffer/service", - "//gpu/config", - "//gpu/ipc", + "//gpu/command_buffer/common:common_sources", + "//gpu/command_buffer/service:service_sources", + "//gpu/config:config_sources", + "//gpu/ipc:ipc_sources", ] } diff --git a/gpu/blink/BUILD.gn b/gpu/blink/BUILD.gn index 7d08ba116a4c..d034c4769b6a 100644 --- a/gpu/blink/BUILD.gn +++ b/gpu/blink/BUILD.gn @@ -24,6 +24,7 @@ component("blink") { "//base/third_party/dynamic_annotations", "//cc", "//gpu/command_buffer/common", + "//gpu/command_buffer/common:gles2_utils", "//gpu/command_buffer/service", "//gpu/command_buffer/client:gles2_c_lib", "//gpu/command_buffer/client:gles2_implementation", diff --git a/gpu/command_buffer/client/BUILD.gn b/gpu/command_buffer/client/BUILD.gn index fabc82a0fe29..bbb7c0b99d1d 100644 --- a/gpu/command_buffer/client/BUILD.gn +++ b/gpu/command_buffer/client/BUILD.gn @@ -2,7 +2,38 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -source_set("client") { +# The files here go into the "gpu" component in a component build (with +# "command_buffer_client" and "gles2_cmd_helper" just forwarding) and goes into +# separate static libraries in non-component build. This needs to match the +# GYP build which was likely an attempt to make larger components to help with +# loading. +group("client") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":client_sources", + ] + } +} + +group("gles2_cmd_helper") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":gles2_cmd_helper_sources", + ] + } +} + +source_set("client_sources") { + visibility = [ "//gpu/*" ] + sources = [ "cmd_buffer_helper.cc", "cmd_buffer_helper.h", @@ -28,27 +59,12 @@ source_set("client") { all_dependent_configs = [ "//third_party/khronos:khronos_headers" ] deps = [ - "//gpu/command_buffer/common", + "//gpu/command_buffer/common:common_sources", ] } -group("gles2_cmd_helper") { - if (is_component_build) { - deps = [ - "//gpu", - ] - } else { - deps = [ - ":gles2_cmd_helper_sources", - ] - } -} - source_set("gles2_cmd_helper_sources") { - visibility = [ - ":gles2_cmd_helper", - "//gpu", - ] + visibility = [ "//gpu/*" ] sources = [ "gles2_cmd_helper.cc", "gles2_cmd_helper.h", @@ -62,7 +78,7 @@ source_set("gles2_cmd_helper_sources") { ] deps = [ - ":client", + ":client_sources", ] } diff --git a/gpu/command_buffer/common/BUILD.gn b/gpu/command_buffer/common/BUILD.gn index 57935ac4cead..6f3ec0c4bd2b 100644 --- a/gpu/command_buffer/common/BUILD.gn +++ b/gpu/command_buffer/common/BUILD.gn @@ -2,7 +2,25 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -source_set("common") { +# The files here go into the "gpu" component in a component build (with +# "command_buffer_common" just forwarding) and goes into a static library in +# non-component build. This needs to match the GYP build which was likely an +# attempt to make larger components to help with loading. +group("common") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":common_sources", + ] + } +} + +source_set("common_sources") { + visibility = [ "//gpu/*" ] + sources = [ "bitfield_helpers.h", "buffer.cc", diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn index 44b090907fe8..8045a03cb9a2 100644 --- a/gpu/command_buffer/service/BUILD.gn +++ b/gpu/command_buffer/service/BUILD.gn @@ -5,7 +5,21 @@ import("//build/config/ui.gni") import("//third_party/protobuf/proto_library.gni") -source_set("service") { +group("service") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":service_sources", + ] + } +} + +source_set("service_sources") { + visibility = [ "//gpu/*" ] + sources = [ "async_pixel_transfer_delegate.cc", "async_pixel_transfer_delegate.h", @@ -128,7 +142,7 @@ source_set("service") { include_dirs = [ "//third_party/mesa/src/include" ] public_deps = [ - "//gpu/command_buffer/common", + "//gpu/command_buffer/common:common_sources", ] deps = [ ":disk_cache_proto", @@ -144,10 +158,6 @@ source_set("service") { "//ui/gl", ] - if (ui_compositor_image_transport) { - include_dirs += [ "//third_party/khronos" ] - } - if (is_win || is_android || (is_linux && use_x11)) { sources += [ "async_pixel_transfer_manager_egl.cc", diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn index f94935837c07..add90ecd4f03 100644 --- a/gpu/config/BUILD.gn +++ b/gpu/config/BUILD.gn @@ -9,7 +9,21 @@ declare_args() { use_libpci = true } -source_set("config") { +group("config") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":config_sources", + ] + } +} + +source_set("config_sources") { + visibility = [ "//gpu/*" ] + sources = [ "dx_diag_node.cc", "dx_diag_node.h", @@ -52,7 +66,7 @@ source_set("config") { deps = [ "//base", - "//gpu/command_buffer/service", + "//gpu/command_buffer/service:service_sources", "//third_party/re2", "//ui/gl", ] diff --git a/gpu/ipc/BUILD.gn b/gpu/ipc/BUILD.gn index d11d685af45a..c78dea73a9bc 100644 --- a/gpu/ipc/BUILD.gn +++ b/gpu/ipc/BUILD.gn @@ -2,7 +2,21 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -source_set("ipc") { +group("ipc") { + if (is_component_build) { + public_deps = [ + "//gpu", + ] + } else { + public_deps = [ + ":ipc_sources", + ] + } +} + +source_set("ipc_sources") { + visibility = [ "//gpu/*" ] + sources = [ "gpu_command_buffer_traits.cc", "gpu_command_buffer_traits.h", @@ -14,7 +28,7 @@ source_set("ipc") { ] deps = [ - "//gpu/command_buffer/common", + "//gpu/command_buffer/common:common_sources", "//ipc", ] } diff --git a/media/base/BUILD.gn b/media/base/BUILD.gn index 3203f7f1e7b2..64c5b135ab46 100644 --- a/media/base/BUILD.gn +++ b/media/base/BUILD.gn @@ -378,6 +378,7 @@ source_set("unittests") { deps = [ ":base", ":test_support", + "//gpu/command_buffer/common", "//skia", "//testing/gmock", "//testing/gtest", diff --git a/ppapi/proxy/BUILD.gn b/ppapi/proxy/BUILD.gn index 4af9bdcb16f3..31a0262705a8 100644 --- a/ppapi/proxy/BUILD.gn +++ b/ppapi/proxy/BUILD.gn @@ -272,7 +272,7 @@ component("proxy") { "//ipc", "//media:shared_memory_support", "//ppapi/c", - "//ppapi/proxy:ipc", + "//ppapi/proxy:ipc_sources", "//ppapi/shared_impl", "//third_party/icu", ] @@ -293,7 +293,19 @@ component("proxy") { } } -source_set("ipc") { +group("ipc") { + if (is_component_build) { + public_deps = [ + "//ppapi/proxy", + ] + } else { + public_deps = [ + ":ipc_sources", + ] + } +} + +source_set("ipc_sources") { sources = [ "nacl_message_scanner.cc", "nacl_message_scanner.h", diff --git a/ppapi/shared_impl/BUILD.gn b/ppapi/shared_impl/BUILD.gn index 59f4ec05ee33..64ae537f6c6d 100644 --- a/ppapi/shared_impl/BUILD.gn +++ b/ppapi/shared_impl/BUILD.gn @@ -156,7 +156,7 @@ component("shared_impl") { defines = [ "PPAPI_SHARED_IMPLEMENTATION", - # This target also implements some thunk functions. + # This target goes in the same library as thunk (in GYP they are the same). "PPAPI_THUNK_IMPLEMENTATION", ] diff --git a/ppapi/thunk/BUILD.gn b/ppapi/thunk/BUILD.gn index 5b326e4495b9..18096a4fbda3 100644 --- a/ppapi/thunk/BUILD.gn +++ b/ppapi/thunk/BUILD.gn @@ -3,6 +3,12 @@ # found in the LICENSE file. source_set("thunk") { + # In GYP this is the same target as shared_impl. In GN these are split apart + # for clarity but to get component builds correct, targets must only depend + # on these via the shared_impl component. + # TODO(brettw) separate these when GYP compat is no longer required. + visibility = [ "//ppapi/shared_impl" ] + sources = [ "enter.cc", "enter.h", @@ -189,5 +195,11 @@ source_set("thunk") { ] } - defines = [ "PPAPI_THUNK_IMPLEMENTATION" ] + defines = [ + # This target goes in the same library as shared_impl (in GYP they are the + # same). + "PPAPI_SHARED_IMPLEMENTATION", + + "PPAPI_THUNK_IMPLEMENTATION", + ] } diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn index 42b2e5b59b82..2a8acf8a672f 100644 --- a/ui/gl/BUILD.gn +++ b/ui/gl/BUILD.gn @@ -106,15 +106,15 @@ component("gl") { include_dirs = [ "//third_party/switfshader/include", - "//third_party/khronos", "//third_party/mesa/src/include", ] all_dependent_configs = [ ":gl_config" ] + configs += [ "//third_party/khronos:khronos_headers" ] + deps = [ "//base/third_party/dynamic_annotations", - "//gpu/command_buffer/common", "//skia", ] public_deps = [ diff --git a/ui/surface/BUILD.gn b/ui/surface/BUILD.gn index 3b25e0eae064..6e262a4fc2f4 100644 --- a/ui/surface/BUILD.gn +++ b/ui/surface/BUILD.gn @@ -15,6 +15,8 @@ component("surface") { "transport_dib_win.cc", ] + configs += [ "//third_party/khronos:khronos_headers" ] + defines = [ "SURFACE_IMPLEMENTATION" ] deps = [ @@ -25,8 +27,4 @@ component("surface") { "//ui/gfx/geometry", "//ui/gl", ] - - if (use_x11) { - include_dirs = [ "//third_party/khronos" ] - } } -- 2.11.4.GIT