1 # Copyright (c) 2012 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 5 { 6 'variables': { 7 'nacl_win64_target': 0, 8 }, 9 'includes': [ 10 'gpu_common.gypi', 11 ], 12 'targets': [ 13 { 14 # Library emulates GLES2 using command_buffers. 15 'target_name': 'gles2_implementation', 16 'type': '<(component)', 17 'dependencies': [ 18 '../base/base.gyp:base', 19 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 20 '../third_party/khronos/khronos.gyp:khronos_headers', 21 '../ui/gl/gl.gyp:gl', 22 '../ui/ui.gyp:ui', 23 'command_buffer/command_buffer.gyp:gles2_utils', 24 'gles2_cmd_helper', 25 ], 26 'defines': [ 27 'GLES2_IMPL_IMPLEMENTATION', 28 ], 29 'sources': [ 30 '<@(gles2_implementation_source_files)', 31 'command_buffer/client/gl_in_process_context.h', 32 'command_buffer/client/gl_in_process_context.cc', 33 ], 34 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 35 'msvs_disabled_warnings': [4267, ], 36 }, 37 { 38 # Library emulates GLES2 using command_buffers. 39 'target_name': 'gles2_implementation_client_side_arrays', 40 'type': '<(component)', 41 'defines': [ 42 'GLES2_IMPL_IMPLEMENTATION', 43 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', 44 ], 45 'dependencies': [ 46 '../base/base.gyp:base', 47 '../third_party/khronos/khronos.gyp:khronos_headers', 48 '../ui/gl/gl.gyp:gl', 49 'command_buffer/command_buffer.gyp:gles2_utils', 50 'gles2_cmd_helper', 51 ], 52 'sources': [ 53 '<@(gles2_implementation_source_files)', 54 ], 55 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 56 'msvs_disabled_warnings': [ 4267, ], 57 }, 58 { 59 # Library emulates GLES2 using command_buffers. 60 'target_name': 'gles2_implementation_client_side_arrays_no_check', 61 'type': '<(component)', 62 'defines': [ 63 'GLES2_IMPL_IMPLEMENTATION', 64 'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1', 65 'GLES2_CONFORMANCE_TESTS=1', 66 ], 67 'dependencies': [ 68 '../base/base.gyp:base', 69 '../third_party/khronos/khronos.gyp:khronos_headers', 70 'command_buffer/command_buffer.gyp:gles2_utils', 71 'gles2_cmd_helper', 72 ], 73 'sources': [ 74 '<@(gles2_implementation_source_files)', 75 ], 76 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 77 'msvs_disabled_warnings': [ 4267, ], 78 }, 79 { 80 # Stub to expose gles2_implemenation in C instead of C++. 81 # so GLES2 C programs can work with no changes. 82 'target_name': 'gles2_c_lib', 83 'type': '<(component)', 84 'dependencies': [ 85 '../base/base.gyp:base', 86 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 87 'command_buffer/command_buffer.gyp:gles2_utils', 88 'command_buffer_client', 89 'gles2_implementation', 90 ], 91 'defines': [ 92 'GLES2_C_LIB_IMPLEMENTATION', 93 ], 94 'sources': [ 95 '<@(gles2_c_lib_source_files)', 96 ], 97 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 98 'msvs_disabled_warnings': [4267, ], 99 }, 100 { 101 # Same as gles2_c_lib except with no parameter checking. Required for 102 # OpenGL ES 2.0 conformance tests. 103 'target_name': 'gles2_c_lib_nocheck', 104 'type': '<(component)', 105 'defines': [ 106 'GLES2_C_LIB_IMPLEMENTATION', 107 'GLES2_CONFORMANCE_TESTS=1', 108 ], 109 'dependencies': [ 110 '../base/base.gyp:base', 111 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 112 'command_buffer/command_buffer.gyp:gles2_utils', 113 'command_buffer_client', 114 'gles2_implementation_client_side_arrays_no_check', 115 ], 116 'sources': [ 117 '<@(gles2_c_lib_source_files)', 118 ], 119 }, 120 { 121 'target_name': 'gpu_unittests', 122 'type': '<(gtest_target_type)', 123 'dependencies': [ 124 '../base/base.gyp:base', 125 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 126 '../testing/gmock.gyp:gmock', 127 '../testing/gtest.gyp:gtest', 128 '../third_party/angle_dx11/src/build_angle.gyp:translator_glsl', 129 '../ui/gl/gl.gyp:gl', 130 '../ui/ui.gyp:ui', 131 'command_buffer/command_buffer.gyp:gles2_utils', 132 'command_buffer_client', 133 'command_buffer_common', 134 'command_buffer_service', 135 'gpu', 136 'gpu_unittest_utils', 137 'gles2_implementation_client_side_arrays', 138 'gles2_cmd_helper', 139 ], 140 'defines': [ 141 'GLES2_C_LIB_IMPLEMENTATION', 142 ], 143 'sources': [ 144 '<@(gles2_c_lib_source_files)', 145 'command_buffer/client/buffer_tracker_unittest.cc', 146 'command_buffer/client/client_test_helper.cc', 147 'command_buffer/client/client_test_helper.h', 148 'command_buffer/client/cmd_buffer_helper_test.cc', 149 'command_buffer/client/fenced_allocator_test.cc', 150 'command_buffer/client/gles2_interface_stub.cc', 151 'command_buffer/client/gles2_interface_stub.h', 152 'command_buffer/client/gles2_implementation_unittest.cc', 153 'command_buffer/client/mapped_memory_unittest.cc', 154 'command_buffer/client/query_tracker_unittest.cc', 155 'command_buffer/client/program_info_manager_unittest.cc', 156 'command_buffer/client/ring_buffer_test.cc', 157 'command_buffer/client/transfer_buffer_unittest.cc', 158 'command_buffer/client/vertex_array_object_manager_unittest.cc', 159 'command_buffer/common/bitfield_helpers_test.cc', 160 'command_buffer/common/command_buffer_mock.cc', 161 'command_buffer/common/command_buffer_mock.h', 162 'command_buffer/common/command_buffer_shared_test.cc', 163 'command_buffer/common/debug_marker_manager_unittest.cc', 164 'command_buffer/common/gles2_cmd_format_test.cc', 165 'command_buffer/common/gles2_cmd_format_test_autogen.h', 166 'command_buffer/common/gles2_cmd_utils_unittest.cc', 167 'command_buffer/common/id_allocator_test.cc', 168 'command_buffer/common/trace_event.h', 169 'command_buffer/common/unittest_main.cc', 170 'command_buffer/service/async_pixel_transfer_delegate_mock.h', 171 'command_buffer/service/async_pixel_transfer_delegate_mock.cc', 172 'command_buffer/service/async_pixel_transfer_manager_mock.h', 173 'command_buffer/service/async_pixel_transfer_manager_mock.cc', 174 'command_buffer/service/buffer_manager_unittest.cc', 175 'command_buffer/service/cmd_parser_test.cc', 176 'command_buffer/service/command_buffer_service_unittest.cc', 177 'command_buffer/service/common_decoder_unittest.cc', 178 'command_buffer/service/context_group_unittest.cc', 179 'command_buffer/service/feature_info_unittest.cc', 180 'command_buffer/service/framebuffer_manager_unittest.cc', 181 'command_buffer/service/gles2_cmd_decoder_unittest.cc', 182 'command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h', 183 'command_buffer/service/gles2_cmd_decoder_unittest_1.cc', 184 'command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h', 185 'command_buffer/service/gles2_cmd_decoder_unittest_2.cc', 186 'command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h', 187 'command_buffer/service/gles2_cmd_decoder_unittest_3.cc', 188 'command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h', 189 'command_buffer/service/gles2_cmd_decoder_unittest_base.cc', 190 'command_buffer/service/gles2_cmd_decoder_unittest_base.h', 191 'command_buffer/service/gl_surface_mock.cc', 192 'command_buffer/service/gl_surface_mock.h', 193 'command_buffer/service/gpu_scheduler_unittest.cc', 194 'command_buffer/service/id_manager_unittest.cc', 195 'command_buffer/service/mailbox_manager_unittest.cc', 196 'command_buffer/service/memory_program_cache_unittest.cc', 197 'command_buffer/service/mocks.cc', 198 'command_buffer/service/mocks.h', 199 'command_buffer/service/program_manager_unittest.cc', 200 'command_buffer/service/query_manager_unittest.cc', 201 'command_buffer/service/renderbuffer_manager_unittest.cc', 202 'command_buffer/service/program_cache_unittest.cc', 203 'command_buffer/service/shader_manager_unittest.cc', 204 'command_buffer/service/shader_translator_unittest.cc', 205 'command_buffer/service/stream_texture_mock.cc', 206 'command_buffer/service/stream_texture_mock.h', 207 'command_buffer/service/stream_texture_manager_mock.cc', 208 'command_buffer/service/stream_texture_manager_mock.h', 209 'command_buffer/service/test_helper.cc', 210 'command_buffer/service/test_helper.h', 211 'command_buffer/service/texture_manager_unittest.cc', 212 'command_buffer/service/transfer_buffer_manager_unittest.cc', 213 'command_buffer/service/vertex_attrib_manager_unittest.cc', 214 'command_buffer/service/vertex_array_manager_unittest.cc', 215 'config/gpu_blacklist_unittest.cc', 216 'config/gpu_control_list_entry_unittest.cc', 217 'config/gpu_control_list_machine_model_info_unittest.cc', 218 'config/gpu_control_list_number_info_unittest.cc', 219 'config/gpu_control_list_os_info_unittest.cc', 220 'config/gpu_control_list_string_info_unittest.cc', 221 'config/gpu_control_list_unittest.cc', 222 'config/gpu_control_list_version_info_unittest.cc', 223 'config/gpu_driver_bug_list_unittest.cc', 224 'config/gpu_info_collector_unittest.cc', 225 'config/gpu_info_unittest.cc', 226 'config/gpu_switching_list_unittest.cc', 227 'config/gpu_test_config_unittest.cc', 228 'config/gpu_test_expectations_parser_unittest.cc', 229 'config/gpu_util_unittest.cc', 230 ], 231 'conditions': [ 232 ['OS == "android" and gtest_target_type == "shared_library"', { 233 'dependencies': [ 234 '../testing/android/native_test.gyp:native_test_native_code', 235 ], 236 }], 237 # See http://crbug.com/162998#c4 for why this is needed. 238 ['OS=="linux" and linux_use_tcmalloc==1', { 239 'dependencies': [ 240 '../base/allocator/allocator.gyp:allocator', 241 ], 242 }], 243 ], 244 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 245 'msvs_disabled_warnings': [ 4267, ], 246 }, 247 { 248 'target_name': 'gl_tests', 249 'type': '<(gtest_target_type)', 250 'dependencies': [ 251 '../base/base.gyp:base', 252 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 253 '../testing/gmock.gyp:gmock', 254 '../testing/gtest.gyp:gtest', 255 '../third_party/angle_dx11/src/build_angle.gyp:translator_glsl', 256 '../ui/ui.gyp:ui', 257 'command_buffer/command_buffer.gyp:gles2_utils', 258 'command_buffer_client', 259 'command_buffer_common', 260 'command_buffer_service', 261 'gpu', 262 'gpu_unittest_utils', 263 'gles2_implementation_client_side_arrays', 264 'gles2_cmd_helper', 265 #'gl_unittests', 266 ], 267 'defines': [ 268 'GLES2_C_LIB_IMPLEMENTATION', 269 'GL_GLEXT_PROTOTYPES', 270 ], 271 'sources': [ 272 '<@(gles2_c_lib_source_files)', 273 'command_buffer/tests/compressed_texture_test.cc', 274 'command_buffer/tests/gl_bind_uniform_location_unittest.cc', 275 'command_buffer/tests/gl_chromium_framebuffer_multisample_unittest.cc', 276 'command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc', 277 'command_buffer/tests/gl_depth_texture_unittest.cc', 278 'command_buffer/tests/gl_gpu_memory_buffer_unittests.cc', 279 'command_buffer/tests/gl_lose_context_chromium_unittests.cc', 280 'command_buffer/tests/gl_manager.cc', 281 'command_buffer/tests/gl_manager.h', 282 'command_buffer/tests/gl_pointcoord_unittest.cc', 283 'command_buffer/tests/gl_program_unittests.cc', 284 'command_buffer/tests/gl_query_unittests.cc', 285 'command_buffer/tests/gl_readback_unittests.cc', 286 'command_buffer/tests/gl_shared_resources_unittests.cc', 287 'command_buffer/tests/gl_stream_draw_unittests.cc', 288 'command_buffer/tests/gl_test_utils.cc', 289 'command_buffer/tests/gl_test_utils.h', 290 'command_buffer/tests/gl_tests_main.cc', 291 'command_buffer/tests/gl_texture_mailbox_unittests.cc', 292 'command_buffer/tests/gl_texture_storage_unittests.cc', 293 'command_buffer/tests/gl_unittests.cc', 294 'command_buffer/tests/gl_unittests_android.cc', 295 'command_buffer/tests/gl_virtual_contexts_unittests.cc', 296 'command_buffer/tests/occlusion_query_unittests.cc', 297 ], 298 'conditions': [ 299 ['OS == "android" and gtest_target_type == "shared_library"', { 300 'dependencies': [ 301 '../testing/android/native_test.gyp:native_test_native_code', 302 ], 303 }], 304 ], 305 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 306 'msvs_disabled_warnings': [ 4267, ], 307 }, 308 { 309 'target_name': 'gpu_unittest_utils', 310 'type': 'static_library', 311 'dependencies': [ 312 '../testing/gmock.gyp:gmock', 313 '../testing/gtest.gyp:gtest', 314 '../third_party/khronos/khronos.gyp:khronos_headers', 315 '../ui/gl/gl.gyp:gl_unittest_utils', 316 'gpu', 317 ], 318 'include_dirs': [ 319 '..', 320 ], 321 'sources': [ 322 'command_buffer/service/gles2_cmd_decoder_mock.cc', 323 'command_buffer/service/error_state_mock.cc', 324 ], 325 }, 326 ], 327 'conditions': [ 328 ['component=="static_library"', { 329 'targets': [ 330 { 331 'target_name': 'disk_cache_proto', 332 'type': 'static_library', 333 'sources': [ 'command_buffer/service/disk_cache_proto.proto' ], 334 'variables': { 335 'proto_in_dir': 'command_buffer/service', 336 'proto_out_dir': 'gpu/command_buffer/service', 337 }, 338 'includes': [ '../build/protoc.gypi' ], 339 }, 340 { 341 'target_name': 'gpu', 342 'type': 'none', 343 'dependencies': [ 344 'command_buffer_client', 345 'command_buffer_common', 346 'command_buffer_service', 347 'gles2_cmd_helper', 348 'gpu_config', 349 'gpu_ipc', 350 ], 351 'sources': [ 352 'gpu_export.h', 353 ], 354 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 355 'msvs_disabled_warnings': [4267, ], 356 }, 357 { 358 'target_name': 'command_buffer_common', 359 'type': 'static_library', 360 'includes': [ 361 'command_buffer_common.gypi', 362 ], 363 'dependencies': [ 364 '../base/base.gyp:base', 365 'command_buffer/command_buffer.gyp:gles2_utils', 366 ], 367 'export_dependent_settings': [ 368 '../base/base.gyp:base', 369 ], 370 }, 371 { 372 # Library helps make GLES2 command buffers. 373 'target_name': 'gles2_cmd_helper', 374 'type': 'static_library', 375 'includes': [ 376 'gles2_cmd_helper.gypi', 377 ], 378 'dependencies': [ 379 'command_buffer_client', 380 ], 381 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 382 'msvs_disabled_warnings': [4267, ], 383 }, 384 { 385 'target_name': 'command_buffer_client', 386 'type': 'static_library', 387 'includes': [ 388 'command_buffer_client.gypi', 389 ], 390 'dependencies': [ 391 'command_buffer_common', 392 ], 393 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 394 'msvs_disabled_warnings': [4267, ], 395 }, 396 { 397 'target_name': 'command_buffer_service', 398 'type': 'static_library', 399 'includes': [ 400 'command_buffer_service.gypi', 401 ], 402 'dependencies': [ 403 'command_buffer_common', 404 'disk_cache_proto', 405 ], 406 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 407 'msvs_disabled_warnings': [4267, ], 408 }, 409 { 410 'target_name': 'gpu_ipc', 411 'type': 'static_library', 412 'includes': [ 413 'gpu_ipc.gypi', 414 ], 415 'dependencies': [ 416 'command_buffer_common', 417 ], 418 }, 419 { 420 'target_name': 'gpu_config', 421 'type': 'static_library', 422 'includes': [ 423 'gpu_config.gypi', 424 ], 425 }, 426 ], 427 }, 428 { # component != static_library 429 'targets': [ 430 { 431 'target_name': 'disk_cache_proto', 432 'type': 'static_library', 433 'sources': [ 'command_buffer/service/disk_cache_proto.proto' ], 434 'variables': { 435 'proto_in_dir': 'command_buffer/service', 436 'proto_out_dir': 'gpu/command_buffer/service', 437 }, 438 'includes': [ '../build/protoc.gypi' ], 439 }, 440 { 441 'target_name': 'gpu', 442 'type': 'shared_library', 443 'includes': [ 444 'command_buffer_client.gypi', 445 'command_buffer_common.gypi', 446 'command_buffer_service.gypi', 447 'gles2_cmd_helper.gypi', 448 'gpu_config.gypi', 449 'gpu_ipc.gypi', 450 ], 451 'defines': [ 452 'GPU_IMPLEMENTATION', 453 ], 454 'sources': [ 455 'gpu_export.h', 456 ], 457 'dependencies': [ 458 '../base/base.gyp:base', 459 'command_buffer/command_buffer.gyp:gles2_utils', 460 'disk_cache_proto', 461 ], 462 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 463 'msvs_disabled_warnings': [4267, ], 464 }, 465 { 466 'target_name': 'command_buffer_common', 467 'type': 'none', 468 'dependencies': [ 469 'gpu', 470 ], 471 }, 472 { 473 # Library helps make GLES2 command buffers. 474 'target_name': 'gles2_cmd_helper', 475 'type': 'none', 476 'dependencies': [ 477 'gpu', 478 ], 479 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 480 'msvs_disabled_warnings': [4267, ], 481 }, 482 { 483 'target_name': 'command_buffer_client', 484 'type': 'none', 485 'dependencies': [ 486 'gpu', 487 ], 488 }, 489 { 490 'target_name': 'command_buffer_service', 491 'type': 'none', 492 'dependencies': [ 493 'gpu', 494 ], 495 }, 496 { 497 'target_name': 'gpu_ipc', 498 'type': 'none', 499 'dependencies': [ 500 'gpu', 501 ], 502 }, 503 ], 504 }], 505 ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', { 506 'targets': [ 507 { 508 'target_name': 'gpu_ipc_win64', 509 'type': 'static_library', 510 'variables': { 511 'nacl_win64_target': 1, 512 }, 513 'includes': [ 514 'gpu_ipc.gypi', 515 ], 516 'dependencies': [ 517 '../base/base.gyp:base_nacl_win64', 518 '../ipc/ipc.gyp:ipc_win64', 519 ], 520 'defines': [ 521 '<@(nacl_win64_defines)', 522 'GPU_IMPLEMENTATION', 523 ], 524 'configurations': { 525 'Common_Base': { 526 'msvs_target_platform': 'x64', 527 }, 528 }, 529 }, 530 ], 531 }], 532 ['OS == "android" and gtest_target_type == "shared_library"', { 533 'targets': [ 534 { 535 'target_name': 'gl_tests_apk', 536 'type': 'none', 537 'dependencies': [ 538 'gl_tests', 539 ], 540 'variables': { 541 'test_suite_name': 'gl_tests', 542 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)gl_tests<(SHARED_LIB_SUFFIX)', 543 }, 544 'includes': [ 545 '../build/apk_test.gypi', 546 ], 547 }, 548 ], 549 }], 550 ], 551 } 552