# 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.

{
  'conditions': [
    # In component mode (shared_lib), we build all of skia as a single DLL.
    # However, in the static mode, we need to build skia as multiple targets
    # in order to support the use case where a platform (e.g. Android) may
    # already have a copy of skia as a system library.
    ['component=="static_library"', {
      'targets': [
        {
          'target_name': 'skia_library',
          'type': 'static_library',
          # The optimize: 'max' scattered throughout are particularly
          # important when compiled by MSVC 2013, which seems 
          # to mis-link-time-compile code that's built with
          # different optimization levels. http://crbug.com/543583
          'variables': {
            'optimize': 'max',
          },
          'includes': [
            'skia_common.gypi',
            'skia_library.gypi',
            '../build/android/increase_size_for_speed.gypi',
            # Disable LTO due to compiler error
            # in mems_in_disjoint_alias_sets_p, at alias.c:393
            # crbug.com/422255
            '../build/android/disable_gcc_lto.gypi',
          ],
        },
      ],
    }],
    ['component=="static_library"', {
      'targets': [
        {
          'target_name': 'skia',
          # The optimize: 'max' scattered throughout are particularly
          # important when compiled by MSVC 2013, which seems 
          # to mis-link-time-compile code that's built with
          # different optimization levels. http://crbug.com/543583
          'variables': {
            'optimize': 'max',
          },
          'type': 'none',
          'dependencies': [
            'skia_library',
            'skia_chrome',
          ],
          'export_dependent_settings': [
            'skia_library',
            'skia_chrome',
          ],
          'direct_dependent_settings': {
            'conditions': [
              [ 'OS == "win"', {
                'defines': [
                  'GR_GL_FUNCTION_TYPE=__stdcall',
                ],
              }],
            ],
          },
        },
        {
          'target_name': 'skia_chrome',
          'type': 'static_library',
          'includes': [
            'skia_chrome.gypi',
            'skia_common.gypi',
            '../build/android/increase_size_for_speed.gypi',
          ],
        },
      ],
    },
    {  # component != static_library
      'targets': [
        {
          'target_name': 'skia',
          # The optimize: 'max' scattered throughout are particularly
          # important when compiled by MSVC 2013, which seems 
          # to mis-link-time-compile code that's built with
          # different optimization levels. http://crbug.com/543583
          'variables': {
            'optimize': 'max',
          },
          'type': 'shared_library',
          'includes': [
            # Include skia_common.gypi first since it contains filename
            # exclusion rules. This allows the following includes to override
            # the exclusion rules.
            'skia_common.gypi',
            'skia_chrome.gypi',
            'skia_library.gypi',
            '../build/android/increase_size_for_speed.gypi',
          ],
          'defines': [
            'SKIA_DLL',
            'SKIA_IMPLEMENTATION=1',
            'GR_GL_IGNORE_ES3_MSAA=0',
          ],
          'direct_dependent_settings': {
            'conditions': [
              [ 'OS == "win"', {
                'defines': [
                  'GR_GL_FUNCTION_TYPE=__stdcall',
                ],
              }],
            ],
            'defines': [
              'SKIA_DLL',
              'GR_GL_IGNORE_ES3_MSAA=0',
            ],
          },
        },
        {
          'target_name': 'skia_library',
          'type': 'none',
        },
        {
          'target_name': 'skia_chrome',
          'type': 'none',
        },
      ],
    }],
  ],

  # targets that are not dependent upon the component type
  'targets': [
    {
      'target_name': 'image_operations_bench',
      # The optimize: 'max' scattered throughout are particularly
      # important when compiled by MSVC 2013, which seems 
      # to mis-link-time-compile code that's built with
      # different optimization levels. http://crbug.com/543583
      'variables': {
        'optimize': 'max',
      },
      'type': 'executable',
      'dependencies': [
        '../base/base.gyp:base',
        'skia',
      ],
      'include_dirs': [
        '..',
      ],
      'sources': [
        'ext/image_operations_bench.cc',
      ],
    },
    {
      'target_name': 'filter_fuzz_stub',
      'type': 'executable',
      # The optimize: 'max' scattered throughout are particularly
      # important when compiled by MSVC 2013, which seems 
      # to mis-link-time-compile code that's built with
      # different optimization levels. http://crbug.com/543583
      'variables': {
        'optimize': 'max',
      },
      'dependencies': [
        '../base/base.gyp:base',
        '../base/base.gyp:test_support_base',
        'skia.gyp:skia',
      ],
      'sources': [
        'tools/filter_fuzz_stub/filter_fuzz_stub.cc',
      ],
      'includes': [
        '../build/android/increase_size_for_speed.gypi',
      ],
    },
    {
      'target_name': 'skia_mojo',
      'type': 'static_library',
      # The optimize: 'max' scattered throughout are particularly
      # important when compiled by MSVC 2013, which seems 
      # to mis-link-time-compile code that's built with
      # different optimization levels. http://crbug.com/543583
      'variables': {
        'optimize': 'max',
      },
      'dependencies': [
        'skia',
        '../base/base.gyp:base',
      ],
      'includes': [
        '../third_party/mojo/mojom_bindings_generator.gypi',
      ],
      'sources': [
        # Note: file list duplicated in GN build.
        'public/interfaces/bitmap.mojom',
        'public/type_converters.cc',
      ],
    },
  ],
}
