# Copyright 2013 Ben Vanik. All Rights Reserved.
{
  'default_configuration': 'release',

  'variables': {
    'configurations': {
      'debug': {
      },
      'release': {
      },
    },

    # LLVM paths.
    # TODO(benvanik): switch based on configuration.
    'llvm_path': 'build/llvm/debug/',
    'llvm_config': '<(llvm_path)bin/llvm-config',
  },


  'target_defaults': {
    'include_dirs': [
      'include/',
    ],

    'defines': [
      '__STDC_LIMIT_MACROS=1',
      '__STDC_CONSTANT_MACROS=1',
      '_ISOC99_SOURCE=1',
    ],
    'cflags': [
      '-std=c99',
    ],

    'configurations': {
      'debug': {
        'defines': [
          'DEBUG',
        ],
        'msvs_configuration_attributes': {
          'OutputDirectory': '<(DEPTH)\\build\\xenia\\debug',
        },
        'msvs_settings': {
          'VCCLCompilerTool': {
            'Optimization': '2',
            'BasicRuntimeChecks': '0',  # disable /RTC1 when compiling /O2
            'DebugInformationFormat': '3',
            'ExceptionHandling': '0',
            'RuntimeTypeInfo': 'false',
            'OmitFramePointers': 'false',
          },
          'VCLinkerTool': {
            'LinkIncremental': '2',
            'GenerateDebugInformation': 'true',
            'StackReserveSize': '2097152',
          },
        },
        'xcode_settings': {
          'GCC_OPTIMIZATION_LEVEL': '0',
        },
      },
      'release': {
        'defines': [
          'RELEASE',
          'NDEBUG',
        ],
        'msvs_configuration_attributes': {
          'OutputDirectory': '<(DEPTH)\\build\\xenia\\release',
        },
        'msvs_settings': {
          'VCCLCompilerTool': {
            'Optimization': '2',
            'InlineFunctionExpansion': '2',
            'EnableIntrinsicFunctions': 'true',
            'FavorSizeOrSpeed': '0',
            'ExceptionHandling': '0',
            'RuntimeTypeInfo': 'false',
            'OmitFramePointers': 'false',
            'StringPooling': 'true',
          },
          'VCLinkerTool': {
            'LinkIncremental': '1',
            'GenerateDebugInformation': 'true',
            'OptimizeReferences': '2',
            'EnableCOMDATFolding': '2',
            'StackReserveSize': '2097152',
          },
        },
      },
    },

    'msvs_configuration_platform': 'x64',
    'msvs_cygwin_shell': '0',
    'scons_settings': {
      'sconsbuild_dir': '<(DEPTH)/build/xenia/',
    },
    'xcode_settings': {
      'SYMROOT': '<(DEPTH)/build/xenia/',
      'ALWAYS_SEARCH_USER_PATHS': 'NO',
      'ARCHS': ['x86_64'],
      'GCC_C_LANGUAGE_STANDARD': 'c99',
      'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',
      'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES',
      'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'],
    },
  },
}