# Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

{
  'variables': {
    'dart_debug_optimization_level%': '2',
  },
  'target_defaults': {
    'configurations': {
      'Dart_Win_Base': {
        'abstract': 1,
        'defines': [
          '_HAS_EXCEPTIONS=0',  # disable C++ exceptions use in C++ std. libs.
        ],
      },
      'Dart_Win_ia32_Base': {
        'abstract': 1,
      },
      'Dart_Win_x64_Base': {
        'abstract': 1,
      },
      'Dart_Win_simarm_Base': {
        'abstract': 1,
      },
      'Dart_Win_simarm64_Base': {
        'abstract': 1,
      },
      'Dart_Win_simmips_Base': {
        'abstract': 1,
      },
      'Dart_Win_Debug': {
        'abstract': 1,
        'msvs_settings': {
          'VCCLCompilerTool': {
            'Optimization': '<(dart_debug_optimization_level)',
            'BasicRuntimeChecks': '0',  # disable /RTC1 when compiling /O2
            'DebugInformationFormat': '3',
            'ExceptionHandling': '0',
            'RuntimeTypeInfo': 'false',
            'OmitFramePointers': 'false',
            'RuntimeLibrary': '1',  # /MTd - Multi-threaded, static (debug)
          },
          'VCLinkerTool': {
            'LinkIncremental': '2',
            'GenerateDebugInformation': 'true',
            'StackReserveSize': '2097152',
            'AdditionalDependencies': [
              'advapi32.lib',
              'shell32.lib',
              'dbghelp.lib',
            ],
          },
        },
        # C4351 warns MSVC follows the C++ specification regarding array
        # initialization in member initializers.  Code that expects the
        # specified behavior should silence this warning.
        'msvs_disabled_warnings': [4351],
      },

      'Dart_Win_Release': {
        'abstract': 1,
        'msvs_settings': {
          'VCCLCompilerTool': {
            'Optimization': '2',
            'InlineFunctionExpansion': '2',
            'EnableIntrinsicFunctions': 'true',
            'FavorSizeOrSpeed': '0',
            'ExceptionHandling': '0',
            'RuntimeTypeInfo': 'false',
            'OmitFramePointers': 'false',
            'StringPooling': 'true',
            'RuntimeLibrary': '0',  # /MT - Multi-threaded, static
          },
          'VCLinkerTool': {
            'LinkIncremental': '1',
            'GenerateDebugInformation': 'true',
            'OptimizeReferences': '2',
            'EnableCOMDATFolding': '2',
            'StackReserveSize': '2097152',
            'AdditionalDependencies': [
              'advapi32.lib',
              'shell32.lib',
              'dbghelp.lib',
            ],
          },
        },
        # C4351 warns MSVC follows the C++ specification regarding array
        # initialization in member initializers.  Code that expects the
        # specified behavior should silence this warning.
        'msvs_disabled_warnings': [4351],
      },
    },
  },
}
