1 # Copyright 2013 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 'target_defaults': { 7 'conditions': [ 8 ['mojo_shell_debug_url != ""', { 9 'defines': [ 10 'MOJO_SHELL_DEBUG=1', 11 'MOJO_SHELL_DEBUG_URL="<(mojo_shell_debug_url)"', 12 ], 13 }], 14 ], 15 }, 16 'includes': [ 17 'mojo_apps.gypi', 18 'mojo_examples.gypi', 19 'mojo_services.gypi', 20 'mojo_variables.gypi', 21 ], 22 'targets': [ 23 { 24 # GN version: //mojo 25 'target_name': 'mojo', 26 'type': 'none', 27 'dependencies': [ 28 'mojo_application_manager', 29 'mojo_application_manager_unittests', 30 'mojo_apps_js_unittests', 31 'mojo_base.gyp:mojo_base', 32 'mojo_clipboard', 33 'mojo_clipboard_unittests', 34 'mojo_compositor_app', 35 'mojo_content_handler_demo', 36 'mojo_echo_client', 37 'mojo_echo_service', 38 'mojo_example_apptests', 39 'mojo_example_service', 40 'mojo_geometry_lib', 41 'mojo_html_viewer', 42 'mojo_js', 43 'mojo_native_viewport_service', 44 'mojo_network_service', 45 'mojo_pepper_container_app', 46 'mojo_png_viewer', 47 'mojo_sample_app', 48 'mojo_shell', 49 'mojo_shell_lib', 50 'mojo_shell_tests', 51 'mojo_surfaces_app', 52 'mojo_surfaces_app', 53 'mojo_surfaces_child_app', 54 'mojo_surfaces_child_gl_app', 55 'mojo_surfaces_lib', 56 'mojo_surfaces_lib_unittests', 57 'mojo_surfaces_service', 58 'mojo_test_app', 59 'mojo_test_request_tracker_app', 60 'mojo_view_manager_lib', 61 'mojo_view_manager_lib_unittests', 62 'mojo_wget', 63 ], 64 'conditions': [ 65 ['use_aura==1', { 66 'dependencies': [ 67 'mojo_aura_demo', 68 'mojo_aura_demo_init', 69 'mojo_browser', 70 'mojo_core_window_manager', 71 'mojo_core_window_manager_unittests', 72 'mojo_demo_launcher', 73 'mojo_embedded_app', 74 'mojo_keyboard', 75 'mojo_media_viewer', 76 'mojo_nesting_app', 77 'mojo_window_manager', 78 'mojo_wm_flow_app', 79 'mojo_wm_flow_embedded', 80 'mojo_wm_flow_init', 81 'mojo_wm_flow_wm', 82 'mojo_view_manager', 83 'mojo_view_manager_unittests', 84 ], 85 }], 86 ['OS == "linux"', { 87 'dependencies': [ 88 'mojo_dbus_echo', 89 'mojo_dbus_echo_service', 90 ], 91 }], 92 ['component != "shared_library" and OS == "linux"', { 93 'dependencies': [ 94 'mojo_python_bindings', 95 'mojo_python_embedder', 96 'mojo_python_system', 97 'mojo_python', 98 ], 99 }], 100 ] 101 }, 102 { 103 # GN version: //mojo/shell:external_service_bindings 104 'target_name': 'mojo_external_service_bindings', 105 'type': 'static_library', 106 'sources': [ 107 'shell/external_service.mojom', 108 ], 109 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], 110 'export_dependent_settings': [ 111 'mojo_base.gyp:mojo_cpp_bindings', 112 ], 113 'dependencies': [ 114 'mojo_base.gyp:mojo_cpp_bindings', 115 ], 116 }, 117 { 118 # GN version: //mojo/spy 119 'target_name': 'mojo_spy', 120 'type': 'static_library', 121 'dependencies': [ 122 '../base/base.gyp:base', 123 '../base/base.gyp:base_static', 124 '../net/net.gyp:http_server', 125 '../url/url.gyp:url_lib', 126 'mojo_application_manager', 127 ], 128 'variables': { 129 'mojom_base_output_dir': 'mojo', 130 }, 131 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], 132 'sources': [ 133 'spy/public/spy.mojom', 134 'spy/common.h', 135 'spy/spy.cc', 136 'spy/spy.h', 137 'spy/spy_server_impl.h', 138 'spy/spy_server_impl.cc', 139 'spy/websocket_server.cc', 140 'spy/websocket_server.h', 141 ], 142 }, 143 { 144 # GN version: //mojo/shell:lib 145 'target_name': 'mojo_shell_lib', 146 'type': 'static_library', 147 'dependencies': [ 148 '../base/base.gyp:base', 149 '../base/base.gyp:base_static', 150 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 151 'mojo_application_manager', 152 'mojo_base.gyp:mojo_application_bindings', 153 'mojo_base.gyp:mojo_common_lib', 154 'mojo_base.gyp:mojo_gles2_impl', 155 'mojo_base.gyp:mojo_system_impl', 156 'mojo_base.gyp:mojo_application_chromium', 157 'mojo_external_service_bindings', 158 'mojo_network_bindings', 159 'mojo_spy', 160 ], 161 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], 162 'sources': [ 163 'shell/app_child_process.cc', 164 'shell/app_child_process.h', 165 'shell/app_child_process.mojom', 166 'shell/app_child_process_host.cc', 167 'shell/app_child_process_host.h', 168 'shell/child_process.cc', 169 'shell/child_process.h', 170 'shell/child_process_host.cc', 171 'shell/child_process_host.h', 172 'shell/context.cc', 173 'shell/context.h', 174 'shell/dbus_application_loader_linux.cc', 175 'shell/dbus_application_loader_linux.h', 176 'shell/dynamic_application_loader.cc', 177 'shell/dynamic_application_loader.h', 178 'shell/dynamic_service_runner.h', 179 'shell/init.cc', 180 'shell/init.h', 181 'shell/in_process_dynamic_service_runner.cc', 182 'shell/in_process_dynamic_service_runner.h', 183 'shell/mojo_url_resolver.cc', 184 'shell/mojo_url_resolver.h', 185 'shell/out_of_process_dynamic_service_runner.cc', 186 'shell/out_of_process_dynamic_service_runner.h', 187 'shell/switches.cc', 188 'shell/switches.h', 189 'shell/task_runners.cc', 190 'shell/task_runners.h', 191 'shell/test_child_process.cc', 192 'shell/test_child_process.h', 193 'shell/ui_application_loader_android.cc', 194 'shell/ui_application_loader_android.h', 195 ], 196 'conditions': [ 197 ['component=="shared_library"', { 198 'dependencies': [ 199 '../ui/gl/gl.gyp:gl', 200 ], 201 }], 202 ['OS=="linux"', { 203 'dependencies': [ 204 '../build/linux/system.gyp:dbus', 205 '../dbus/dbus.gyp:dbus', 206 ], 207 }], 208 ['OS=="android"', { 209 'dependencies': [ 210 'mojo_network_service_lib', 211 'mojo_native_viewport_service_lib', 212 ], 213 'sources': [ 214 'shell/network_application_loader.cc', 215 'shell/network_application_loader.h', 216 ], 217 }], 218 ], 219 }, 220 { 221 # GN version: //mojo/shell:test_support 222 'target_name': 'mojo_shell_test_support', 223 'type': 'static_library', 224 'dependencies': [ 225 '../base/base.gyp:base_static', 226 'mojo_base.gyp:mojo_system_impl', 227 'mojo_shell_lib', 228 ], 229 'sources': [ 230 'shell/shell_test_helper.cc', 231 'shell/shell_test_helper.h', 232 ], 233 }, 234 { 235 # GN version: //mojo/shell 236 'target_name': 'mojo_shell', 237 'type': 'executable', 238 'dependencies': [ 239 '../base/base.gyp:base', 240 'mojo_base.gyp:mojo_common_lib', 241 'mojo_base.gyp:mojo_environment_chromium', 242 'mojo_shell_lib', 243 ], 244 'sources': [ 245 'shell/desktop/mojo_main.cc', 246 ], 247 'conditions': [ 248 ['component=="shared_library"', { 249 'dependencies': [ 250 '../ui/gfx/gfx.gyp:gfx', 251 ], 252 }], 253 ], 254 }, 255 { 256 # GN version: //mojo/shell:mojo_shell_tests 257 'target_name': 'mojo_shell_tests', 258 'type': '<(gtest_target_type)', 259 'dependencies': [ 260 '../base/base.gyp:base', 261 '../base/base.gyp:base_i18n', 262 '../base/base.gyp:test_support_base', 263 '../testing/gtest.gyp:gtest', 264 '../net/net.gyp:net_test_support', 265 '../url/url.gyp:url_lib', 266 'mojo_application_manager', 267 'mojo_base.gyp:mojo_common_lib', 268 'mojo_base.gyp:mojo_environment_chromium', 269 'mojo_base.gyp:mojo_system_impl', 270 'mojo_shell_lib', 271 'mojo_test_app', 272 'mojo_test_request_tracker_app', 273 'mojo_test_service_bindings', 274 ], 275 'sources': [ 276 'shell/child_process_host_unittest.cc', 277 'shell/dynamic_application_loader_unittest.cc', 278 'shell/in_process_dynamic_service_runner_unittest.cc', 279 'shell/shell_test_base.cc', 280 'shell/shell_test_base.h', 281 'shell/shell_test_base_unittest.cc', 282 'shell/shell_test_main.cc', 283 ], 284 'conditions': [ 285 ['OS == "android"', { 286 'dependencies': [ 287 '../testing/android/native_test.gyp:native_test_native_code', 288 ], 289 }], 290 ], 291 }, 292 { 293 # GN version: //mojo/application_manager 294 'target_name': 'mojo_application_manager', 295 'type': '<(component)', 296 'defines': [ 297 'MOJO_APPLICATION_MANAGER_IMPLEMENTATION', 298 ], 299 'dependencies': [ 300 '../base/base.gyp:base', 301 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 302 '../url/url.gyp:url_lib', 303 'mojo_content_handler_bindings', 304 'mojo_network_bindings', 305 'mojo_base.gyp:mojo_application_bindings', 306 'mojo_base.gyp:mojo_common_lib', 307 'mojo_base.gyp:mojo_environment_chromium', 308 '<(mojo_system_for_component)', 309 ], 310 'sources': [ 311 'application_manager/application_loader.cc', 312 'application_manager/application_loader.h', 313 'application_manager/application_manager.cc', 314 'application_manager/application_manager.h', 315 'application_manager/application_manager_export.h', 316 'application_manager/background_shell_application_loader.cc', 317 'application_manager/background_shell_application_loader.h', 318 ], 319 'export_dependent_settings': [ 320 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 321 'mojo_base.gyp:mojo_application_bindings', 322 'mojo_network_bindings', 323 ], 324 }, 325 { 326 # GN version: //mojo/application_manager:unittests 327 'target_name': 'mojo_application_manager_unittests', 328 'type': 'executable', 329 'dependencies': [ 330 '../base/base.gyp:base', 331 '../testing/gtest.gyp:gtest', 332 '../url/url.gyp:url_lib', 333 'mojo_application_manager', 334 'mojo_base.gyp:mojo_common_lib', 335 'mojo_base.gyp:mojo_cpp_bindings', 336 'mojo_base.gyp:mojo_environment_chromium', 337 'mojo_base.gyp:mojo_run_all_unittests', 338 'mojo_base.gyp:mojo_application_chromium', 339 ], 340 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], 341 'sources': [ 342 'application_manager/application_manager_unittest.cc', 343 'application_manager/background_shell_application_loader_unittest.cc', 344 'application_manager/test.mojom', 345 ], 346 }, 347 { 348 # GN version: //mojo/cc 349 'target_name': 'mojo_cc_support', 350 'type': 'static_library', 351 'dependencies': [ 352 '../base/base.gyp:base', 353 '../cc/cc.gyp:cc', 354 '../cc/cc.gyp:cc_surfaces', 355 '../skia/skia.gyp:skia', 356 '../gpu/gpu.gyp:gles2_implementation', 357 'mojo_geometry_lib', 358 'mojo_surfaces_bindings', 359 'mojo_surfaces_lib', 360 ], 361 'includes': [ 362 'mojo_public_gles2_for_loadable_module.gypi', 363 ], 364 'export_dependent_settings': [ 365 'mojo_surfaces_bindings', 366 ], 367 'sources': [ 368 'cc/context_provider_mojo.cc', 369 'cc/context_provider_mojo.h', 370 'cc/output_surface_mojo.cc', 371 'cc/output_surface_mojo.h', 372 ], 373 }, 374 ], 375 'conditions': [ 376 ['OS=="android"', { 377 'targets': [ 378 { 379 'target_name': 'mojo_native_viewport_java', 380 'type': 'none', 381 'dependencies': [ 382 '../base/base.gyp:base_java', 383 ], 384 'variables': { 385 'java_in_dir': '<(DEPTH)/mojo/services/native_viewport/android', 386 }, 387 'includes': [ '../build/java.gypi' ], 388 }, 389 { 390 'target_name': 'libmojo_shell', 391 'type': 'shared_library', 392 'dependencies': [ 393 '../base/base.gyp:base', 394 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 395 '../ui/gfx/gfx.gyp:gfx', 396 '../ui/gfx/gfx.gyp:gfx_geometry', 397 '../ui/gl/gl.gyp:gl', 398 'mojo_base.gyp:mojo_application_bindings', 399 'mojo_base.gyp:mojo_common_lib', 400 'mojo_base.gyp:mojo_environment_chromium', 401 'mojo_base.gyp:mojo_jni_headers', 402 'mojo_shell_lib', 403 ], 404 'sources': [ 405 'shell/android/library_loader.cc', 406 'shell/android/mojo_main.cc', 407 'shell/android/mojo_main.h', 408 ], 409 }, 410 { 411 'target_name': 'mojo_shell_apk', 412 'type': 'none', 413 'dependencies': [ 414 '../base/base.gyp:base_java', 415 '../net/net.gyp:net_java', 416 'mojo_native_viewport_java', 417 'libmojo_shell', 418 ], 419 'variables': { 420 'apk_name': 'MojoShell', 421 'java_in_dir': '<(DEPTH)/mojo/shell/android/apk', 422 'resource_dir': '<(DEPTH)/mojo/shell/android/apk/res', 423 'native_lib_target': 'libmojo_shell', 424 }, 425 'includes': [ '../build/java_apk.gypi' ], 426 } 427 ], 428 }], 429 ['OS=="linux"', { 430 'targets': [ 431 { 432 # GN version: //mojo/dbus 433 'target_name': 'mojo_dbus_service', 434 'type': 'static_library', 435 'dependencies': [ 436 '../base/base.gyp:base', 437 '../build/linux/system.gyp:dbus', 438 '../dbus/dbus.gyp:dbus', 439 'mojo_base.gyp:mojo_application_chromium', 440 'mojo_base.gyp:mojo_common_lib', 441 'mojo_base.gyp:mojo_system_impl', 442 'mojo_external_service_bindings', 443 ], 444 'sources': [ 445 'dbus/dbus_external_service.h', 446 'dbus/dbus_external_service.cc', 447 ], 448 }, 449 ], 450 }], 451 ['use_aura==1', { 452 'targets': [ 453 { 454 # GN version: //mojo/aura 455 'target_name': 'mojo_aura_support', 456 'type': 'static_library', 457 'dependencies': [ 458 '../cc/cc.gyp:cc', 459 '../ui/aura/aura.gyp:aura', 460 '../ui/compositor/compositor.gyp:compositor', 461 '../ui/events/events.gyp:events', 462 '../ui/events/events.gyp:events_base', 463 'mojo_cc_support', 464 'mojo_native_viewport_bindings', 465 ], 466 'includes': [ 467 'mojo_public_gles2_for_loadable_module.gypi', 468 ], 469 'sources': [ 470 'aura/aura_init.cc', 471 'aura/aura_init.h', 472 'aura/context_factory_mojo.cc', 473 'aura/context_factory_mojo.h', 474 'aura/screen_mojo.cc', 475 'aura/screen_mojo.h', 476 'aura/window_tree_host_mojo.cc', 477 'aura/window_tree_host_mojo.h', 478 'aura/window_tree_host_mojo_delegate.h', 479 ], 480 }, 481 { 482 # GN version: //mojo/views 483 'target_name': 'mojo_views_support', 484 'type': 'static_library', 485 'dependencies': [ 486 '../base/base.gyp:base', 487 '../base/base.gyp:base_i18n', 488 '../skia/skia.gyp:skia', 489 '../third_party/icu/icu.gyp:icui18n', 490 '../third_party/icu/icu.gyp:icuuc', 491 '../ui/aura/aura.gyp:aura', 492 '../ui/base/ui_base.gyp:ui_base', 493 '../ui/views/views.gyp:views', 494 '../ui/wm/wm.gyp:wm', 495 'mojo_aura_support', 496 'mojo_views_support_internal', 497 'mojo_view_manager_bindings', 498 ], 499 'sources': [ 500 'views/input_method_mojo_linux.cc', 501 'views/input_method_mojo_linux.h', 502 'views/native_widget_view_manager.cc', 503 'views/native_widget_view_manager.h', 504 'views/views_init.cc', 505 'views/views_init.h', 506 ], 507 }, 508 { 509 # GN version: //mojo/views:views_internal 510 'target_name': 'mojo_views_support_internal', 511 'type': '<(component)', 512 'dependencies': [ 513 '../base/base.gyp:base', 514 '../base/base.gyp:base_i18n', 515 '../base/base.gyp:base_static', 516 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 517 '../skia/skia.gyp:skia', 518 '../third_party/icu/icu.gyp:icui18n', 519 '../third_party/icu/icu.gyp:icuuc', 520 '../ui/base/ui_base.gyp:ui_base', 521 '../ui/gfx/gfx.gyp:gfx', 522 ], 523 'sources': [ 524 'views/mojo_views_export.h', 525 'views/views_init_internal.cc', 526 'views/views_init_internal.h', 527 ], 528 'defines': [ 529 'MOJO_VIEWS_IMPLEMENTATION', 530 ], 531 }, 532 ], 533 }], 534 ['component!="shared_library" and OS=="linux"', { 535 'targets': [ 536 { 537 # GN version: //mojo/public/python:system 538 'target_name': 'mojo_python_system', 539 'variables': { 540 'python_base_module': 'mojo', 541 'python_cython_module': 'system', 542 }, 543 'sources': [ 544 'public/python/mojo/c_core.pxd', 545 'public/python/mojo/c_environment.pxd', 546 'public/python/mojo/system.pyx', 547 'public/python/src/python_system_helper.cc', 548 'public/python/src/python_system_helper.h', 549 ], 550 'dependencies': [ 551 'mojo_base.gyp:mojo_environment_standalone', 552 'mojo_base.gyp:mojo_system', 553 'mojo_base.gyp:mojo_utility', 554 ], 555 'includes': [ '../third_party/cython/cython_compiler.gypi' ], 556 }, 557 { 558 # GN version: //mojo/python:embedder 559 'target_name': 'mojo_python_embedder', 560 'type': 'loadable_module', 561 'variables': { 562 'python_base_module': 'mojo', 563 'python_cython_module': 'embedder', 564 }, 565 'sources': [ 566 'python/system/mojo/embedder.pyx', 567 ], 568 'dependencies': [ 569 'mojo_base.gyp:mojo_system_impl', 570 ], 571 'includes': [ '../third_party/cython/cython_compiler.gypi' ], 572 }, 573 { 574 # GN version: //mojo/public/python:bindings 575 'target_name': 'mojo_python_bindings', 576 'type': 'none', 577 'variables': { 578 'python_base_module': 'mojo/bindings', 579 }, 580 'sources': [ 581 'public/python/mojo/bindings/__init__.py', 582 'public/python/mojo/bindings/descriptor.py', 583 'public/python/mojo/bindings/messaging.py', 584 'public/python/mojo/bindings/reflection.py', 585 'public/python/mojo/bindings/serialization.py', 586 ], 587 'dependencies': [ 588 'mojo_python_system', 589 ], 590 'includes': [ '../third_party/cython/python_module.gypi' ], 591 }, 592 { 593 # GN version: //mojo/python 594 'target_name': 'mojo_python', 595 'type': 'none', 596 'variables': { 597 'python_base_module': 'mojo', 598 }, 599 'sources': [ 600 'public/python/mojo/__init__.py', 601 ], 602 'dependencies': [ 603 'mojo_python_bindings', 604 'mojo_python_embedder', 605 'mojo_python_system', 606 ], 607 # The python module need to be copied to their destinations 608 'actions': [ 609 { 610 'action_name': 'Copy system module.', 611 'inputs': [ 612 '<(DEPTH)/build/cp.py', 613 '<(PRODUCT_DIR)/libmojo_python_system.so', 614 ], 615 'outputs': [ 616 '<(PRODUCT_DIR)/python/mojo/system.so', 617 ], 618 'action': [ 619 'python', 620 '<@(_inputs)', 621 '<@(_outputs)', 622 ] 623 }, 624 { 625 'action_name': 'Copy embedder module.', 626 'inputs': [ 627 '<(DEPTH)/build/cp.py', 628 '<(PRODUCT_DIR)/libmojo_python_embedder.so', 629 ], 630 'outputs': [ 631 '<(PRODUCT_DIR)/python/mojo/embedder.so', 632 ], 633 'action': [ 634 'python', 635 '<@(_inputs)', 636 '<@(_outputs)', 637 ] 638 }, 639 ], 640 'includes': [ '../third_party/cython/python_module.gypi' ], 641 }, 642 ], 643 }], 644 ['component!="shared_library" and OS=="linux" and test_isolation_mode!="noop"', { 645 'targets': [ 646 { 647 'target_name': 'mojo_python_unittests_run', 648 'type': 'none', 649 'dependencies': [ 650 'mojo_python', 651 'mojo_base.gyp:mojo_public_test_interfaces', 652 ], 653 'includes': [ 654 '../build/isolate.gypi', 655 'mojo_python_unittests.isolate', 656 ], 657 'sources': [ 658 'mojo_python_unittests.isolate', 659 ], 660 }, 661 ], 662 }], 663 ], 664 } 665