# Copyright (c) 2010 The ANGLE Project Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. { 'variables': { 'component%': 'static_library', # angle_code is set to 1 for the core ANGLE targets defined in src/build_angle.gyp. # angle_code is set to 0 for test code, sample code, and third party code. # When angle_code is 1, we build with additional warning flags on Mac and Linux. 'angle_code%': 0, 'gcc_or_clang_warnings': [ '-Wall', '-Wchar-subscripts', '-Werror', '-Wextra', '-Wformat=2', '-Winit-self', '-Wno-sign-compare', '-Wno-unused-function', '-Wno-unused-parameter', '-Wno-unknown-pragmas', '-Wpacked', '-Wpointer-arith', '-Wundef', '-Wwrite-strings', ], }, 'target_defaults': { 'default_configuration': 'Debug', 'variables': { 'warn_as_error%': 1, }, 'target_conditions': [ ['warn_as_error == 1', { 'msvs_settings': { 'VCCLCompilerTool': { 'WarnAsError': 'true', }, }, }], ], 'configurations': { 'Common': { 'abstract': 1, 'msvs_configuration_attributes': { 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)', 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', 'CharacterSet': '1', # UNICODE }, 'msvs_configuration_platform': 'Win32', 'msvs_settings': { 'VCCLCompilerTool': { 'BufferSecurityCheck': 'true', 'DebugInformationFormat': '3', # TODO(alokp): Disable exceptions before integrating with chromium. #'ExceptionHandling': '0', 'EnableFunctionLevelLinking': 'true', 'MinimalRebuild': 'false', 'PreprocessorDefinitions': [ '_CRT_SECURE_NO_DEPRECATE', '_HAS_EXCEPTIONS=0', '_WIN32_WINNT=0x0600', '_WINDOWS', 'NOMINMAX', 'WIN32', 'WIN32_LEAN_AND_MEAN', 'WINVER=0x0600', ], 'RuntimeTypeInfo': 'false', 'WarningLevel': '4', 'DisableSpecificWarnings': [4100, 4127, 4189, 4239, 4244, 4245, 4512, 4702], }, 'VCLinkerTool': { 'FixedBaseAddress': '1', 'GenerateDebugInformation': 'true', 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib', 'MapFileName': '$(OutDir)\\$(TargetName).map', # Most of the executables we'll ever create are tests # and utilities with console output. 'SubSystem': '1', # /SUBSYSTEM:CONSOLE 'AdditionalLibraryDirectories': [ '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86', ], }, 'VCLibrarianTool': { 'AdditionalLibraryDirectories': [ '$(ProgramFiles)/Windows Kits/8.0/Lib/win8/um/x86', ], }, 'VCResourceCompilerTool': { 'Culture': '1033', }, }, 'msvs_system_include_dirs': [ '$(ProgramFiles)/Windows Kits/8.0/Include/shared', '$(ProgramFiles)/Windows Kits/8.0/Include/um', ], }, # Common 'Debug': { 'inherit_from': ['Common'], 'msvs_settings': { 'VCCLCompilerTool': { 'Optimization': '0', # /Od 'PreprocessorDefinitions': ['_DEBUG'], 'BasicRuntimeChecks': '3', 'RuntimeLibrary': '1', # /MTd (debug static) }, 'VCLinkerTool': { 'LinkIncremental': '2', }, }, 'xcode_settings': { 'COPY_PHASE_STRIP': 'NO', 'GCC_OPTIMIZATION_LEVEL': '0', }, }, # Debug 'Release': { 'inherit_from': ['Common'], 'msvs_settings': { 'VCCLCompilerTool': { 'Optimization': '2', # /Os 'PreprocessorDefinitions': ['NDEBUG'], 'RuntimeLibrary': '0', # /MT (static) }, 'VCLinkerTool': { 'LinkIncremental': '1', }, }, }, # Release }, # configurations 'conditions': [ ['component=="shared_library"', { 'defines': ['COMPONENT_BUILD'], }], ], }, # target_defaults 'conditions': [ ['OS=="win"', { 'target_defaults': { 'msvs_cygwin_dirs': ['../third_party/cygwin'], }, }], ['OS!="win" and OS!="mac"', { 'target_defaults': { 'cflags': [ '-pthread', '-fno-exceptions', ], 'ldflags': [ '-pthread', ], 'configurations': { 'Debug': { 'variables': { 'debug_optimize%': '0', }, 'defines': [ '_DEBUG', ], 'cflags': [ '-O>(debug_optimize)', '-g', ], } }, }, }], ['angle_code==1', { 'target_defaults': { 'conditions': [ ['OS=="mac"', { 'xcode_settings': { 'WARNING_CFLAGS': ['<@(gcc_or_clang_warnings)'] }, }], ['OS!="win" and OS!="mac"', { 'cflags': ['<@(gcc_or_clang_warnings)'] }], ] } }], ], } # Local Variables: # tab-width:2 # indent-tabs-mode:nil # End: # vim: set expandtab tabstop=2 shiftwidth=2: