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     'includes': [ 'common_defines.gypi', ],
      7     'variables':
      8     {
      9         'angle_build_tests%': '1',
     10         'angle_build_samples%': '1',
     11         # angle_code is set to 1 for the core ANGLE targets defined in src/build_angle.gyp.
     12         # angle_code is set to 0 for test code, sample code, and third party code.
     13         # When angle_code is 1, we build with additional warning flags on Mac and Linux.
     14         'angle_code%': 0,
     15         'release_symbols%': 'true',
     16         'gcc_or_clang_warnings':
     17         [
     18             '-Wall',
     19             '-Wchar-subscripts',
     20             '-Werror',
     21             '-Wextra',
     22             '-Wformat=2',
     23             '-Winit-self',
     24             '-Wno-sign-compare',
     25             '-Wno-unused-function',
     26             '-Wno-unused-parameter',
     27             '-Wno-unknown-pragmas',
     28             '-Wpacked',
     29             '-Wpointer-arith',
     30             '-Wundef',
     31             '-Wwrite-strings',
     32             '-Wno-reorder',
     33             '-Wno-format-nonliteral',
     34         ],
     35     },
     36     'target_defaults':
     37     {
     38         'default_configuration': 'Debug',
     39         'variables':
     40         {
     41             'warn_as_error%': 1,
     42         },
     43         'target_conditions':
     44         [
     45             ['warn_as_error == 1',
     46             {
     47                 'msvs_settings':
     48                 {
     49                     'VCCLCompilerTool':
     50                     {
     51                         'WarnAsError': 'true',
     52                     },
     53                 },
     54             }],
     55         ],
     56         'configurations':
     57         {
     58             'Common_Base':
     59             {
     60                 'abstract': 1,
     61                 'msvs_configuration_attributes':
     62                 {
     63                     'OutputDirectory': '$(SolutionDir)$(ConfigurationName)_$(Platform)',
     64                     'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
     65                     'CharacterSet': '0',    # ASCII
     66                 },
     67                 'msvs_settings':
     68                 {
     69                     'VCCLCompilerTool':
     70                     {
     71                         'AdditionalOptions': ['/MP'],
     72                         'BufferSecurityCheck': 'true',
     73                         'DebugInformationFormat': '3',
     74                         'ExceptionHandling': '0',
     75                         'EnableFunctionLevelLinking': 'true',
     76                         'MinimalRebuild': 'false',
     77                         'RuntimeTypeInfo': 'true',
     78                         'WarningLevel': '4',
     79                     },
     80                     'VCLinkerTool':
     81                     {
     82                         'FixedBaseAddress': '1',
     83                         'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
     84                         'MapFileName': '$(OutDir)\\$(TargetName).map',
     85                         # Most of the executables we'll ever create are tests
     86                         # and utilities with console output.
     87                         'SubSystem': '1',    # /SUBSYSTEM:CONSOLE
     88                     },
     89                     'VCResourceCompilerTool':
     90                     {
     91                         'Culture': '1033',
     92                     },
     93                 },
     94             },    # Common_Base
     95 
     96             'Debug_Base':
     97             {
     98                 'abstract': 1,
     99                 'msvs_settings':
    100                 {
    101                     'VCCLCompilerTool':
    102                     {
    103                         'Optimization': '0',    # /Od
    104                         'BasicRuntimeChecks': '3',
    105                         'RuntimeLibrary': '1',    # /MTd (debug static)
    106                     },
    107                     'VCLinkerTool':
    108                     {
    109                         'GenerateDebugInformation': 'true',
    110                         'LinkIncremental': '2',
    111                     },
    112                 },
    113                 'xcode_settings':
    114                 {
    115                     'COPY_PHASE_STRIP': 'NO',
    116                     'GCC_OPTIMIZATION_LEVEL': '0',
    117                 },
    118             },    # Debug_Base
    119 
    120             'Release_Base':
    121             {
    122                 'abstract': 1,
    123                 'msvs_settings':
    124                 {
    125                     'VCCLCompilerTool':
    126                     {
    127                         'Optimization': '2',    # /Os
    128                         'RuntimeLibrary': '0',    # /MT (static)
    129                     },
    130                     'VCLinkerTool':
    131                     {
    132                         'GenerateDebugInformation': '<(release_symbols)',
    133                         'LinkIncremental': '1',
    134                     },
    135                 },
    136             },    # Release_Base
    137 
    138             'x86_Base':
    139             {
    140                 'abstract': 1,
    141                 'msvs_configuration_platform': 'Win32',
    142                 'msvs_settings':
    143                 {
    144                     'VCLinkerTool':
    145                     {
    146                         'TargetMachine': '1',
    147                         'AdditionalLibraryDirectories':
    148                         [
    149                             '<(windows_sdk_path)/Lib/win8/um/x86',
    150                         ],
    151                     },
    152                     'VCLibrarianTool':
    153                     {
    154                         'TargetMachine': '1',
    155                         'AdditionalLibraryDirectories':
    156                         [
    157                             '<(windows_sdk_path)/Lib/win8/um/x86',
    158                         ],
    159                     },
    160                 },
    161             }, # x86_Base
    162 
    163             'x64_Base':
    164             {
    165                 'abstract': 1,
    166                 'msvs_configuration_platform': 'x64',
    167                 'msvs_settings':
    168                 {
    169                     'VCLinkerTool':
    170                     {
    171                         'TargetMachine': '17', # x86 - 64
    172                         'AdditionalLibraryDirectories':
    173                         [
    174                             '<(windows_sdk_path)/Lib/win8/um/x64',
    175                         ],
    176                     },
    177                     'VCLibrarianTool':
    178                     {
    179                         'AdditionalLibraryDirectories':
    180                         [
    181                             '<(windows_sdk_path)/Lib/win8/um/x64',
    182                         ],
    183                     },
    184                 },
    185             },    # x64_Base
    186 
    187             # Concrete configurations
    188             'Debug':
    189             {
    190                 'inherit_from': ['Common_Base', 'x86_Base', 'Debug_Base'],
    191             },
    192             'Release':
    193             {
    194                 'inherit_from': ['Common_Base', 'x86_Base', 'Release_Base'],
    195             },
    196             'conditions':
    197             [
    198                 [ 'OS == "win" and MSVS_VERSION != "2010e"',
    199                 {
    200                     'Debug_x64':
    201                     {
    202                         'inherit_from': ['Common_Base', 'x64_Base', 'Debug_Base'],
    203                     },
    204                     'Release_x64':
    205                     {
    206                         'inherit_from': ['Common_Base', 'x64_Base', 'Release_Base'],
    207                     },
    208                 }],
    209             ],
    210         },    # configurations
    211     },    # target_defaults
    212     'conditions':
    213     [
    214         ['OS == "win"',
    215         {
    216             'target_defaults':
    217             {
    218                 'msvs_cygwin_dirs': ['../third_party/cygwin'],
    219             },
    220         },
    221         { # OS != win
    222             'target_defaults':
    223             {
    224                 'cflags': [ '-fPIC' ],
    225             },
    226         }],
    227         ['OS != "win" and OS != "mac"',
    228         {
    229             'target_defaults':
    230             {
    231                 'cflags':
    232                 [
    233                     '-pthread',
    234                     '-fno-exceptions',
    235                 ],
    236                 'ldflags':
    237                 [
    238                     '-pthread',
    239                 ],
    240                 'configurations':
    241                 {
    242                     'Debug':
    243                     {
    244                         'variables':
    245                         {
    246                             'debug_optimize%': '0',
    247                         },
    248                         'defines':
    249                         [
    250                             '_DEBUG',
    251                         ],
    252                         'cflags':
    253                         [
    254                             '-O>(debug_optimize)',
    255                             '-g',
    256                         ],
    257                     }
    258                 },
    259             },
    260         }],
    261         ['angle_code==1',
    262         {
    263             'target_defaults':
    264             {
    265                 'conditions':
    266                 [
    267                     ['OS == "mac"',
    268                     {
    269                         'xcode_settings':
    270                         {
    271                             'WARNING_CFLAGS': ['<@(gcc_or_clang_warnings)']
    272                         },
    273                     }],
    274                     ['OS != "win" and OS != "mac"',
    275                     {
    276                         'cflags': ['<@(gcc_or_clang_warnings)']
    277                     }],
    278                 ]
    279             }
    280         }],
    281     ],
    282 }
    283