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

{
  'target_defaults': {
    'configurations': {
      'Default': {
        'msvs_configuration_platform': 'Win32',
      },
      'Default_x64': {
        'inherit_from': ['Default'],
        'msvs_configuration_platform': 'x64',
      },
    },
  },
  'targets': [
    {
      'target_name': 'test_safeseh_default',
      'type': 'executable',
      'msvs_settings': {
        # By default, msvs passes /SAFESEH for Link, but not for MASM.  In
        # order for test_safeseh_default to link successfully, we need to
        # explicitly specify /SAFESEH for MASM.
        'MASM': {
          'UseSafeExceptionHandlers': 'true',
        },
      },
      'sources': [
        'safeseh_hello.cc',
        'safeseh_zero.asm',
      ],
    },
    {
      'target_name': 'test_safeseh_no',
      'type': 'executable',
      'msvs_settings': {
        'VCLinkerTool': {
          'ImageHasSafeExceptionHandlers': 'false',
        },
      },
      'sources': [
        'safeseh_hello.cc',
        'safeseh_zero.asm',
      ],
    },
    {
      'target_name': 'test_safeseh_yes',
      'type': 'executable',
      'msvs_settings': {
        'VCLinkerTool': {
          'ImageHasSafeExceptionHandlers': 'true',
        },
        'MASM': {
          'UseSafeExceptionHandlers': 'true',
        },
      },
      'sources': [
        'safeseh_hello.cc',
        'safeseh_zero.asm',
      ],
    },
    {
      # x64 targets cannot have ImageHasSafeExceptionHandlers or
      # UseSafeExceptionHandlers set.
      'target_name': 'test_safeseh_x64',
      'type': 'executable',
      'configurations': {
        'Default': {
          'msvs_target_platform': 'x64',
        },
      },
      'sources': [
        'safeseh_hello.cc',
        'safeseh_zero64.asm',
      ],
    },
  ]
}