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