# Copyright (c) 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': { 'chromium_code%': 0, }, 'target_defaults': { # TODO(bradnelson): This should really be able to be either: # CHROMIUM_BUILD or GOOGLE_CHROME_BUILD 'defines': ['CHROMIUM_BUILD'], 'default_configuration': 'Debug', 'configurations': { 'Debug': { 'conditions': [ [ 'OS=="mac"', { 'xcode_settings': { 'COPY_PHASE_STRIP': 'NO', 'GCC_OPTIMIZATION_LEVEL': '0', } }], [ 'OS=="win"', { 'configuration_platform': 'Win32', 'msvs_configuration_attributes': { 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)', 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', 'CharacterSet': '1', }, 'msvs_settings': { 'VCCLCompilerTool': { 'Optimization': '0', 'PreprocessorDefinitions': ['_DEBUG'], 'BasicRuntimeChecks': '3', 'RuntimeLibrary': '1', }, 'VCLinkerTool': { 'LinkIncremental': '1', }, 'VCResourceCompilerTool': { 'PreprocessorDefinitions': ['_DEBUG'], }, }, }], ], }, 'Release': { 'defines': [ 'NDEBUG', ], 'conditions': [ [ 'OS=="mac"', { 'xcode_settings': { 'DEAD_CODE_STRIPPING': 'YES', } }], [ 'OS=="win"', { 'configuration_platform': 'Win32', 'msvs_props': ['release.vsprops'], }], ], }, }, }, 'conditions': [ ['OS=="mac"', { 'target_defaults': { 'xcode_settings': { 'ALWAYS_SEARCH_USER_PATHS': 'NO', 'GCC_C_LANGUAGE_STANDARD': 'c99', 'GCC_CW_ASM_SYNTAX': 'NO', 'GCC_DYNAMIC_NO_PIC': 'YES', 'GCC_ENABLE_PASCAL_STRINGS': 'NO', 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', 'GCC_PRECOMPILE_PREFIX_HEADER': 'YES', 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', 'GCC_VERSION': '4.2', 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', 'MACOSX_DEPLOYMENT_TARGET': '10.5', 'PREBINDING': 'NO', 'SDKROOT': 'macosx10.5', 'USE_HEADERMAP': 'NO', 'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'], }, 'target_conditions': [ ['_type=="shared_library"', { 'xcode_settings': {'GCC_DYNAMIC_NO_PIC': 'NO'}, }], ['_type!="static_library"', { 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, }], ['_type=="application"', { 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']}, }], ['_type=="application" or _type=="executable"', { 'postbuilds': [ { 'variables': { # Define strip_from_xcode in a variable ending in _path so # that gyp understands it's a path and performs proper # relativization during dict merging. 'strip_from_xcode_path': 'mac/strip_from_xcode', }, 'postbuild_name': 'Strip If Needed', 'action': ['<(strip_from_xcode_path)'], }, ], }], ], }, }], ['OS=="win"', { 'target_defaults': { 'defines': [ '_WIN32_WINNT=0x0600', 'WINVER=0x0600', 'WIN32', '_WINDOWS', '_HAS_EXCEPTIONS=0', 'NOMINMAX', '_CRT_RAND_S', 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS', 'WIN32_LEAN_AND_MEAN', '_SECURE_ATL', '_HAS_TR1=0', ], 'include_dirs': [ '<(DEPTH)/third_party/platformsdk_win2008_6_1/files/Include', '$(VSInstallDir)/VC/atlmfc/include', ], 'msvs_cygwin_dirs': ['../third_party/cygwin'], 'msvs_disabled_warnings': [4503, 4819], 'msvs_settings': { 'VCCLCompilerTool': { 'MinimalRebuild': 'false', 'ExceptionHandling': '0', 'BufferSecurityCheck': 'true', 'EnableFunctionLevelLinking': 'true', 'RuntimeTypeInfo': 'false', 'WarningLevel': '3', 'WarnAsError': 'true', 'DebugInformationFormat': '3', }, 'VCLibrarianTool': { 'AdditionalOptions': '/ignore:4221', 'OutputFile': '$(OutDir)\\lib\\$(ProjectName).lib', 'AdditionalLibraryDirectories': '<(DEPTH)/third_party/platformsdk_win2008_6_1/files/Lib', }, 'VCLinkerTool': { 'AdditionalOptions': '/safeseh /dynamicbase /ignore:4199 /ignore:4221 /nxcompat', 'AdditionalDependencies': [ 'wininet.lib', 'version.lib', 'msimg32.lib', 'ws2_32.lib', 'usp10.lib', 'psapi.lib', ], 'AdditionalLibraryDirectories': '<(DEPTH)/third_party/platformsdk_win2008_6_1/files/Lib', 'DelayLoadDLLs': 'dwmapi.dll,uxtheme.dll', 'GenerateDebugInformation': 'true', 'MapFileName': '$(OutDir)\\$(TargetName).map', 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib', 'TargetMachine': '1', 'FixedBaseAddress': '1', }, 'VCMIDLTool': { 'GenerateStublessProxies': 'true', 'TypeLibraryName': '$(InputName).tlb', 'OutputDirectory': '$(IntDir)', 'HeaderFileName': '$(InputName).h', 'DLLDataFileName': 'dlldata.c', 'InterfaceIdentifierFileName': '$(InputName)_i.c', 'ProxyFileName': '$(InputName)_p.c', }, 'VCResourceCompilerTool': { 'Culture' : '1033', 'AdditionalIncludeDirectories': '<(DEPTH)', }, }, }, }], ['chromium_code==0', { # This section must follow the other conditon sections above because # external_code.gypi expects to be merged into those settings. 'includes': [ 'external_code.gypi', ], }], ], 'xcode_settings': { # The Xcode generator will look for an xcode_settings section at the root # of each dict and use it to apply settings on a file-wide basis. Most # settings should not be here, they should be in target-specific # xcode_settings sections, or better yet, should use non-Xcode-specific # settings in target dicts. SYMROOT is a special case, because many other # Xcode variables depend on it, including variables such as # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the # files to appear (when present) in the UI as actual files and not red # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, # and therefore SYMROOT, needs to be set at the project level. 'SYMROOT': '<(DEPTH)/xcodebuild', }, }