Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / mojo / mojo_examples.gypi
index 254d5fa..81b0a4f 100644 (file)
@@ -5,20 +5,80 @@
 {
   'targets': [
     {
+      'target_name': 'mojo_echo_client',
+      'type': 'loadable_module',
+      'dependencies': [
+        'mojo_base.gyp:mojo_application_standalone',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_standalone',
+        'mojo_base.gyp:mojo_utility',
+        'mojo_echo_service_bindings',
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/echo/echo_client.cc',
+        'public/cpp/application/lib/mojo_main_standalone.cc',
+      ],
+    },
+    {
+      'target_name': 'package_mojo_echo_client',
+      'variables': {
+        'app_name': 'mojo_echo_client',
+      },
+      'includes': [ 'build/package_app.gypi' ],
+    },
+    {
+      'target_name': 'mojo_echo_service_bindings',
+      'type': 'static_library',
+      'sources': [
+        'examples/echo/echo_service.mojom',
+      ],
+      'dependencies': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+      ],
+      'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+      'export_dependent_settings': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+      ],
+    },
+    {
+      'target_name': 'mojo_echo_service',
+      'type': 'loadable_module',
+      'dependencies': [
+        'mojo_base.gyp:mojo_application_standalone',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_standalone',
+        'mojo_base.gyp:mojo_utility',
+        'mojo_echo_service_bindings',
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/echo/echo_service.cc',
+        'public/cpp/application/lib/mojo_main_standalone.cc',
+      ],
+    },
+    {
+      'target_name': 'package_mojo_echo_service',
+      'variables': {
+        'app_name': 'mojo_echo_service',
+      },
+      'includes': [ 'build/package_app.gypi' ],
+    },
+    {
       'target_name': 'mojo_sample_app',
-      'type': 'shared_library',
+      'type': 'loadable_module',
       'dependencies': [
         # TODO(darin): we should not be linking against these libraries!
         '../ui/events/events.gyp:events',
         '../ui/gfx/gfx.gyp:gfx_geometry',
-        'mojo_application',
-        'mojo_cpp_bindings',
-        'mojo_environment_standalone',
+        'mojo_base.gyp:mojo_application_standalone',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_standalone',
+        'mojo_base.gyp:mojo_utility',
         'mojo_geometry_bindings',
-        'mojo_gles2',
         'mojo_native_viewport_bindings',
-        'mojo_system',
-        'mojo_utility',
+        '<(mojo_gles2_for_loadable_module)',
+        '<(mojo_system_for_loadable_module)',
       ],
       'sources': [
         'examples/sample_app/gles2_client_impl.cc',
       'includes': [ 'build/package_app.gypi' ],
     },
     {
+      'target_name': 'mojo_example_service_bindings',
+      'type': 'static_library',
+      'sources': [
+        'examples/apptest/example_service.mojom',
+      ],
+      'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+      'export_dependent_settings': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+      ],
+      'dependencies': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+      ],
+    },
+    {
+      'target_name': 'mojo_example_service',
+      'type': 'loadable_module',
+      'dependencies': [
+        'mojo_base.gyp:mojo_application_standalone', # For ApplicationDelegate.
+        'mojo_base.gyp:mojo_cpp_bindings',           # For *.mojom.h
+        'mojo_base.gyp:mojo_environment_standalone', # For Environment.
+        'mojo_example_service_bindings',
+        'mojo_base.gyp:mojo_utility',                # For RunLoop.
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/apptest/example_service_application.cc',
+        'examples/apptest/example_service_application.h',
+        'examples/apptest/example_service_impl.cc',
+        'examples/apptest/example_service_impl.h',
+        'public/cpp/application/lib/mojo_main_standalone.cc',
+      ],
+    },
+    {
+      'target_name': 'mojo_example_apptests',
+      'type': 'loadable_module',
+      'dependencies': [
+        '../testing/gtest.gyp:gtest',
+        'mojo_base.gyp:mojo_application_standalone', # For ApplicationDelegate.
+        'mojo_base.gyp:mojo_environment_standalone', # For Environment.
+        'mojo_example_service',
+        'mojo_example_service_bindings',
+        'mojo_base.gyp:mojo_utility',                # For RunLoop.
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/apptest/example_apptest.cc',
+        'examples/apptest/example_client_application.cc',
+        'examples/apptest/example_client_application.h',
+        'examples/apptest/example_client_impl.cc',
+        'examples/apptest/example_client_impl.h',
+      ],
+    },
+    {
+      'target_name': 'package_mojo_example_apptests',
+      'variables': {
+        'app_name': 'mojo_example_apptests',
+      },
+      'includes': [ 'build/package_app.gypi' ],
+    },
+    {
       'target_name': 'mojo_compositor_app',
-      'type': 'shared_library',
+      'type': 'loadable_module',
       'dependencies': [
         '../base/base.gyp:base',
         '../cc/cc.gyp:cc',
         '../ui/gfx/gfx.gyp:gfx',
         '../ui/gfx/gfx.gyp:gfx_geometry',
-        'mojo_application',
+        'mojo_base.gyp:mojo_application_chromium',
+        'mojo_base.gyp:mojo_common_lib',
+        'mojo_base.gyp:mojo_environment_chromium',
         'mojo_cc_support',
-        'mojo_common_lib',
-        'mojo_environment_chromium',
         'mojo_geometry_bindings',
         'mojo_geometry_lib',
-        'mojo_gles2',
         'mojo_native_viewport_bindings',
-        'mojo_system_impl',
+        '<(mojo_gles2_for_loadable_module)',
+        '<(mojo_system_for_loadable_module)',
       ],
       'sources': [
         'examples/compositor_app/compositor_app.cc',
     },
     {
       'target_name': 'mojo_wget',
-      'type': 'shared_library',
+      'type': 'loadable_module',
       'dependencies': [
-        'mojo_application',
-        'mojo_cpp_bindings',
-        'mojo_environment_standalone',
+        'mojo_base.gyp:mojo_application_standalone',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_standalone',
+        'mojo_base.gyp:mojo_utility',
         'mojo_network_bindings',
-        'mojo_system',
-        'mojo_utility',
+        '<(mojo_system_for_loadable_module)',
       ],
       'sources': [
         'examples/wget/wget.cc',
       ],
     },
     {
+      'target_name': 'mojo_content_handler_demo',
+      'type': 'loadable_module',
+      'dependencies': [
+        'mojo_base.gyp:mojo_application_standalone',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_standalone',
+        'mojo_base.gyp:mojo_utility',
+        'mojo_content_handler_bindings',
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/content_handler_demo/content_handler_demo.cc',
+        'public/cpp/application/lib/mojo_main_standalone.cc',
+      ],
+    },
+    {
       'target_name': 'package_mojo_wget',
       'variables': {
         'app_name': 'mojo_wget',
       'includes': [ 'build/package_app.gypi' ],
     },
     {
-      'target_name': 'mojo_html_viewer',
-      'type': 'shared_library',
-      'dependencies': [
-        '../net/net.gyp:net',
-        '../skia/skia.gyp:skia',
-        '../third_party/WebKit/public/blink.gyp:blink',
-        '../url/url.gyp:url_lib',
-        'mojo_application',
-        'mojo_cpp_bindings',
-        'mojo_environment_chromium',
-        'mojo_navigation_bindings',
-        'mojo_network_bindings',
-        'mojo_launcher_bindings',
-        'mojo_system_impl',
-        'mojo_utility',
-        'mojo_view_manager_lib',
+      'target_name': 'mojo_media_viewer_bindings',
+      'type': 'static_library',
+      'sources': [
+        'examples/media_viewer/media_viewer.mojom',
       ],
-      'include_dirs': [
-        'third_party/WebKit'
+      'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+      'export_dependent_settings': [
+        'mojo_base.gyp:mojo_cpp_bindings',
       ],
-      'sources': [
-        'examples/html_viewer/blink_platform_impl.cc',
-        'examples/html_viewer/blink_platform_impl.h',
-        'examples/html_viewer/html_viewer.cc',
-        'examples/html_viewer/html_document_view.cc',
-        'examples/html_viewer/html_document_view.h',
-        'examples/html_viewer/webmimeregistry_impl.cc',
-        'examples/html_viewer/webmimeregistry_impl.h',
-        'examples/html_viewer/webthread_impl.cc',
-        'examples/html_viewer/webthread_impl.h',
-        'examples/html_viewer/weburlloader_impl.cc',
-        'examples/html_viewer/weburlloader_impl.h',
-        'public/cpp/application/lib/mojo_main_chromium.cc',
+      'dependencies': [
+        'mojo_base.gyp:mojo_cpp_bindings',
       ],
     },
     {
-      'target_name': 'mojo_image_viewer',
-      'type': 'shared_library',
+      'target_name': 'mojo_png_viewer',
+      'type': 'loadable_module',
       'dependencies': [
         '../skia/skia.gyp:skia',
         '../ui/gfx/gfx.gyp:gfx',
-        'mojo_application',
-        'mojo_cpp_bindings',
-        'mojo_environment_chromium',
+        'mojo_base.gyp:mojo_application_chromium',
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_base.gyp:mojo_environment_chromium',
+        'mojo_base.gyp:mojo_utility',
+        'mojo_media_viewer_bindings',
         'mojo_navigation_bindings',
         'mojo_network_bindings',
         'mojo_launcher_bindings',
-        'mojo_system_impl',
-        'mojo_utility',
         'mojo_view_manager_lib',
+        '<(mojo_system_for_loadable_module)',
       ],
       'sources': [
-        'examples/image_viewer/image_viewer.cc',
+        'examples/png_viewer/png_viewer.cc',
         'public/cpp/application/lib/mojo_main_chromium.cc',
       ],
     },
     {
       'target_name': 'mojo_pepper_container_app',
-      'type': 'shared_library',
+      'type': 'loadable_module',
       'dependencies': [
         '../base/base.gyp:base',
         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
         '../ppapi/ppapi.gyp:ppapi_c',
         '../ppapi/ppapi_internal.gyp:ppapi_example_gles2_spinning_cube',
         '../ui/events/events.gyp:events_base',
-        'mojo_application',
-        'mojo_common_lib',
-        'mojo_environment_chromium',
+        'mojo_base.gyp:mojo_application_chromium',
+        'mojo_base.gyp:mojo_common_lib',
+        'mojo_base.gyp:mojo_environment_chromium',
         'mojo_geometry_bindings',
-        'mojo_gles2',
         'mojo_native_viewport_bindings',
-        'mojo_system_impl',
+        '<(mojo_gles2_for_loadable_module)',
+        '<(mojo_system_for_loadable_module)',
       ],
       'defines': [
         # We don't really want to export. We could change how
         'public/cpp/application/lib/mojo_main_chromium.cc',
       ],
     },
+    {
+      'target_name': 'mojo_surfaces_app',
+      'type': 'loadable_module',
+      'dependencies': [
+        '../base/base.gyp:base',
+        '../cc/cc.gyp:cc',
+        '../cc/cc.gyp:cc_surfaces',
+        '../skia/skia.gyp:skia',
+        '../ui/gfx/gfx.gyp:gfx',
+        '../ui/gfx/gfx.gyp:gfx_geometry',
+        'mojo_base.gyp:mojo_application_chromium',
+        'mojo_base.gyp:mojo_common_lib',
+        'mojo_base.gyp:mojo_environment_chromium',
+        'mojo_geometry_bindings',
+        'mojo_geometry_lib',
+        'mojo_native_viewport_bindings',
+        'mojo_surfaces_bindings',
+        'mojo_surfaces_app_bindings',
+        'mojo_surfaces_lib',
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/surfaces_app/embedder.cc',
+        'examples/surfaces_app/embedder.h',
+        'examples/surfaces_app/surfaces_app.cc',
+        'examples/surfaces_app/surfaces_util.cc',
+        'examples/surfaces_app/surfaces_util.h',
+        'public/cpp/application/lib/mojo_main_chromium.cc',
+      ],
+    },
+    {
+      'target_name': 'mojo_surfaces_app_bindings',
+      'type': 'static_library',
+      'sources': [
+        'examples/surfaces_app/child.mojom',
+      ],
+      'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+      'export_dependent_settings': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+      ],
+      'dependencies': [
+        'mojo_base.gyp:mojo_cpp_bindings',
+        'mojo_geometry_bindings',
+        'mojo_surfaces_bindings',
+      ],
+    },
+    {
+      'target_name': 'package_mojo_surfaces_app',
+      'variables': {
+        'app_name': 'mojo_surfaces_app',
+      },
+      'includes': [ 'build/package_app.gypi' ],
+    },
+    {
+      'target_name': 'mojo_surfaces_child_app',
+      'type': 'loadable_module',
+      'dependencies': [
+        '../base/base.gyp:base',
+        '../cc/cc.gyp:cc',
+        '../cc/cc.gyp:cc_surfaces',
+        '../skia/skia.gyp:skia',
+        '../ui/gfx/gfx.gyp:gfx',
+        '../ui/gfx/gfx.gyp:gfx_geometry',
+        'mojo_base.gyp:mojo_application_chromium',
+        'mojo_base.gyp:mojo_common_lib',
+        'mojo_base.gyp:mojo_environment_chromium',
+        'mojo_geometry_bindings',
+        'mojo_geometry_lib',
+        'mojo_surfaces_app_bindings',
+        'mojo_surfaces_bindings',
+        'mojo_surfaces_lib',
+        '<(mojo_system_for_loadable_module)',
+      ],
+      'sources': [
+        'examples/surfaces_app/child_app.cc',
+        'examples/surfaces_app/child_impl.cc',
+        'examples/surfaces_app/child_impl.h',
+        'examples/surfaces_app/surfaces_util.cc',
+        'examples/surfaces_app/surfaces_util.h',
+        'public/cpp/application/lib/mojo_main_chromium.cc',
+      ],
+    },
   ],
   'conditions': [
     ['use_aura==1', {
       'targets': [
         {
           'target_name': 'mojo_aura_demo',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
             '../cc/cc.gyp:cc',
             '../ui/compositor/compositor.gyp:compositor',
             '../ui/gfx/gfx.gyp:gfx',
             '../ui/gfx/gfx.gyp:gfx_geometry',
-            'mojo_application',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_common_lib',
+            'mojo_base.gyp:mojo_environment_chromium',
             'mojo_aura_support',
-            'mojo_common_lib',
-            'mojo_environment_chromium',
             'mojo_geometry_bindings',
             'mojo_geometry_lib',
-            'mojo_system_impl',
             'mojo_view_manager_lib',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/aura_demo/aura_demo.cc',
         },
         {
           'target_name': 'mojo_aura_demo_init',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
-            'mojo_application',
-            'mojo_environment_chromium',
-            'mojo_system_impl',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
             'mojo_view_manager_bindings',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/aura_demo/view_manager_init.cc',
         },
         {
           'target_name': 'mojo_browser',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
             '../cc/cc.gyp:cc',
             '../ui/resources/ui_resources.gyp:ui_test_pak',
             '../ui/views/views.gyp:views',
             '../url/url.gyp:url_lib',
-            'mojo_application',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_common_lib',
+            'mojo_base.gyp:mojo_environment_chromium',
             'mojo_aura_support',
-            'mojo_common_lib',
-            'mojo_environment_chromium',
             'mojo_geometry_bindings',
             'mojo_geometry_lib',
             'mojo_input_events_lib',
             'mojo_navigation_bindings',
-            'mojo_system_impl',
             'mojo_views_support',
             'mojo_view_manager_bindings',
             'mojo_view_manager_lib',
+            'mojo_window_manager_bindings',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/browser/browser.cc',
         },
         {
           'target_name': 'mojo_demo_launcher',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
             '../skia/skia.gyp:skia',
             '../ui/gfx/gfx.gyp:gfx',
             '../ui/gfx/gfx.gyp:gfx_geometry',
             '../ui/gl/gl.gyp:gl',
-            'mojo_application',
-            'mojo_cpp_bindings',
-            'mojo_environment_chromium',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_base.gyp:mojo_utility',
             'mojo_geometry_bindings',
-            'mojo_gles2',
             'mojo_view_manager_bindings',
-            'mojo_system_impl',
-            'mojo_utility',
+            '<(mojo_gles2_for_loadable_module)',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/demo_launcher/demo_launcher.cc',
           ],
         },
         {
-          'target_name': 'mojo_window_manager_bindings',
+          'target_name': 'mojo_keyboard',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            '../cc/cc.gyp:cc',
+            '../third_party/icu/icu.gyp:icui18n',
+            '../third_party/icu/icu.gyp:icuuc',
+            '../ui/aura/aura.gyp:aura',
+            '../ui/base/ui_base.gyp:ui_base',
+            '../ui/compositor/compositor.gyp:compositor',
+            '../ui/gfx/gfx.gyp:gfx',
+            '../ui/gfx/gfx.gyp:gfx_geometry',
+            '../ui/resources/ui_resources.gyp:ui_resources',
+            '../ui/resources/ui_resources.gyp:ui_test_pak',
+            '../ui/views/views.gyp:views',
+            '../url/url.gyp:url_lib',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_common_lib',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_aura_support',
+            'mojo_geometry_bindings',
+            'mojo_geometry_lib',
+            'mojo_input_events_lib',
+            'mojo_keyboard_bindings',
+            'mojo_navigation_bindings',
+            'mojo_views_support',
+            'mojo_view_manager_bindings',
+            'mojo_view_manager_lib',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/keyboard/keyboard_delegate.h',
+            'examples/keyboard/keyboard_view.cc',
+            'examples/keyboard/keyboard_view.h',
+            'examples/keyboard/keyboard.cc',
+            'examples/keyboard/keys.cc',
+            'examples/keyboard/keys.h',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
+        {
+          'target_name': 'mojo_keyboard_bindings',
           'type': 'static_library',
           'sources': [
-            'examples/window_manager/window_manager.mojom',
+            'examples/keyboard/keyboard.mojom',
           ],
           'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
           'export_dependent_settings': [
-            'mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+          'dependencies': [
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+        },
+        {
+          'target_name': 'mojo_window_manager_bindings',
+          'type': 'static_library',
+          'sources': [
+            'examples/window_manager/window_manager.mojom',
           ],
           'dependencies': [
-            'mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_geometry_bindings',
+          ],
+          'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+          'export_dependent_settings': [
+            'mojo_base.gyp:mojo_cpp_bindings',
           ],
         },
         {
           'target_name': 'mojo_window_manager',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
+            '../ui/aura/aura.gyp:aura',
+            '../ui/base/ui_base.gyp:ui_base',
+            '../ui/gfx/gfx.gyp:gfx',
             '../ui/gfx/gfx.gyp:gfx_geometry',
             '../ui/gl/gl.gyp:gl',
-            'mojo_application',
-            'mojo_cpp_bindings',
-            'mojo_environment_chromium',
+            '../ui/resources/ui_resources.gyp:ui_resources',
+            '../ui/resources/ui_resources.gyp:ui_test_pak',
+            '../ui/views/views.gyp:views',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_utility',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_aura_support',
+            'mojo_core_window_manager_lib',
             'mojo_geometry_bindings',
-            'mojo_gles2',
+            'mojo_geometry_lib',
+            'mojo_input_events_lib',
+            'mojo_keyboard_bindings',
             'mojo_launcher_bindings',
             'mojo_navigation_bindings',
             'mojo_view_manager_lib',
+            'mojo_views_support',
             'mojo_window_manager_bindings',
-            'mojo_system_impl',
-            'mojo_utility',
+            '<(mojo_gles2_for_loadable_module)',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
+            'examples/window_manager/debug_panel.h',
+            'examples/window_manager/debug_panel.cc',
             'examples/window_manager/window_manager.cc',
             'public/cpp/application/lib/mojo_main_chromium.cc',
           ],
         },
         {
           'target_name': 'mojo_embedded_app',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
             '../ui/gfx/gfx.gyp:gfx_geometry',
             '../ui/gl/gl.gyp:gl',
             '../url/url.gyp:url_lib',
-            'mojo_application',
-            'mojo_cpp_bindings',
-            'mojo_environment_chromium',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_base.gyp:mojo_utility',
             'mojo_geometry_bindings',
-            'mojo_gles2',
             'mojo_navigation_bindings',
             'mojo_view_manager_lib',
             'mojo_window_manager_bindings',
-            'mojo_system_impl',
-            'mojo_utility',
+            '<(mojo_gles2_for_loadable_module)',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/embedded_app/embedded_app.cc',
         },
         {
           'target_name': 'mojo_nesting_app',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
             '../ui/gfx/gfx.gyp:gfx_geometry',
             '../ui/gl/gl.gyp:gl',
             '../url/url.gyp:url_lib',
-            'mojo_application',
-            'mojo_cpp_bindings',
-            'mojo_environment_chromium',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_base.gyp:mojo_utility',
             'mojo_geometry_bindings',
-            'mojo_gles2',
             'mojo_navigation_bindings',
             'mojo_view_manager_lib',
             'mojo_window_manager_bindings',
-            'mojo_system_impl',
-            'mojo_utility',
+            '<(mojo_gles2_for_loadable_module)',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/nesting_app/nesting_app.cc',
             'public/cpp/application/lib/mojo_main_chromium.cc',
           ],
         },
+        {
+          'target_name': 'mojo_media_viewer',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            '../skia/skia.gyp:skia',
+            '../ui/gfx/gfx.gyp:gfx_geometry',
+            '../ui/views/views.gyp:views',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_input_events_lib',
+            'mojo_media_viewer_bindings',
+            'mojo_navigation_bindings',
+            'mojo_views_support',
+            'mojo_view_manager_bindings',
+            'mojo_view_manager_lib',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/media_viewer/media_viewer.cc',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_wm',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_core_window_manager_lib',
+            'mojo_view_manager_lib',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/wm_flow/wm/wm.cc',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_init',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_view_manager_bindings',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/wm_flow/init/init.cc',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_embedder_bindings',
+          'type': 'static_library',
+          'sources': [
+            'examples/wm_flow/app/embedder.mojom',
+          ],
+          'dependencies': [
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+          'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+          'export_dependent_settings': [
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_embeddee_bindings',
+          'type': 'static_library',
+          'sources': [
+            'examples/wm_flow/embedded/embeddee.mojom',
+          ],
+          'dependencies': [
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+          'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
+          'export_dependent_settings': [
+            'mojo_base.gyp:mojo_cpp_bindings',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_app',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_core_window_manager_bindings',
+            'mojo_view_manager_lib',
+            'mojo_wm_flow_embeddee_bindings',
+            'mojo_wm_flow_embedder_bindings',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/wm_flow/app/app.cc',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
+        {
+          'target_name': 'mojo_wm_flow_embedded',
+          'type': 'loadable_module',
+          'dependencies': [
+            '../base/base.gyp:base',
+            'mojo_base.gyp:mojo_application_chromium',
+            'mojo_base.gyp:mojo_environment_chromium',
+            'mojo_core_window_manager_bindings',
+            'mojo_view_manager_lib',
+            'mojo_wm_flow_embeddee_bindings',
+            'mojo_wm_flow_embedder_bindings',
+            '<(mojo_system_for_loadable_module)',
+          ],
+          'sources': [
+            'examples/wm_flow/embedded/embedded.cc',
+            'public/cpp/application/lib/mojo_main_chromium.cc',
+          ],
+        },
       ],
     }],
     ['OS=="linux"', {
       'targets': [
         {
           'target_name': 'mojo_dbus_echo',
-          'type': 'shared_library',
+          'type': 'loadable_module',
           'dependencies': [
             '../base/base.gyp:base',
-            'mojo_application',
-            'mojo_cpp_bindings',
-            'mojo_environment_standalone',
+            'mojo_base.gyp:mojo_application_standalone',
+            'mojo_base.gyp:mojo_cpp_bindings',
+            'mojo_base.gyp:mojo_environment_standalone',
+            'mojo_base.gyp:mojo_utility',
             'mojo_echo_bindings',
-            'mojo_system',
-            'mojo_utility',
+            '<(mojo_system_for_loadable_module)',
           ],
           'sources': [
             'examples/dbus_echo/dbus_echo_app.cc',