Home | History | Annotate | Download | only in build
      1 # Copyright (c) 2010 The ANGLE Project Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 {
      6   'variables': {
      7     'component%': 'static_library',
      8     # angle_code is set to 1 for the core ANGLE targets defined in src/build_angle.gyp.
      9     # angle_code is set to 0 for test code, sample code, and third party code.
     10     # When angle_code is 1, we build with additional warning flags on Mac and Linux.
     11     'angle_code%': 0,
     12     'gcc_or_clang_warnings': [
     13       '-Wall',
     14       '-Wchar-subscripts',
     15       '-Werror',
     16       '-Wextra',
     17       '-Wformat=2',
     18       '-Winit-self',
     19       '-Wno-sign-compare',
     20       '-Wno-unused-function',
     21       '-Wno-unused-parameter',
     22       '-Wno-unknown-pragmas',
     23       '-Wpacked',
     24       '-Wpointer-arith',
     25       '-Wundef',
     26       '-Wwrite-strings',
     27     ],
     28   },
     29   'target_defaults': {
     30     'default_configuration': 'Debug',
     31     'variables': {
     32       'warn_as_error%': 1,
     33     },
     34     'target_conditions': [
     35       ['warn_as_error == 1', {
     36         'msvs_settings': {
     37           'VCCLCompilerTool': {
     38             'WarnAsError': 'true',
     39           },
     40         },
     41       }],
     42     ],
     43     'configurations': {
     44       'Common': {
     45         'abstract': 1,
     46         'msvs_configuration_attributes': {
     47           'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
     48           'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
     49           'CharacterSet': '1',  # UNICODE
     50         },
     51         'msvs_configuration_platform': 'Win32',
     52         'msvs_settings': {
     53           'VCCLCompilerTool': {
     54             'BufferSecurityCheck': 'true',
     55             'DebugInformationFormat': '3',
     56             # TODO(alokp): Disable exceptions before integrating with chromium.
     57             #'ExceptionHandling': '0',
     58             'EnableFunctionLevelLinking': 'true',
     59             'MinimalRebuild': 'false',
     60             'PreprocessorDefinitions': [
     61               '_CRT_SECURE_NO_DEPRECATE',
     62               '_HAS_EXCEPTIONS=0',
     63               '_WIN32_WINNT=0x0600',
     64               '_WINDOWS',
     65               'NOMINMAX',
     66               'WIN32',
     67               'WIN32_LEAN_AND_MEAN',
     68               'WINVER=0x0600',
     69             ],
     70             'RuntimeTypeInfo': 'false',
     71             'WarningLevel': '4',
     72             'DisableSpecificWarnings': [4100, 4127, 4189, 4239, 4244, 4245, 4512, 4702],
     73           },
     74           'VCLinkerTool': {
     75             'FixedBaseAddress': '1',
     76             'GenerateDebugInformation': 'true',
     77             'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
     78             'MapFileName': '$(OutDir)\\$(TargetName).map',
     79             # Most of the executables we'll ever create are tests
     80             # and utilities with console output.
     81             'SubSystem': '1',  # /SUBSYSTEM:CONSOLE
     82             'AdditionalLibraryDirectories': [
     83               '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86',
     84             ],
     85           },
     86           'VCLibrarianTool': {
     87             'AdditionalLibraryDirectories': [
     88               '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86',
     89             ],
     90           },
     91           'VCResourceCompilerTool': {
     92             'Culture': '1033',
     93           },
     94         },
     95         'msvs_system_include_dirs': [
     96           '$(ProgramFiles)/Windows Kits/8.0/Include/shared',
     97           '$(ProgramFiles)/Windows Kits/8.0/Include/um',
     98         ],
     99       },  # Common
    100       'Debug': {
    101         'inherit_from': ['Common'],
    102         'msvs_settings': {
    103           'VCCLCompilerTool': {
    104             'Optimization': '0',  # /Od
    105             'PreprocessorDefinitions': ['_DEBUG'],
    106             'BasicRuntimeChecks': '3',
    107             'RuntimeLibrary': '1',  # /MTd (debug static)
    108           },
    109           'VCLinkerTool': {
    110             'LinkIncremental': '2',
    111           },
    112         },
    113         'xcode_settings': {
    114           'COPY_PHASE_STRIP': 'NO',
    115           'GCC_OPTIMIZATION_LEVEL': '0',
    116         },
    117       },  # Debug
    118       'Release': {
    119         'inherit_from': ['Common'],
    120         'msvs_settings': {
    121           'VCCLCompilerTool': {
    122             'Optimization': '2',  # /Os
    123             'PreprocessorDefinitions': ['NDEBUG'],
    124             'RuntimeLibrary': '0',  # /MT (static)
    125           },
    126           'VCLinkerTool': {
    127             'LinkIncremental': '1',
    128           },
    129         },
    130       },  # Release
    131     },  # configurations
    132     'conditions': [
    133       ['component=="shared_library"', {
    134         'defines': ['COMPONENT_BUILD'],
    135       }],
    136     ],
    137   },  # target_defaults
    138   'conditions': [
    139     ['OS=="win"', {
    140       'target_defaults': {
    141         'msvs_cygwin_dirs': ['../third_party/cygwin'],
    142       },
    143     }],
    144     ['OS!="win" and OS!="mac"', {
    145       'target_defaults': {
    146         'cflags': [
    147           '-pthread',
    148           '-fno-exceptions',
    149         ],
    150         'ldflags': [
    151           '-pthread',
    152         ],
    153         'configurations': {
    154           'Debug': {
    155             'variables': {
    156               'debug_optimize%': '0',
    157             },
    158             'defines': [
    159               '_DEBUG',
    160             ],
    161             'cflags': [
    162               '-O>(debug_optimize)',
    163               '-g',
    164             ],
    165           }
    166         },
    167       },
    168     }],
    169     ['angle_code==1', {
    170       'target_defaults': {
    171         'conditions': [
    172           ['OS=="mac"', {
    173             'xcode_settings': {
    174               'WARNING_CFLAGS': ['<@(gcc_or_clang_warnings)']
    175             },
    176           }],
    177           ['OS!="win" and OS!="mac"', {
    178             'cflags': ['<@(gcc_or_clang_warnings)']
    179           }],
    180         ]
    181       }
    182     }],
    183   ],
    184 }
    185 
    186 # Local Variables:
    187 # tab-width:2
    188 # indent-tabs-mode:nil
    189 # End:
    190 # vim: set expandtab tabstop=2 shiftwidth=2:
    191