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 5# Essential components (and their tests) that are needed to build 6# Chrome should be here. Other components that are useful only in 7# Mojo land like mojo_shell should be in mojo.gyp. 8{ 9 'includes': [ 10 'mojo_public.gypi', 11 'mojo_public_tests.gypi', 12 'mojo_variables.gypi', 13 ], 14 'targets': [ 15 { 16 'target_name': 'mojo_base', 17 'type': 'none', 18 'dependencies': [ 19 # NOTE: If adding a new dependency here, please consider whether it 20 # should also be added to the list of Mojo-related dependencies of 21 # build/all.gyp:All on iOS, as All cannot depend on the mojo_base 22 # target on iOS due to the presence of the js targets, which cause v8 23 # to be built. 24 'mojo_common_lib', 25 'mojo_common_unittests', 26 'mojo_cpp_bindings', 27 'mojo_js_bindings', 28 'mojo_js_unittests', 29 'mojo_message_generator', 30 'mojo_message_pipe_perftests', 31 'mojo_public_application_unittests', 32 'mojo_public_test_utils', 33 'mojo_public_bindings_unittests', 34 'mojo_public_environment_unittests', 35 'mojo_public_system_perftests', 36 'mojo_public_system_unittests', 37 'mojo_public_utility_unittests', 38 'mojo_system', 39 'mojo_system_impl', 40 'mojo_system_unittests', 41 'mojo_utility', 42 ], 43 'conditions': [ 44 ['OS == "android"', { 45 'dependencies': [ 46 'mojo_bindings_java', 47 'mojo_public_java', 48 'mojo_system_java', 49 'libmojo_system_java', 50 'mojo_test_apk', 51 ], 52 }], 53 ] 54 }, 55 { 56 'target_name': 'mojo_none', 57 'type': 'none', 58 }, 59 { 60 # GN version: //mojo/common/test:run_all_unittests 61 'target_name': 'mojo_run_all_unittests', 62 'type': 'static_library', 63 'dependencies': [ 64 '../base/base.gyp:base', 65 '../base/base.gyp:test_support_base', 66 '../testing/gtest.gyp:gtest', 67 'mojo_system_impl', 68 'mojo_test_support', 69 'mojo_test_support_impl', 70 ], 71 'sources': [ 72 'common/test/run_all_unittests.cc', 73 ], 74 }, 75 { 76 # GN version: //mojo/common/test:run_all_perftests 77 'target_name': 'mojo_run_all_perftests', 78 'type': 'static_library', 79 'dependencies': [ 80 '../base/base.gyp:test_support_base', 81 'mojo_system_impl', 82 'mojo_test_support', 83 'mojo_test_support_impl', 84 ], 85 'sources': [ 86 'common/test/run_all_perftests.cc', 87 ], 88 }, 89 { 90 # GN version: //mojo/system 91 'target_name': 'mojo_system_impl', 92 'type': '<(component)', 93 'dependencies': [ 94 '../base/base.gyp:base', 95 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 96 ], 97 'defines': [ 98 'MOJO_SYSTEM_IMPL_IMPLEMENTATION', 99 'MOJO_SYSTEM_IMPLEMENTATION', 100 'MOJO_USE_SYSTEM_IMPL', 101 ], 102 'sources': [ 103 'embedder/channel_init.cc', 104 'embedder/channel_init.h', 105 'embedder/embedder.cc', 106 'embedder/embedder.h', 107 'embedder/platform_channel_pair.cc', 108 'embedder/platform_channel_pair.h', 109 'embedder/platform_channel_pair_posix.cc', 110 'embedder/platform_channel_pair_win.cc', 111 'embedder/platform_channel_utils_posix.cc', 112 'embedder/platform_channel_utils_posix.h', 113 'embedder/platform_handle.cc', 114 'embedder/platform_handle.h', 115 'embedder/platform_handle_utils.h', 116 'embedder/platform_handle_utils_posix.cc', 117 'embedder/platform_handle_utils_win.cc', 118 'embedder/platform_handle_vector.h', 119 'embedder/platform_shared_buffer.h', 120 'embedder/platform_support.h', 121 'embedder/scoped_platform_handle.h', 122 'embedder/simple_platform_shared_buffer.cc', 123 'embedder/simple_platform_shared_buffer.h', 124 'embedder/simple_platform_shared_buffer_posix.cc', 125 'embedder/simple_platform_shared_buffer_win.cc', 126 'embedder/simple_platform_support.cc', 127 'embedder/simple_platform_support.h', 128 'system/channel.cc', 129 'system/channel.h', 130 'system/channel_endpoint.cc', 131 'system/channel_endpoint.h', 132 'system/constants.h', 133 'system/core.cc', 134 'system/core.h', 135 'system/data_pipe.cc', 136 'system/data_pipe.h', 137 'system/data_pipe_consumer_dispatcher.cc', 138 'system/data_pipe_consumer_dispatcher.h', 139 'system/data_pipe_producer_dispatcher.cc', 140 'system/data_pipe_producer_dispatcher.h', 141 'system/dispatcher.cc', 142 'system/dispatcher.h', 143 'system/entrypoints.cc', 144 'system/handle_signals_state.h', 145 'system/handle_table.cc', 146 'system/handle_table.h', 147 'system/local_data_pipe.cc', 148 'system/local_data_pipe.h', 149 'system/local_message_pipe_endpoint.cc', 150 'system/local_message_pipe_endpoint.h', 151 'system/mapping_table.cc', 152 'system/mapping_table.h', 153 'system/memory.cc', 154 'system/memory.h', 155 'system/message_in_transit.cc', 156 'system/message_in_transit.h', 157 'system/message_in_transit_queue.cc', 158 'system/message_in_transit_queue.h', 159 'system/message_pipe.cc', 160 'system/message_pipe.h', 161 'system/message_pipe_dispatcher.cc', 162 'system/message_pipe_dispatcher.h', 163 'system/message_pipe_endpoint.cc', 164 'system/message_pipe_endpoint.h', 165 'system/options_validation.h', 166 'system/platform_handle_dispatcher.cc', 167 'system/platform_handle_dispatcher.h', 168 'system/proxy_message_pipe_endpoint.cc', 169 'system/proxy_message_pipe_endpoint.h', 170 'system/raw_channel.cc', 171 'system/raw_channel.h', 172 'system/raw_channel_posix.cc', 173 'system/raw_channel_win.cc', 174 'system/shared_buffer_dispatcher.cc', 175 'system/shared_buffer_dispatcher.h', 176 'system/simple_dispatcher.cc', 177 'system/simple_dispatcher.h', 178 'system/transport_data.cc', 179 'system/transport_data.h', 180 'system/waiter.cc', 181 'system/waiter.h', 182 'system/waiter_list.cc', 183 'system/waiter_list.h', 184 # Test-only code: 185 # TODO(vtl): It's a little unfortunate that these end up in the same 186 # component as non-test-only code. In the static build, this code should 187 # hopefully be dead-stripped. 188 'embedder/test_embedder.cc', 189 'embedder/test_embedder.h', 190 ], 191 'all_dependent_settings': { 192 # Ensures that dependent projects import the core functions on Windows. 193 'defines': ['MOJO_USE_SYSTEM_IMPL'], 194 } 195 }, 196 { 197 # GN version: //mojo/system:mojo_system_unittests 198 'target_name': 'mojo_system_unittests', 199 'type': 'executable', 200 'dependencies': [ 201 '../base/base.gyp:base', 202 '../testing/gtest.gyp:gtest', 203 'mojo_common_test_support', 204 'mojo_system_impl', 205 ], 206 'sources': [ 207 'embedder/embedder_unittest.cc', 208 'embedder/platform_channel_pair_posix_unittest.cc', 209 'embedder/simple_platform_shared_buffer_unittest.cc', 210 'system/channel_unittest.cc', 211 'system/core_unittest.cc', 212 'system/core_test_base.cc', 213 'system/core_test_base.h', 214 'system/data_pipe_unittest.cc', 215 'system/dispatcher_unittest.cc', 216 'system/local_data_pipe_unittest.cc', 217 'system/memory_unittest.cc', 218 'system/message_pipe_dispatcher_unittest.cc', 219 'system/message_pipe_test_utils.h', 220 'system/message_pipe_test_utils.cc', 221 'system/message_pipe_unittest.cc', 222 'system/multiprocess_message_pipe_unittest.cc', 223 'system/options_validation_unittest.cc', 224 'system/platform_handle_dispatcher_unittest.cc', 225 'system/raw_channel_unittest.cc', 226 'system/remote_message_pipe_unittest.cc', 227 'system/run_all_unittests.cc', 228 'system/shared_buffer_dispatcher_unittest.cc', 229 'system/simple_dispatcher_unittest.cc', 230 'system/test_utils.cc', 231 'system/test_utils.h', 232 'system/waiter_list_unittest.cc', 233 'system/waiter_test_utils.cc', 234 'system/waiter_test_utils.h', 235 'system/waiter_unittest.cc', 236 ], 237 'conditions': [ 238 ['OS=="ios"', { 239 'sources!': [ 240 'embedder/embedder_unittest.cc', 241 'system/multiprocess_message_pipe_unittest.cc', 242 ], 243 }], 244 ], 245 }, 246 { 247 # GN version: //mojo/system:mojo_message_pipe_perftests 248 'target_name': 'mojo_message_pipe_perftests', 249 'type': 'executable', 250 'dependencies': [ 251 '../base/base.gyp:base', 252 '../base/base.gyp:test_support_base', 253 '../base/base.gyp:test_support_perf', 254 '../testing/gtest.gyp:gtest', 255 'mojo_common_test_support', 256 'mojo_environment_chromium', 257 'mojo_system_impl', 258 ], 259 'sources': [ 260 'system/message_pipe_perftest.cc', 261 'system/message_pipe_test_utils.h', 262 'system/message_pipe_test_utils.cc', 263 'system/test_utils.cc', 264 'system/test_utils.h', 265 ], 266 }, 267 { 268 # GN version: //mojo/common/test:test_support_impl 269 'target_name': 'mojo_test_support_impl', 270 'type': 'static_library', 271 'dependencies': [ 272 '../base/base.gyp:base', 273 ], 274 'sources': [ 275 'common/test/test_support_impl.cc', 276 'common/test/test_support_impl.h', 277 ], 278 }, 279 { 280 # GN version: //mojo/common 281 'target_name': 'mojo_common_lib', 282 'type': '<(component)', 283 'defines': [ 284 'MOJO_COMMON_IMPLEMENTATION', 285 ], 286 'dependencies': [ 287 '../base/base.gyp:base', 288 '../url/url.gyp:url_lib', 289 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 290 '<(mojo_system_for_component)', 291 ], 292 'export_dependent_settings': [ 293 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 294 ], 295 'sources': [ 296 'common/common_type_converters.cc', 297 'common/common_type_converters.h', 298 'common/data_pipe_utils.cc', 299 'common/data_pipe_utils.h', 300 'common/handle_watcher.cc', 301 'common/handle_watcher.h', 302 'common/message_pump_mojo.cc', 303 'common/message_pump_mojo.h', 304 'common/message_pump_mojo_handler.h', 305 'common/time_helper.cc', 306 'common/time_helper.h', 307 ], 308 }, 309 { 310 # GN version: //mojo/common/test:test_support 311 'target_name': 'mojo_common_test_support', 312 'type': 'static_library', 313 'dependencies': [ 314 '../base/base.gyp:base', 315 '../base/base.gyp:test_support_base', 316 '../testing/gtest.gyp:gtest', 317 'mojo_system_impl', 318 ], 319 'sources': [ 320 'common/test/multiprocess_test_helper.cc', 321 'common/test/multiprocess_test_helper.h', 322 'common/test/test_utils.h', 323 'common/test/test_utils_posix.cc', 324 'common/test/test_utils_win.cc', 325 ], 326 'conditions': [ 327 ['OS=="ios"', { 328 'sources!': [ 329 'common/test/multiprocess_test_helper.cc', 330 ], 331 }], 332 ], 333 }, 334 { 335 # GN version: //mojo/common:mojo_common_unittests 336 'target_name': 'mojo_common_unittests', 337 'type': 'executable', 338 'dependencies': [ 339 '../base/base.gyp:base', 340 '../base/base.gyp:base_message_loop_tests', 341 '../testing/gtest.gyp:gtest', 342 '../url/url.gyp:url_lib', 343 'mojo_cpp_bindings', 344 'mojo_environment_chromium', 345 'mojo_common_lib', 346 'mojo_common_test_support', 347 'mojo_public_test_utils', 348 'mojo_run_all_unittests', 349 ], 350 'sources': [ 351 'common/common_type_converters_unittest.cc', 352 'common/handle_watcher_unittest.cc', 353 'common/message_pump_mojo_unittest.cc', 354 'common/test/multiprocess_test_helper_unittest.cc', 355 ], 356 'conditions': [ 357 ['OS=="ios"', { 358 'sources!': [ 359 'common/test/multiprocess_test_helper_unittest.cc', 360 ], 361 }], 362 ], 363 }, 364 { 365 # GN version: //mojo/environment:chromium 366 'target_name': 'mojo_environment_chromium', 367 'type': 'static_library', 368 'dependencies': [ 369 'mojo_environment_chromium_impl', 370 ], 371 'sources': [ 372 'environment/environment.cc', 373 # TODO(vtl): This is kind of ugly. (See TODO in logging.h.) 374 "public/cpp/environment/logging.h", 375 "public/cpp/environment/lib/logging.cc", 376 ], 377 'include_dirs': [ 378 '..', 379 ], 380 'export_dependent_settings': [ 381 'mojo_environment_chromium_impl', 382 ], 383 }, 384 { 385 # GN version: //mojo/environment:chromium_impl 386 'target_name': 'mojo_environment_chromium_impl', 387 'type': '<(component)', 388 'defines': [ 389 'MOJO_ENVIRONMENT_IMPL_IMPLEMENTATION', 390 ], 391 'dependencies': [ 392 '../base/base.gyp:base', 393 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 394 'mojo_common_lib', 395 '<(mojo_system_for_component)', 396 ], 397 'sources': [ 398 'environment/default_async_waiter_impl.cc', 399 'environment/default_async_waiter_impl.h', 400 'environment/default_logger_impl.cc', 401 'environment/default_logger_impl.h', 402 ], 403 'include_dirs': [ 404 '..', 405 ], 406 }, 407 { 408 # GN version: //mojo/services/gles2:interfaces (for files generated from 409 # the mojom file) 410 # GN version: //mojo/services/gles2:bindings 411 'target_name': 'mojo_gles2_bindings', 412 'type': 'static_library', 413 'sources': [ 414 'services/gles2/command_buffer.mojom', 415 'services/gles2/command_buffer_type_conversions.cc', 416 'services/gles2/command_buffer_type_conversions.h', 417 'services/gles2/mojo_buffer_backing.cc', 418 'services/gles2/mojo_buffer_backing.h', 419 ], 420 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], 421 'export_dependent_settings': [ 422 'mojo_cpp_bindings', 423 ], 424 'dependencies': [ 425 'mojo_cpp_bindings', 426 '../gpu/gpu.gyp:command_buffer_common', 427 ], 428 }, 429 { 430 # GN version: //mojo/gles2 431 'target_name': 'mojo_gles2_impl', 432 'type': '<(component)', 433 'dependencies': [ 434 '../base/base.gyp:base', 435 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 436 '../gpu/gpu.gyp:command_buffer_client', 437 '../gpu/gpu.gyp:command_buffer_common', 438 '../gpu/gpu.gyp:gles2_cmd_helper', 439 '../gpu/gpu.gyp:gles2_implementation', 440 'mojo_environment_chromium', 441 'mojo_gles2_bindings', 442 '<(mojo_system_for_component)', 443 ], 444 'defines': [ 445 'GLES2_USE_MOJO', 446 'GL_GLEXT_PROTOTYPES', 447 'MOJO_GLES2_IMPLEMENTATION', 448 'MOJO_GLES2_IMPL_IMPLEMENTATION', 449 'MOJO_USE_GLES2_IMPL' 450 ], 451 'direct_dependent_settings': { 452 'defines': [ 453 'GLES2_USE_MOJO', 454 ], 455 }, 456 'export_dependent_settings': [ 457 'mojo_gles2_bindings', 458 ], 459 'sources': [ 460 'gles2/command_buffer_client_impl.cc', 461 'gles2/command_buffer_client_impl.h', 462 'gles2/gles2_impl_export.h', 463 'gles2/gles2_impl.cc', 464 'gles2/gles2_context.cc', 465 'gles2/gles2_context.h', 466 ], 467 'all_dependent_settings': { 468 # Ensures that dependent projects import the core functions on Windows. 469 'defines': ['MOJO_USE_GLES2_IMPL'], 470 } 471 }, 472 { 473 # GN version: //mojo/application 474 'target_name': 'mojo_application_chromium', 475 'type': 'static_library', 476 'sources': [ 477 'application/application_runner_chromium.cc', 478 'application/application_runner_chromium.h', 479 ], 480 'dependencies': [ 481 'mojo_application_base', 482 'mojo_common_lib', 483 'mojo_environment_chromium', 484 ], 485 'export_dependent_settings': [ 486 'mojo_application_base', 487 ], 488 }, 489 { 490 # GN version: //mojo/bindings/js 491 'target_name': 'mojo_js_bindings_lib', 492 'type': 'static_library', 493 'dependencies': [ 494 '../base/base.gyp:base', 495 '../gin/gin.gyp:gin', 496 '../v8/tools/gyp/v8.gyp:v8', 497 'mojo_common_lib', 498 ], 499 'export_dependent_settings': [ 500 '../base/base.gyp:base', 501 '../gin/gin.gyp:gin', 502 'mojo_common_lib', 503 ], 504 'sources': [ 505 # Sources list duplicated in GN build. 506 'bindings/js/core.cc', 507 'bindings/js/core.h', 508 'bindings/js/drain_data.cc', 509 'bindings/js/drain_data.h', 510 'bindings/js/handle.cc', 511 'bindings/js/handle.h', 512 'bindings/js/handle_close_observer.h', 513 'bindings/js/support.cc', 514 'bindings/js/support.h', 515 'bindings/js/waiting_callback.cc', 516 'bindings/js/waiting_callback.h', 517 ], 518 }, 519 { 520 # GN version: //mojo/tools:message_generator 521 'target_name': 'mojo_message_generator', 522 'type': 'executable', 523 'dependencies': [ 524 '../base/base.gyp:base', 525 '../testing/gtest.gyp:gtest', 526 'mojo_common_lib', 527 'mojo_cpp_bindings', 528 'mojo_environment_chromium', 529 'mojo_system_impl', 530 ], 531 'sources': [ 532 'tools/message_generator.cc', 533 ], 534 }, 535 ], 536 'conditions': [ 537 ['OS=="android"', { 538 'targets': [ 539 { 540 'target_name': 'mojo_jni_headers', 541 'type': 'none', 542 'dependencies': [ 543 'mojo_java_set_jni_headers', 544 ], 545 'sources': [ 546 'android/javatests/src/org/chromium/mojo/MojoTestCase.java', 547 'android/javatests/src/org/chromium/mojo/bindings/ValidationTestUtil.java', 548 'android/system/src/org/chromium/mojo/system/impl/CoreImpl.java', 549 'services/native_viewport/android/src/org/chromium/mojo/PlatformViewportAndroid.java', 550 'shell/android/apk/src/org/chromium/mojo_shell_apk/MojoMain.java', 551 ], 552 'variables': { 553 'jni_gen_package': 'mojo', 554 }, 555 'includes': [ '../build/jni_generator.gypi' ], 556 }, 557 { 558 'target_name': 'mojo_java_set_jni_headers', 559 'type': 'none', 560 'variables': { 561 'jni_gen_package': 'mojo', 562 'input_java_class': 'java/util/HashSet.class', 563 }, 564 'includes': [ '../build/jar_file_jni_generator.gypi' ], 565 }, 566 { 567 'target_name': 'mojo_system_java', 568 'type': 'none', 569 'dependencies': [ 570 '../base/base.gyp:base_java', 571 'mojo_public_java', 572 ], 573 'variables': { 574 'java_in_dir': '<(DEPTH)/mojo/android/system', 575 }, 576 'includes': [ '../build/java.gypi' ], 577 }, 578 { 579 'target_name': 'libmojo_system_java', 580 'type': 'static_library', 581 'dependencies': [ 582 '../base/base.gyp:base', 583 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 584 'mojo_common_lib', 585 'mojo_environment_chromium', 586 'mojo_jni_headers', 587 'mojo_system_impl', 588 ], 589 'sources': [ 590 'android/system/core_impl.cc', 591 'android/system/core_impl.h', 592 ], 593 }, 594 { 595 'target_name': 'libmojo_java_unittest', 596 'type': 'shared_library', 597 'dependencies': [ 598 '../base/base.gyp:base', 599 '../base/base.gyp:test_support_base', 600 'libmojo_system_java', 601 'mojo_jni_headers', 602 'mojo_public_bindings_test_utils', 603 ], 604 'defines': [ 605 'UNIT_TEST' # As exported from testing/gtest.gyp:gtest. 606 ], 607 'sources': [ 608 'android/javatests/mojo_test_case.cc', 609 'android/javatests/mojo_test_case.h', 610 'android/javatests/init_library.cc', 611 'android/javatests/validation_test_util.cc', 612 'android/javatests/validation_test_util.h', 613 ], 614 }, 615 { 616 'target_name': 'mojo_test_apk', 617 'type': 'none', 618 'dependencies': [ 619 'mojo_bindings_java', 620 'mojo_public_test_interfaces', 621 'mojo_system_java', 622 '../base/base.gyp:base_java_test_support', 623 ], 624 'variables': { 625 'apk_name': 'MojoTest', 626 'java_in_dir': '<(DEPTH)/mojo/android/javatests', 627 'resource_dir': '<(DEPTH)/mojo/android/javatests/apk', 628 'native_lib_target': 'libmojo_java_unittest', 629 'is_test_apk': 1, 630 # Given that this apk tests itself, it needs to bring emma with it 631 # when instrumented. 632 'conditions': [ 633 ['emma_coverage != 0', { 634 'emma_instrument': 1, 635 }], 636 ], 637 }, 638 'includes': [ '../build/java_apk.gypi' ], 639 }, 640 ] 641 }], 642 ['test_isolation_mode != "noop"', { 643 'targets': [ 644 { 645 'target_name': 'mojo_js_unittests_run', 646 'type': 'none', 647 'dependencies': [ 648 'mojo_js_unittests', 649 ], 650 'includes': [ 651 '../build/isolate.gypi', 652 'mojo_js_unittests.isolate', 653 ], 654 'sources': [ 655 'mojo_js_unittests.isolate', 656 ], 657 }, 658 ], 659 }], 660 ] 661} 662