| # Copyright 2009 The Chromium 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': { |
| 'variables': { |
| 'clang%': 0, |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'clang%': 1, |
| }], |
| ], |
| }, |
| 'clang%': '<(clang)', |
| |
| 'android_api_level%': '', |
| |
| 'mac_sdk%': '', |
| 'mac_deployment_target%': '', |
| |
| 'target_arch%': 'x64', |
| }, |
| |
| 'target_defaults': { |
| 'includes': [ |
| 'filename_rules.gypi', |
| ], |
| 'conditions': [ |
| |
| ['OS=="mac"', { |
| 'xcode_settings': { |
| 'ALWAYS_SEARCH_USER_PATHS': 'NO', |
| 'GCC_C_LANGUAGE_STANDARD': 'c99', # -std=c99 |
| 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks |
| 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic |
| 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions |
| 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti |
| 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings |
| |
| # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden |
| 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', |
| |
| 'GCC_OBJC_CALL_CXX_CDTORS': 'YES', # -fobjc-call-cxx-cdtors |
| 'GCC_PRECOMPILE_PREFIX_HEADER': 'NO', |
| 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden |
| 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror |
| 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof |
| 'OTHER_CFLAGS': [ |
| '-fno-strict-aliasing', # See http://crbug.com/32204 |
| '-fstack-protector-all', # Implies -fstack-protector |
| ], |
| 'USE_HEADERMAP': 'NO', |
| 'WARNING_CFLAGS': [ |
| '-Wall', |
| '-Wendif-labels', |
| '-Wextra', |
| |
| # Don't warn about unused function parameters. |
| '-Wno-unused-parameter', |
| |
| # Don't warn about the "struct foo f = {0};" initialization |
| # pattern. |
| '-Wno-missing-field-initializers', |
| ], |
| |
| 'conditions': [ |
| ['clang!=0', { |
| 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14', # -std=c++14 |
| |
| # Don't link in libarclite_macosx.a, see http://crbug.com/156530. |
| 'CLANG_LINK_OBJC_RUNTIME': 'NO', # No -fobjc-link-runtime |
| |
| # CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS maps to |
| # -Wobjc-missing-property-synthesis |
| 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'YES', |
| |
| 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0', |
| 'WARNING_CFLAGS': [ |
| '-Wexit-time-destructors', |
| '-Wextra-semi', |
| '-Wheader-hygiene', |
| '-Wimplicit-fallthrough', |
| '-Wno-selector-type-mismatch', |
| '-Wsign-compare', |
| '-Wstring-conversion', |
| ], |
| }, { # else: clang==0 |
| 'GCC_VERSION': '4.2', |
| }], |
| |
| ['mac_sdk!=""', { |
| 'SDKROOT': 'macosx<(mac_sdk)', # -isysroot |
| }], |
| |
| ['mac_deployment_target!=""', { |
| # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min |
| 'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)', |
| }], |
| |
| ['target_arch=="ia32"', { |
| 'ARCHS': [ |
| 'i386', |
| ], |
| }], |
| ['target_arch=="x64"', { |
| 'ARCHS': [ |
| 'x86_64', |
| ], |
| }], |
| ], |
| |
| 'target_conditions': [ |
| ['_type=="executable"', { |
| 'OTHER_LDFLAGS': [ |
| '-Wl,-pie', # Position-independent executable (MH_PIE) |
| ], |
| }], |
| ], |
| |
| }, |
| }], |
| |
| ['OS=="linux" or OS=="android"', { |
| 'cflags': [ |
| '-fPIC', |
| '-fno-exceptions', |
| '-fno-strict-aliasing', # See http://crbug.com/32204 |
| '-fstack-protector-all', # Implies -fstack-protector |
| '-fvisibility=hidden', |
| '-g', |
| '-pipe', |
| '-pthread', |
| '-Wall', |
| '-Werror', |
| '-Wextra', |
| '-Wno-unused-parameter', |
| '-Wno-missing-field-initializers', |
| ], |
| 'cflags_cc': [ |
| '-fno-rtti', |
| '-fvisibility-inlines-hidden', |
| '-std=c++14', |
| ], |
| 'defines': [ |
| '_FILE_OFFSET_BITS=64', |
| ], |
| 'ldflags': [ |
| '-fPIC', |
| '-pthread', |
| '-Wl,--as-needed', |
| '-Wl,-z,noexecstack', |
| ], |
| |
| 'conditions': [ |
| ['clang!=0', { |
| 'cflags': [ |
| '-Wexit-time-destructors', |
| '-Wextra-semi', |
| '-Wheader-hygiene', |
| '-Wimplicit-fallthrough', |
| '-Wsign-compare', |
| '-Wstring-conversion', |
| ], |
| }, { # else: clang==0 |
| 'conditions': [ |
| ['target_arch=="ia32"', { |
| 'cflags': [ |
| '-msse2', |
| '-mfpmath=sse', |
| ], |
| }], |
| ], |
| }], |
| |
| ['OS=="linux"', { |
| 'conditions': [ |
| ['target_arch=="ia32"', { |
| 'cflags': [ |
| '-m32', |
| ], |
| 'ldflags': [ |
| '-m32', |
| ], |
| }], |
| ['target_arch=="x64"', { |
| 'cflags': [ |
| '-m64', |
| ], |
| 'ldflags': [ |
| '-m64', |
| ], |
| }], |
| ], |
| }], |
| |
| ['OS=="android"', { |
| 'conditions': [ |
| ['android_api_level!=""', { |
| 'defines': [ |
| # With deprecated headers, this was available by #including |
| # <android/api-level.h>, but with unified headers, the desired |
| # value must be pushed into the build from the outside when |
| # building with GCC. See |
| # https://android.googlesource.com/platform/ndk/+/master/docs/UnifiedHeaders.md. |
| # It’s harmless to define this when building with Clang. |
| '__ANDROID_API__=<(android_api_level)', |
| ], |
| }], |
| ], |
| }], |
| ], |
| |
| 'target_conditions': [ |
| ['_type=="executable"', { |
| 'ldflags': [ |
| '-pie', |
| ], |
| }], |
| ], |
| }], |
| |
| ['OS=="win"', { |
| 'msvs_configuration_attributes': { |
| 'CharacterSet': '1', |
| }, |
| 'msvs_settings': { |
| 'VCCLCompilerTool': { |
| 'WarningLevel': '4', |
| 'WarnAsError': 'true', |
| 'DebugInformationFormat': '3', |
| 'ExceptionHandling': '0', |
| 'RuntimeTypeInfo': 'false', |
| 'BufferSecurityCheck': 'true', |
| 'EnableFunctionLevelLinking': 'true', |
| 'AdditionalOptions': [ |
| '/bigobj', # Maximum 2^32 sections in .obj files (default 2^16). |
| ], |
| }, |
| 'VCLinkerTool': { |
| 'GenerateDebugInformation': 'true', |
| 'RandomizedBaseAddress': '2', # /DYNAMICBASE. |
| 'SubSystem': '1', |
| }, |
| }, |
| 'msvs_disabled_warnings': [ |
| 4100, # Unreferenced formal parameter. |
| 4127, # Conditional expression is constant. |
| 4324, # Structure was padded due to alignment specifier. |
| 4351, # New behavior: elements of array will be default initialized. |
| 4577, # 'noexcept' used with no exception handling mode specified. |
| 4996, # 'X' was declared deprecated. |
| ], |
| 'defines': [ |
| '_HAS_EXCEPTIONS=0', |
| '_CRT_SECURE_NO_WARNINGS', |
| 'NOMINMAX', |
| 'WIN32_LEAN_AND_MEAN', |
| ], |
| }], |
| |
| ], |
| 'default_configuration': 'Debug', |
| 'configurations': { |
| 'Release': { |
| 'defines': [ |
| 'NDEBUG', |
| ], |
| 'conditions': [ |
| |
| ['OS=="mac"', { |
| 'xcode_settings': { |
| 'DEAD_CODE_STRIPPING': 'YES', # -Wl,-dead_strip |
| 'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym', |
| 'GCC_OPTIMIZATION_LEVEL': '3', |
| |
| 'target_conditions': [ |
| ['_type=="executable" or _type=="shared_library" or \ |
| _type=="loadable_module"', { |
| 'DEPLOYMENT_POSTPROCESSING': 'YES', |
| 'STRIP_INSTALLED_PRODUCT': 'YES', |
| }], |
| ['_type=="shared_library" or _type=="loadable_module"', { |
| 'STRIPFLAGS': '-x', |
| }], |
| ], |
| |
| }, |
| }], |
| |
| ['OS=="linux" or OS=="android"', { |
| 'cflags': [ |
| '-O3', |
| '-fdata-sections', |
| '-ffunction-sections', |
| ], |
| 'ldflags': [ |
| '-Wl,-O1', |
| '-Wl,--gc-sections', |
| ], |
| |
| 'conditions': [ |
| ['clang==0', { |
| 'cflags': [ |
| '-fno-ident', |
| ], |
| }], |
| ], |
| |
| }], |
| |
| ['OS=="win"', { |
| 'msvs_configuration_platform': 'Win32', |
| 'msvs_settings': { |
| 'VCCLCompilerTool': { |
| 'RuntimeLibrary': '0', # /MT. |
| 'Optimization': '3', |
| 'AdditionalOptions': [ |
| '/Zo', # Improve debugging optimized builds. |
| ], |
| }, |
| 'VCLibrarianTool': { |
| 'TargetMachine': '1', # x86. |
| }, |
| 'VCLinkerTool': { |
| 'MinimumRequiredVersion': '5.01', # XP. |
| 'TargetMachine': '1', # x86. |
| }, |
| }, |
| }], |
| |
| ], |
| }, |
| 'Debug': { |
| 'conditions': [ |
| |
| ['OS=="mac"', { |
| 'xcode_settings': { |
| 'COPY_PHASE_STRIP': 'NO', |
| 'DEBUG_INFORMATION_FORMAT': 'dwarf', |
| 'GCC_OPTIMIZATION_LEVEL': '0', |
| }, |
| }], |
| |
| ['OS=="linux" or OS=="android"', { |
| 'cflags': [ |
| '-O0', |
| ], |
| }], |
| |
| ['OS=="win"', { |
| 'msvs_configuration_platform': 'Win32', |
| 'msvs_settings': { |
| 'VCCLCompilerTool': { |
| 'RuntimeLibrary': '1', # /MTd. |
| 'Optimization': '0', |
| }, |
| 'VCLibrarianTool': { |
| 'TargetMachine': '1', # x86. |
| }, |
| 'VCLinkerTool': { |
| 'MinimumRequiredVersion': '5.01', # XP. |
| 'TargetMachine': '1', # x86. |
| }, |
| }, |
| 'defines': [ |
| '_DEBUG', |
| '_ITERATOR_DEBUG_LEVEL=2', |
| ], |
| }], |
| |
| ], |
| }, |
| |
| 'conditions': [ |
| ['OS=="win"', { |
| # gyp-ninja seems to require these, but we don't use them. |
| 'Debug_x64': { |
| 'inherit_from': ['Debug'], |
| 'msvs_configuration_platform': 'x64', |
| 'msvs_settings': { |
| 'VCLibrarianTool': { |
| 'TargetMachine': '17', # x64. |
| }, |
| 'VCLinkerTool': { |
| 'MinimumRequiredVersion': '5.02', # Server 2003. |
| 'TargetMachine': '17', # x64. |
| }, |
| }, |
| }, |
| 'Release_x64': { |
| 'inherit_from': ['Release'], |
| 'msvs_configuration_platform': 'x64', |
| 'msvs_settings': { |
| 'VCLibrarianTool': { |
| 'TargetMachine': '17', # x64. |
| }, |
| 'VCLinkerTool': { |
| 'MinimumRequiredVersion': '5.02', # Server 2003. |
| 'TargetMachine': '17', # x64. |
| }, |
| }, |
| } |
| }], |
| ], |
| }, |
| }, |
| |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'xcode_settings': { |
| 'SYMROOT': '<(DEPTH)/xcodebuild', |
| }, |
| }], |
| ], |
| } |