BUILD.gn 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. # Copyright 2014 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//build/buildflag_header.gni")
  5. import("//build/config/chrome_build.gni")
  6. import("//build/config/chromecast_build.gni")
  7. import("//build/config/chromeos/ui_mode.gni")
  8. import("//build/config/linux/pkg_config.gni")
  9. import("//build/config/ozone.gni")
  10. import("//build/config/ui.gni")
  11. import("//gpu/vulkan/features.gni")
  12. import("//testing/test.gni")
  13. import("//third_party/angle/gni/angle.gni")
  14. import("//third_party/dawn/scripts/dawn_features.gni")
  15. import("//ui/gl/features.gni")
  16. declare_args() {
  17. # Whether service side logging (actual calls into the GL driver) is enabled
  18. # or not.
  19. enable_gpu_service_logging = false
  20. }
  21. use_glx = ozone_platform_x11
  22. if (is_android) {
  23. import("//build/config/android/config.gni")
  24. import("//build/config/android/rules.gni")
  25. }
  26. buildflag_header("buildflags") {
  27. header = "buildflags.h"
  28. flags = [
  29. "DAWN_ENABLE_BACKEND_OPENGLES=$dawn_enable_opengles",
  30. "ENABLE_SWIFTSHADER=$enable_swiftshader",
  31. "USE_DAWN=$use_dawn",
  32. "USE_STATIC_ANGLE=$use_static_angle",
  33. "USE_OPENGL_APITRACE=$enable_opengl_apitrace",
  34. ]
  35. }
  36. config("gl_config") {
  37. defines = []
  38. if (use_glx) {
  39. defines += [
  40. "GL_GLEXT_PROTOTYPES",
  41. "USE_GLX",
  42. ]
  43. }
  44. if (use_egl) {
  45. defines += [ "USE_EGL" ]
  46. }
  47. }
  48. component("gl") {
  49. output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib.
  50. sources = [
  51. "buffer_format_utils.cc",
  52. "buffer_format_utils.h",
  53. "ca_renderer_layer_params.cc",
  54. "ca_renderer_layer_params.h",
  55. "dc_renderer_layer_params.cc",
  56. "dc_renderer_layer_params.h",
  57. "dual_gpu_state.cc",
  58. "dual_gpu_state.h",
  59. "egl_timestamps.h",
  60. "gl_bindings.cc",
  61. "gl_bindings.h",
  62. "gl_bindings_autogen_gl.cc",
  63. "gl_bindings_autogen_gl.h",
  64. "gl_context.cc",
  65. "gl_context.h",
  66. "gl_context_stub.cc",
  67. "gl_context_stub.h",
  68. "gl_display.cc",
  69. "gl_display.h",
  70. "gl_display_manager.cc",
  71. "gl_display_manager.h",
  72. "gl_enums.cc",
  73. "gl_enums.h",
  74. "gl_enums_implementation_autogen.h",
  75. "gl_export.h",
  76. "gl_features.cc",
  77. "gl_features.h",
  78. "gl_fence.cc",
  79. "gl_fence.h",
  80. "gl_fence_arb.cc",
  81. "gl_fence_arb.h",
  82. "gl_fence_nv.cc",
  83. "gl_fence_nv.h",
  84. "gl_gl_api_implementation.cc",
  85. "gl_gl_api_implementation.h",
  86. "gl_helper.cc",
  87. "gl_helper.h",
  88. "gl_image.cc",
  89. "gl_image.h",
  90. "gl_image_memory.cc",
  91. "gl_image_memory.h",
  92. "gl_image_ref_counted_memory.cc",
  93. "gl_image_ref_counted_memory.h",
  94. "gl_image_shared_memory.cc",
  95. "gl_image_shared_memory.h",
  96. "gl_image_stub.cc",
  97. "gl_image_stub.h",
  98. "gl_implementation.cc",
  99. "gl_implementation.h",
  100. "gl_implementation_wrapper.h",
  101. "gl_share_group.cc",
  102. "gl_share_group.h",
  103. "gl_state_restorer.cc",
  104. "gl_state_restorer.h",
  105. "gl_stub_api.cc",
  106. "gl_stub_api.h",
  107. "gl_stub_api_base.h",
  108. "gl_stub_autogen_gl.cc",
  109. "gl_stub_autogen_gl.h",
  110. "gl_surface.cc",
  111. "gl_surface.h",
  112. "gl_surface_format.cc",
  113. "gl_surface_format.h",
  114. "gl_surface_overlay.cc",
  115. "gl_surface_overlay.h",
  116. "gl_surface_presentation_helper.cc",
  117. "gl_surface_presentation_helper.h",
  118. "gl_surface_stub.cc",
  119. "gl_surface_stub.h",
  120. "gl_switches.cc",
  121. "gl_switches.h",
  122. "gl_utils.cc",
  123. "gl_utils.h",
  124. "gl_version_info.cc",
  125. "gl_version_info.h",
  126. "gl_workarounds.h",
  127. "gpu_switching_manager.cc",
  128. "gpu_switching_manager.h",
  129. "gpu_timing.cc",
  130. "gpu_timing.h",
  131. "progress_reporter.h",
  132. "scoped_binders.cc",
  133. "scoped_binders.h",
  134. "scoped_make_current.cc",
  135. "scoped_make_current.h",
  136. "shader_tracking.cc",
  137. "shader_tracking.h",
  138. "sync_control_vsync_provider.cc",
  139. "sync_control_vsync_provider.h",
  140. "trace_util.cc",
  141. "trace_util.h",
  142. ]
  143. if (is_android) {
  144. sources += [
  145. "android/scoped_java_surface.cc",
  146. "android/scoped_java_surface.h",
  147. "android/surface_texture.cc",
  148. "android/surface_texture.h",
  149. "android/surface_texture_listener.cc",
  150. "android/surface_texture_listener.h",
  151. ]
  152. }
  153. configs += [ "//build/config:precompiled_headers" ]
  154. defines = [ "GL_IMPLEMENTATION" ]
  155. if (enable_gpu_service_logging) {
  156. defines += [ "GPU_ENABLE_SERVICE_LOGGING" ]
  157. }
  158. include_dirs = [ "//third_party/mesa_headers" ]
  159. all_dependent_configs = [ ":gl_config" ]
  160. public_configs = [ "//third_party/khronos:khronos_headers" ]
  161. deps = [
  162. ":buildflags",
  163. "//base/third_party/dynamic_annotations",
  164. "//build:chromeos_buildflags",
  165. "//mojo/public/cpp/bindings",
  166. # ANGLE includes are used cross-platform.
  167. "//third_party/angle:includes",
  168. "//ui/gfx/mojom",
  169. ]
  170. public_deps = [
  171. "//base",
  172. "//third_party/mesa_headers",
  173. "//ui/events/platform",
  174. "//ui/gfx",
  175. "//ui/gfx/geometry",
  176. ]
  177. data_deps = []
  178. if (enable_swiftshader) {
  179. data_deps += [
  180. "//third_party/swiftshader/src/Vulkan:icd_file",
  181. "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan",
  182. ]
  183. }
  184. if (use_egl) {
  185. sources += [
  186. "angle_platform_impl.cc",
  187. "angle_platform_impl.h",
  188. "egl_util.cc",
  189. "egl_util.h",
  190. "gl_bindings_autogen_egl.cc",
  191. "gl_bindings_autogen_egl.h",
  192. "gl_context_egl.cc",
  193. "gl_context_egl.h",
  194. "gl_display_egl_util.cc",
  195. "gl_display_egl_util.h",
  196. "gl_egl_api_implementation.cc",
  197. "gl_egl_api_implementation.h",
  198. "gl_fence_egl.cc",
  199. "gl_fence_egl.h",
  200. "gl_image_egl.cc",
  201. "gl_image_egl.h",
  202. "gl_surface_egl.cc",
  203. "gl_surface_egl.h",
  204. "shared_gl_fence_egl.cc",
  205. "shared_gl_fence_egl.h",
  206. ]
  207. if (enable_vulkan) {
  208. sources += [
  209. "gl_angle_util_vulkan.cc",
  210. "gl_angle_util_vulkan.h",
  211. "gl_image_egl_angle_vulkan.cc",
  212. "gl_image_egl_angle_vulkan.h",
  213. ]
  214. }
  215. if (is_linux || is_chromeos || use_ozone) {
  216. sources += [
  217. "gl_image_native_pixmap.cc",
  218. "gl_image_native_pixmap.h",
  219. ]
  220. }
  221. if (is_android) {
  222. sources += [
  223. "gl_image_ahardwarebuffer.cc",
  224. "gl_image_ahardwarebuffer.h",
  225. "gl_surface_egl_surface_control.cc",
  226. "gl_surface_egl_surface_control.h",
  227. ]
  228. }
  229. if (is_posix && !is_fuchsia && !is_mac) {
  230. # Windows has USE_EGL but doesn't support base::FileDescriptor.
  231. # libsync isn't supported or needed on MacOSX.
  232. # Fuchsia is excluded due to a libsync dependency and because it's
  233. # unknown if the required EGL_ANDROID_native_fence_sync extension works
  234. # there. If it does and there's a use case, this could be revisited.
  235. sources += [
  236. "gl_fence_android_native_fence_sync.cc",
  237. "gl_fence_android_native_fence_sync.h",
  238. ]
  239. deps += [ "//third_party/libsync" ]
  240. }
  241. }
  242. if (is_mac || use_egl) {
  243. sources += [
  244. "yuv_to_rgb_converter.cc",
  245. "yuv_to_rgb_converter.h",
  246. ]
  247. }
  248. if (use_ozone) {
  249. deps += [ "//ui/ozone:buildflags" ]
  250. if (use_egl && !is_fuchsia) {
  251. data_deps += [
  252. "//third_party/angle:libEGL",
  253. "//third_party/angle:libGLESv2",
  254. ]
  255. if (angle_shared_libvulkan && !is_chromeos) {
  256. data_deps += [ "//third_party/vulkan-deps/vulkan-loader/src:libvulkan" ]
  257. }
  258. }
  259. }
  260. if (ozone_platform_x11) {
  261. sources += [
  262. "gl_image_egl_pixmap.cc",
  263. "gl_image_egl_pixmap.h",
  264. "gl_surface_egl_x11.cc",
  265. "gl_surface_egl_x11.h",
  266. "gl_surface_egl_x11_gles2.cc",
  267. "gl_surface_egl_x11_gles2.h",
  268. "gl_surface_glx_x11.cc",
  269. "gl_surface_glx_x11.h",
  270. ]
  271. deps += [
  272. "//ui/base:features",
  273. "//ui/base/x",
  274. "//ui/events/platform/x11:x11",
  275. "//ui/gfx/linux:gpu_memory_buffer_support_x11",
  276. ]
  277. assert(use_egl)
  278. data_deps += [
  279. "//third_party/angle:libEGL",
  280. "//third_party/angle:libGLESv2",
  281. ]
  282. if (angle_shared_libvulkan && !is_chromeos) {
  283. data_deps += [ "//third_party/vulkan-deps/vulkan-loader/src:libvulkan" ]
  284. }
  285. }
  286. if (use_glx) {
  287. sources += [
  288. "gl_bindings_autogen_glx.cc",
  289. "gl_bindings_autogen_glx.h",
  290. "gl_context_glx.cc",
  291. "gl_context_glx.h",
  292. "gl_glx_api_implementation.cc",
  293. "gl_glx_api_implementation.h",
  294. "gl_image_glx.cc",
  295. "gl_image_glx.h",
  296. "gl_image_glx_native_pixmap.cc",
  297. "gl_image_glx_native_pixmap.h",
  298. "gl_surface_glx.cc",
  299. "gl_surface_glx.h",
  300. "glx_util.cc",
  301. "glx_util.h",
  302. ]
  303. deps += [
  304. "//ui/base/x",
  305. "//ui/gfx/x",
  306. ]
  307. }
  308. if (is_win) {
  309. sources += [
  310. "child_window_win.cc",
  311. "child_window_win.h",
  312. "dc_layer_tree.cc",
  313. "dc_layer_tree.h",
  314. "dcomp_surface_registry.cc",
  315. "dcomp_surface_registry.h",
  316. "delegated_ink_point_renderer_gpu.h",
  317. "direct_composition_child_surface_win.cc",
  318. "direct_composition_child_surface_win.h",
  319. "direct_composition_support.cc",
  320. "direct_composition_support.h",
  321. "direct_composition_surface_win.cc",
  322. "direct_composition_surface_win.h",
  323. "gl_angle_util_win.cc",
  324. "gl_angle_util_win.h",
  325. "gl_fence_win.cc",
  326. "gl_fence_win.h",
  327. "gl_image_d3d.cc",
  328. "gl_image_d3d.h",
  329. "gl_image_dcomp_surface.cc",
  330. "gl_image_dcomp_surface.h",
  331. "gl_image_dxgi.cc",
  332. "gl_image_dxgi.h",
  333. "hdr_metadata_helper_win.cc",
  334. "hdr_metadata_helper_win.h",
  335. "swap_chain_presenter.cc",
  336. "swap_chain_presenter.h",
  337. "vsync_observer.h",
  338. "vsync_provider_win.cc",
  339. "vsync_provider_win.h",
  340. "vsync_thread_win.cc",
  341. "vsync_thread_win.h",
  342. ]
  343. libs = [
  344. "dxgi.lib",
  345. "dwmapi.lib",
  346. ]
  347. ldflags = [
  348. "/DELAYLOAD:dwmapi.dll",
  349. "/DELAYLOAD:dxgi.dll",
  350. ]
  351. deps += [
  352. "//media/base/win:media_foundation_util",
  353. "//ui/gfx/mojom:dxgi_info",
  354. ]
  355. assert(use_egl)
  356. data_deps += [
  357. "//third_party/angle:libEGL",
  358. "//third_party/angle:libGLESv2",
  359. "//third_party/swiftshader/src/Vulkan:icd_file",
  360. "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan",
  361. ]
  362. if (angle_shared_libvulkan && !is_chromeos) {
  363. data_deps += [ "//third_party/vulkan-deps/vulkan-loader/src:libvulkan" ]
  364. }
  365. }
  366. if (is_mac) {
  367. sources += [
  368. "dual_gpu_state_mac.cc",
  369. "dual_gpu_state_mac.h",
  370. "gl_context_cgl.cc",
  371. "gl_context_cgl.h",
  372. "gl_fence_apple.cc",
  373. "gl_fence_apple.h",
  374. "gl_image_io_surface.h",
  375. "gl_image_io_surface.mm",
  376. "scoped_cgl.cc",
  377. "scoped_cgl.h",
  378. ]
  379. frameworks = [
  380. "CoreFoundation.framework",
  381. "IOSurface.framework",
  382. "OpenGL.framework",
  383. "Quartz.framework",
  384. ]
  385. if (use_egl) {
  386. sources += [
  387. "gl_image_io_surface_egl.h",
  388. "gl_image_io_surface_egl.mm",
  389. ]
  390. data_deps += [
  391. "//third_party/angle:libEGL",
  392. "//third_party/angle:libGLESv2",
  393. "//third_party/mesa_headers",
  394. ]
  395. if (enable_swiftshader) {
  396. data_deps += [
  397. "//third_party/swiftshader/src/Vulkan:icd_file",
  398. "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan",
  399. ]
  400. }
  401. }
  402. }
  403. if (is_android) {
  404. defines += [
  405. "GL_GLEXT_PROTOTYPES",
  406. "EGL_EGLEXT_PROTOTYPES",
  407. ]
  408. libs = [ "android" ]
  409. deps += [ ":gl_jni_headers" ]
  410. }
  411. }
  412. if (is_mac && use_egl) {
  413. # We need to copy the ANGLE and SwiftShader libraries so that the
  414. # bundle_data dependencies have a "copy" target type. Otherwise for
  415. # "shared_library" target types it will try to link things into
  416. # Chromium Framework when we want to keep the ANGLE and SwiftShader
  417. # libraries separate instead.
  418. copy("angle_library_copy") {
  419. sources = [
  420. "$root_out_dir/libEGL.dylib",
  421. "$root_out_dir/libGLESv2.dylib",
  422. ]
  423. outputs = [ "$root_out_dir/egl_intermediates/{{source_file_part}}" ]
  424. deps = [
  425. "//third_party/angle:libEGL",
  426. "//third_party/angle:libGLESv2",
  427. ]
  428. }
  429. if (enable_swiftshader) {
  430. copy("swiftshader_vk_library_copy") {
  431. sources = [
  432. "$root_out_dir/libvk_swiftshader.dylib",
  433. "$root_out_dir/vk_swiftshader_icd.json",
  434. ]
  435. outputs = [ "$root_out_dir/vk_intermediates/{{source_file_part}}" ]
  436. deps = [
  437. "//third_party/swiftshader/src/Vulkan:icd_file",
  438. "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan",
  439. ]
  440. }
  441. }
  442. }
  443. static_library("gl_unittest_utils") {
  444. testonly = true
  445. sources = [
  446. "egl_bindings_autogen_mock.cc",
  447. "egl_bindings_autogen_mock.h",
  448. "egl_mock.cc",
  449. "egl_mock.h",
  450. "gl_bindings_autogen_mock.cc",
  451. "gl_bindings_autogen_mock.h",
  452. "gl_mock.cc",
  453. "gl_mock.h",
  454. "gl_mock_autogen_egl.h",
  455. "gl_mock_autogen_gl.h",
  456. "gpu_timing_fake.cc",
  457. "gpu_timing_fake.h",
  458. ]
  459. configs += [ "//third_party/khronos:khronos_headers" ]
  460. deps = [
  461. ":gl",
  462. "//testing/gmock",
  463. "//testing/gtest",
  464. ]
  465. }
  466. static_library("test_support") {
  467. testonly = true
  468. sources = [
  469. "test/gl_image_bind_test_template.h",
  470. "test/gl_image_test_support.cc",
  471. "test/gl_image_test_support.h",
  472. "test/gl_image_test_template.cc",
  473. "test/gl_image_test_template.h",
  474. "test/gl_image_zero_initialize_test_template.h",
  475. "test/gl_surface_test_support.cc",
  476. "test/gl_surface_test_support.h",
  477. "test/gl_test_helper.cc",
  478. "test/gl_test_helper.h",
  479. ]
  480. configs += [ "//third_party/khronos:khronos_headers" ]
  481. public_deps = [
  482. ":gl",
  483. "//ui/gl/init",
  484. ]
  485. deps = [
  486. "//base/test:test_support",
  487. "//testing/gtest",
  488. "//ui/base",
  489. ]
  490. if (is_linux || is_chromeos) {
  491. deps += [ "//ui/platform_window/common" ]
  492. }
  493. if (use_ozone) {
  494. deps += [ "//ui/ozone" ]
  495. }
  496. # If the run-time search path isn't set properly when we use ANGLE with its
  497. # Vulkan backend, it may end up finding the system libvulkan.so rather than
  498. # the one built in the output directory
  499. if ((is_linux || is_chromeos) && !is_component_build) {
  500. all_dependent_configs =
  501. [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
  502. }
  503. }
  504. source_set("run_all_unittests") {
  505. testonly = true
  506. sources = [ "test/run_all_unittests.cc" ]
  507. deps = [
  508. "//base",
  509. "//ui/base:features",
  510. ]
  511. public_deps = [ "//base/test:test_support" ]
  512. if (use_ozone) {
  513. deps += [
  514. "//mojo/core/embedder",
  515. "//services/service_manager/public/cpp/test:test_support",
  516. "//ui/ozone",
  517. ]
  518. }
  519. }
  520. test("gl_unittests") {
  521. use_xvfb = use_xvfb_in_this_config
  522. sources = [
  523. "gl_api_unittest.cc",
  524. "gl_image_ref_counted_memory_unittest.cc",
  525. "gl_image_shared_memory_unittest.cc",
  526. "gl_surface_format_unittest.cc",
  527. "gl_version_info_unittest.cc",
  528. "gpu_timing_unittest.cc",
  529. ]
  530. if (use_egl && !use_ozone) {
  531. sources += [ "gl_surface_egl_unittest.cc" ]
  532. }
  533. if (use_egl) {
  534. sources += [
  535. "egl_api_unittest.cc",
  536. "gl_display_manager_unittest.cc",
  537. "test/egl_initialization_displays_unittest.cc",
  538. ]
  539. }
  540. if (use_glx) {
  541. sources += [ "glx_api_unittest.cc" ]
  542. }
  543. if (is_mac) {
  544. sources += [ "gl_image_io_surface_unittest.cc" ]
  545. frameworks = [ "IOSurface.framework" ]
  546. }
  547. if (is_win) {
  548. sources += [
  549. "delegated_ink_point_renderer_gpu_unittest.cc",
  550. "direct_composition_surface_win_unittest.cc",
  551. "gl_fence_win_unittest.cc",
  552. "gl_image_d3d_unittest.cc",
  553. "gl_image_dxgi_unittest.cc",
  554. "hdr_metadata_helper_win_unittest.cc",
  555. ]
  556. }
  557. if (is_android) {
  558. sources += [ "gl_image_ahardwarebuffer_unittest.cc" ]
  559. }
  560. if (is_linux || is_chromeos_lacros) {
  561. sources += [ "gl_image_native_pixmap_unittest.cc" ]
  562. }
  563. include_dirs = [ "//third_party/khronos" ]
  564. deps = [
  565. ":gl",
  566. ":gl_unittest_utils",
  567. ":run_all_unittests",
  568. ":test_support",
  569. "//base",
  570. "//testing/gmock",
  571. "//testing/gtest",
  572. "//ui/base:base",
  573. "//ui/gfx",
  574. "//ui/gfx:test_support",
  575. "//ui/gfx/geometry",
  576. "//ui/gl/init",
  577. "//ui/platform_window",
  578. "//ui/platform_window:platform_impls",
  579. ]
  580. data_deps = [
  581. "//testing/buildbot/filters:gl_unittests_filters",
  582. "//third_party/mesa_headers",
  583. ]
  584. # TODO(https://crbug.com/789065): this must be moved to Ozone.
  585. if (ozone_platform_x11) {
  586. sources += [ "gl_context_glx_unittest.cc" ]
  587. deps += [ "//ui/gfx/x" ]
  588. }
  589. if (is_win) {
  590. deps += [ "//media/base/win:test_support" ]
  591. libs = [ "dxguid.lib" ]
  592. }
  593. }
  594. # We can't run this test on real Chrome OS hardware for Ozone, so new target.
  595. group("gl_unittests_ozone") {
  596. testonly = true
  597. data_deps = [ ":gl_unittests" ]
  598. }
  599. if (is_android) {
  600. generate_jar_jni("surface_jni_headers") {
  601. classes = [ "android/view/Surface.class" ]
  602. always_mangle = true
  603. }
  604. generate_jni("gl_jni_headers") {
  605. sources = [
  606. "../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java",
  607. "../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java",
  608. ]
  609. public_deps = [ ":surface_jni_headers" ]
  610. }
  611. }