# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is all.gyp file for Android to prevent breakage in Android and other
# platform; It will be churning a lot in the short term and eventually be merged
# into all.gyp.

{
  'variables': {
    # A hook that can be overridden in other repositories to add additional
    # compilation targets to 'All'
    'android_app_targets%': [],
  },
  'targets': [
    {
      'target_name': 'All',
      'type': 'none',
      'dependencies': [
        '../content/content_shell_and_tests.gyp:content_shell_apk',
        '../mojo/mojo.gyp:mojo_shell_apk',
        '<@(android_app_targets)',
        'android_builder_tests',
        '../android_webview/android_webview.gyp:android_webview_apk',
        '../chrome/chrome.gyp:chromium_testshell',
        '../remoting/remoting.gyp:remoting_apk',
        # TODO(nyquist) This should instead by a target for sync when all of
        # the sync-related code for Android has been upstreamed.
        # See http://crbug.com/159203
        '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
      ],
    }, # target_name: All
    {
      'target_name': 'blink_tests',
      'type': 'none',
      'dependencies': [
        '../third_party/WebKit/public/all.gyp:all_blink',
        '../content/content_shell_and_tests.gyp:content_shell_apk',
        '../breakpad/breakpad.gyp:dump_syms#host',
        '../breakpad/breakpad.gyp:minidump_stackwalk#host',
      ],
    }, # target_name: blink_tests
    {
      # TODO(jochen): Eventually remove this target after everybody and the
      # bots started to use blink_tests only.
      'target_name': 'all_webkit',
      'type': 'none',
      'dependencies':   [
        'blink_tests',
      ],
    }, # target_name: all_webkit
    {
      # The current list of tests for android.  This is temporary
      # until the full set supported.  If adding a new test here,
      # please also add it to build/android/pylib/gtest/gtest_config.py,
      # else the test is not run.
      #
      # WARNING:
      # Do not add targets here without communicating the implications
      # on tryserver triggers and load.  Discuss with jrg please.
      'target_name': 'android_builder_tests',
      'type': 'none',
      'dependencies': [
        '../android_webview/android_webview.gyp:android_webview_unittests',
        '../base/android/jni_generator/jni_generator.gyp:jni_generator_tests',
        '../base/base.gyp:base_unittests',
        '../breakpad/breakpad.gyp:breakpad_unittests',
        # Also compile the tools needed to deal with minidumps, they are
        # needed to run minidump tests upstream.
        '../breakpad/breakpad.gyp:dump_syms#host',
        '../breakpad/breakpad.gyp:symupload#host',
        '../breakpad/breakpad.gyp:minidump_dump#host',
        '../breakpad/breakpad.gyp:minidump_stackwalk#host',
        '../build/android/tests/multiple_proguards/multiple_proguards.gyp:multiple_proguards_test_apk',
        '../cc/cc_tests.gyp:cc_perftests_apk',
        '../cc/cc_tests.gyp:cc_unittests',
        '../chrome/chrome.gyp:unit_tests',
        '../components/components_tests.gyp:components_unittests',
        '../content/content_shell_and_tests.gyp:content_browsertests',
        '../content/content_shell_and_tests.gyp:content_gl_tests',
        '../content/content_shell_and_tests.gyp:content_shell_test_apk',
        '../content/content_shell_and_tests.gyp:content_unittests',
        '../gpu/gpu.gyp:gl_tests',
        '../gpu/gpu.gyp:gpu_unittests',
        '../ipc/ipc.gyp:ipc_tests',
        '../media/media.gyp:media_perftests_apk',
        '../media/media.gyp:media_unittests',
        '../net/net.gyp:net_unittests',
        '../sandbox/sandbox.gyp:sandbox_linux_unittests',
        '../sql/sql.gyp:sql_unittests',
        '../sync/sync.gyp:sync_unit_tests',
        '../third_party/WebKit/public/all.gyp:*',
        '../tools/android/android_tools.gyp:android_tools',
        '../tools/android/android_tools.gyp:memconsumer',
        '../tools/android/findbugs_plugin/findbugs_plugin.gyp:findbugs_plugin_test',
        '../ui/ui_unittests.gyp:ui_unittests',
        # Required by ui_unittests.
        # TODO(wangxianzhu): It'd better let ui_unittests depend on it, but
        # this would cause circular gyp dependency which needs refactoring the
        # gyps to resolve.
        '../chrome/chrome_resources.gyp:packed_resources',
      ],
      'conditions': [
        ['"<(gtest_target_type)"=="shared_library"', {
          'dependencies': [
            # Unit test bundles packaged as an apk.
            '../android_webview/android_webview.gyp:android_webview_unittests_apk',
            '../base/base.gyp:base_unittests_apk',
            '../cc/cc_tests.gyp:cc_unittests_apk',
            '../chrome/chrome.gyp:unit_tests_apk',
            '../components/components_tests.gyp:components_unittests_apk',
            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
            '../content/content_shell_and_tests.gyp:content_gl_tests_apk',
            '../content/content_shell_and_tests.gyp:content_unittests_apk',
            '../content/content_shell_and_tests.gyp:video_decode_accelerator_unittest_apk',
            '../gpu/gpu.gyp:gl_tests_apk',
            '../gpu/gpu.gyp:gpu_unittests_apk',
            '../ipc/ipc.gyp:ipc_tests_apk',
            '../media/media.gyp:media_unittests_apk',
            '../net/net.gyp:net_unittests_apk',
            '../sandbox/sandbox.gyp:sandbox_linux_jni_unittests_apk',
            '../sql/sql.gyp:sql_unittests_apk',
            '../sync/sync.gyp:sync_unit_tests_apk',
            '../ui/ui_unittests.gyp:ui_unittests_apk',
            '../android_webview/android_webview.gyp:android_webview_test_apk',
            '../chrome/chrome.gyp:chromium_testshell_test_apk',
            '../chrome/chrome.gyp:chromium_testshell_uiautomator_tests',
            '../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests_apk'
          ],
        }],
      ],
    },
    {
      # WebRTC Android APK tests.
      'target_name': 'android_builder_webrtc',
      'type': 'none',
      'variables': {
        # Set default value for include_tests to '0'. It is normally only
        # used in WebRTC GYP files. It is set to '1' only when building
        # WebRTC for Android, inside a Chromium checkout.
        'include_tests%': 0,
      },
      'conditions': [
        ['"<(gtest_target_type)"=="shared_library" and include_tests==1', {
          'dependencies': [
            '../third_party/webrtc/build/apk_tests.gyp:*',
          ],
        }],
      ],
    },  # target_name: android_builder_webrtc
    {
      # WebRTC Chromium tests to run on Android.
      'target_name': 'android_builder_chromium_webrtc',
      'type': 'none',
      'dependencies': [
        '../content/content_shell_and_tests.gyp:content_browsertests',
        '../tools/android/android_tools.gyp:android_tools',
        '../tools/android/android_tools.gyp:memconsumer',
      ],
      'conditions': [
        ['"<(gtest_target_type)"=="shared_library"', {
          'dependencies': [
            # Unit test bundles packaged as an apk.
            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
          ],
        }],
      ],
    },  # target_name: android_builder_chromium_webrtc
    {
      # Experimental / in-progress targets that are expected to fail
      # but we still try to compile them on bots (turning the stage
      # orange, not red).
      'target_name': 'android_experimental',
      'type': 'none',
      'dependencies': [
      ],
    },
    {
      # In-progress targets that are expected to fail and are NOT run
      # on any bot.
      'target_name': 'android_in_progress',
      'type': 'none',
      'dependencies': [
      ],
    },
  ],  # targets
}