michael@0: # Copyright (c) 2010, Google Inc. michael@0: # All rights reserved. michael@0: # michael@0: # Redistribution and use in source and binary forms, with or without michael@0: # modification, are permitted provided that the following conditions are michael@0: # met: michael@0: # michael@0: # * Redistributions of source code must retain the above copyright michael@0: # notice, this list of conditions and the following disclaimer. michael@0: # * Redistributions in binary form must reproduce the above michael@0: # copyright notice, this list of conditions and the following disclaimer michael@0: # in the documentation and/or other materials provided with the michael@0: # distribution. michael@0: # * Neither the name of Google Inc. nor the names of its michael@0: # contributors may be used to endorse or promote products derived from michael@0: # this software without specific prior written permission. michael@0: # michael@0: # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS michael@0: # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT michael@0: # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR michael@0: # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT michael@0: # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@0: # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@0: # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, michael@0: # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY michael@0: # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT michael@0: # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE michael@0: # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. michael@0: michael@0: # IMPORTANT: michael@0: # Please don't directly include this file if you are building via gyp_chromium, michael@0: # since gyp_chromium is automatically forcing its inclusion. michael@0: { michael@0: 'variables': { michael@0: # .gyp files or targets should set chromium_code to 1 if they build michael@0: # Chromium-specific code, as opposed to external code. This variable is michael@0: # used to control such things as the set of warnings to enable, and michael@0: # whether warnings are treated as errors. michael@0: 'chromium_code%': 0, michael@0: michael@0: # Variables expected to be overriden on the GYP command line (-D) or by michael@0: # ~/.gyp/include.gypi. michael@0: michael@0: # Putting a variables dict inside another variables dict looks kind of michael@0: # weird. This is done so that "branding" and "buildtype" are defined as michael@0: # variables within the outer variables dict here. This is necessary michael@0: # to get these variables defined for the conditions within this variables michael@0: # dict that operate on these variables. michael@0: 'variables': { michael@0: # Override branding to select the desired branding flavor. michael@0: 'branding%': 'Chromium', michael@0: michael@0: # Override buildtype to select the desired build flavor. michael@0: # Dev - everyday build for development/testing michael@0: # Official - release build (generally implies additional processing) michael@0: # TODO(mmoss) Once 'buildtype' is fully supported (e.g. Windows gyp michael@0: # conversion is done), some of the things which are now controlled by michael@0: # 'branding', such as symbol generation, will need to be refactored based michael@0: # on 'buildtype' (i.e. we don't care about saving symbols for non-Official michael@0: # builds). michael@0: 'buildtype%': 'Dev', michael@0: michael@0: 'variables': { michael@0: # Compute the architecture that we're building on. michael@0: 'conditions': [ michael@0: [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { michael@0: # This handles the Linux platforms we generally deal with. Anything michael@0: # else gets passed through, which probably won't work very well; such michael@0: # hosts should pass an explicit target_arch to gyp. michael@0: 'host_arch%': michael@0: '. michael@0: # Additional documentation on these macros is available at michael@0: # http://developer.apple.com/mac/library/technotes/tn2002/tn2064.html#SECTION3 michael@0: # Chrome normally builds with the Mac OS X 10.5 SDK and sets the michael@0: # deployment target to 10.5. Other projects, such as O3D, may override michael@0: # these defaults. michael@0: 'mac_sdk%': '10.5', michael@0: 'mac_deployment_target%': '10.5', michael@0: michael@0: # Set to 1 to enable code coverage. In addition to build changes michael@0: # (e.g. extra CFLAGS), also creates a new target in the src/chrome michael@0: # project file called "coverage". michael@0: # Currently ignored on Windows. michael@0: 'coverage%': 0, michael@0: michael@0: # Although base/allocator lets you select a heap library via an michael@0: # environment variable, the libcmt shim it uses sometimes gets in michael@0: # the way. To disable it entirely, and switch to normal msvcrt, do e.g. michael@0: # 'win_use_allocator_shim': 0, michael@0: # 'win_release_RuntimeLibrary': 2 michael@0: # to ~/.gyp/include.gypi, gclient runhooks --force, and do a release build. michael@0: 'win_use_allocator_shim%': 1, # 0 = shim allocator via libcmt; 1 = msvcrt michael@0: michael@0: # Whether usage of OpenMAX is enabled. michael@0: 'enable_openmax%': 0, michael@0: michael@0: # TODO(bradnelson): eliminate this when possible. michael@0: # To allow local gyp files to prevent release.vsprops from being included. michael@0: # Yes(1) means include release.vsprops. michael@0: # Once all vsprops settings are migrated into gyp, this can go away. michael@0: 'msvs_use_common_release%': 1, michael@0: michael@0: # TODO(bradnelson): eliminate this when possible. michael@0: # To allow local gyp files to override additional linker options for msvs. michael@0: # Yes(1) means set use the common linker options. michael@0: 'msvs_use_common_linker_extras%': 1, michael@0: michael@0: # TODO(sgk): eliminate this if possible. michael@0: # It would be nicer to support this via a setting in 'target_defaults' michael@0: # in chrome/app/locales/locales.gypi overriding the setting in the michael@0: # 'Debug' configuration in the 'target_defaults' dict below, michael@0: # but that doesn't work as we'd like. michael@0: 'msvs_debug_link_incremental%': '2', michael@0: michael@0: # This is the location of the sandbox binary. Chrome looks for this before michael@0: # running the zygote process. If found, and SUID, it will be used to michael@0: # sandbox the zygote process and, thus, all renderer processes. michael@0: 'linux_sandbox_path%': '', michael@0: michael@0: # Set this to true to enable SELinux support. michael@0: 'selinux%': 0, michael@0: michael@0: # Strip the binary after dumping symbols. michael@0: 'linux_strip_binary%': 0, michael@0: michael@0: # Enable TCMalloc. michael@0: 'linux_use_tcmalloc%': 1, michael@0: michael@0: # Disable TCMalloc's debugallocation. michael@0: 'linux_use_debugallocation%': 0, michael@0: michael@0: # Disable TCMalloc's heapchecker. michael@0: 'linux_use_heapchecker%': 0, michael@0: michael@0: # Set to 1 to turn on seccomp sandbox by default. michael@0: # (Note: this is ignored for official builds.) michael@0: 'linux_use_seccomp_sandbox%': 0, michael@0: michael@0: # Set to select the Title Case versions of strings in GRD files. michael@0: 'use_titlecase_in_grd_files%': 0, michael@0: michael@0: # Used to disable Native Client at compile time, for platforms where it michael@0: # isn't supported michael@0: 'disable_nacl%': 0, michael@0: michael@0: # Set Thumb compilation flags. michael@0: 'arm_thumb%': 0, michael@0: michael@0: # Set ARM fpu compilation flags (only meaningful if armv7==1 and michael@0: # arm_neon==0). michael@0: 'arm_fpu%': 'vfpv3', michael@0: michael@0: # Enable new NPDevice API. michael@0: 'enable_new_npdevice_api%': 0, michael@0: michael@0: 'conditions': [ michael@0: ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { michael@0: # This will set gcc_version to XY if you are running gcc X.Y.*. michael@0: # This is used to tweak build flags for gcc 4.4. michael@0: 'gcc_version%': '(debug_optimize)', michael@0: '-g', michael@0: # One can use '-gstabs' to enable building the debugging michael@0: # information in STABS format for breakpad's dumpsyms. michael@0: ], michael@0: 'ldflags': [ michael@0: '-rdynamic', # Allows backtrace to resolve symbols. michael@0: ], michael@0: }, michael@0: 'Release_Base': { michael@0: 'variables': { michael@0: 'release_optimize%': '2', michael@0: }, michael@0: 'cflags': [ michael@0: '-O>(release_optimize)', michael@0: # Don't emit the GCC version ident directives, they just end up michael@0: # in the .comment section taking up binary size. michael@0: '-fno-ident', michael@0: # Put data and code in their own sections, so that unused symbols michael@0: # can be removed at link time with --gc-sections. michael@0: '-fdata-sections', michael@0: '-ffunction-sections', michael@0: ], michael@0: 'ldflags': [ michael@0: '-Wl,--gc-sections', michael@0: ], michael@0: }, michael@0: }, michael@0: 'variants': { michael@0: 'coverage': { michael@0: 'cflags': ['-fprofile-arcs', '-ftest-coverage'], michael@0: 'ldflags': ['-fprofile-arcs'], michael@0: }, michael@0: 'profile': { michael@0: 'cflags': ['-pg', '-g'], michael@0: 'ldflags': ['-pg'], michael@0: }, michael@0: 'symbols': { michael@0: 'cflags': ['-g'], michael@0: }, michael@0: }, michael@0: 'conditions': [ michael@0: [ 'target_arch=="ia32"', { michael@0: 'asflags': [ michael@0: # Needed so that libs with .s files (e.g. libicudata.a) michael@0: # are compatible with the general 32-bit-ness. michael@0: '-32', michael@0: ], michael@0: # All floating-point computations on x87 happens in 80-bit michael@0: # precision. Because the C and C++ language standards allow michael@0: # the compiler to keep the floating-point values in higher michael@0: # precision than what's specified in the source and doing so michael@0: # is more efficient than constantly rounding up to 64-bit or michael@0: # 32-bit precision as specified in the source, the compiler, michael@0: # especially in the optimized mode, tries very hard to keep michael@0: # values in x87 floating-point stack (in 80-bit precision) michael@0: # as long as possible. This has important side effects, that michael@0: # the real value used in computation may change depending on michael@0: # how the compiler did the optimization - that is, the value michael@0: # kept in 80-bit is different than the value rounded down to michael@0: # 64-bit or 32-bit. There are possible compiler options to make michael@0: # this behavior consistent (e.g. -ffloat-store would keep all michael@0: # floating-values in the memory, thus force them to be rounded michael@0: # to its original precision) but they have significant runtime michael@0: # performance penalty. michael@0: # michael@0: # -mfpmath=sse -msse2 makes the compiler use SSE instructions michael@0: # which keep floating-point values in SSE registers in its michael@0: # native precision (32-bit for single precision, and 64-bit for michael@0: # double precision values). This means the floating-point value michael@0: # used during computation does not change depending on how the michael@0: # compiler optimized the code, since the value is always kept michael@0: # in its specified precision. michael@0: 'conditions': [ michael@0: ['branding=="Chromium" and disable_sse2==0', { michael@0: 'cflags': [ michael@0: '-march=pentium4', michael@0: '-msse2', michael@0: '-mfpmath=sse', michael@0: ], michael@0: }], michael@0: # ChromeOS targets Pinetrail, which is sse3, but most of the michael@0: # benefit comes from sse2 so this setting allows ChromeOS michael@0: # to build on other CPUs. In the future -march=atom would help michael@0: # but requires a newer compiler. michael@0: ['chromeos==1 and disable_sse2==0', { michael@0: 'cflags': [ michael@0: '-msse2', michael@0: ], michael@0: }], michael@0: ], michael@0: # -mmmx allows mmintrin.h to be used for mmx intrinsics. michael@0: # video playback is mmx and sse2 optimized. michael@0: 'cflags': [ michael@0: '-m32', michael@0: '-mmmx', michael@0: ], michael@0: 'ldflags': [ michael@0: '-m32', michael@0: ], michael@0: }], michael@0: ['target_arch=="arm"', { michael@0: 'target_conditions': [ michael@0: ['_toolset=="target"', { michael@0: 'cflags_cc': [ michael@0: # The codesourcery arm-2009q3 toolchain warns at that the ABI michael@0: # has changed whenever it encounters a varargs function. This michael@0: # silences those warnings, as they are not helpful and michael@0: # clutter legitimate warnings. michael@0: '-Wno-abi', michael@0: ], michael@0: 'conditions': [ michael@0: ['arm_thumb == 1', { michael@0: 'cflags': [ michael@0: '-mthumb', michael@0: # TODO(piman): -Wa,-mimplicit-it=thumb is needed for michael@0: # inline assembly that uses condition codes but it's michael@0: # suboptimal. Better would be to #ifdef __thumb__ at the michael@0: # right place and have a separate thumb path. michael@0: '-Wa,-mimplicit-it=thumb', michael@0: ] michael@0: }], michael@0: ['armv7==1', { michael@0: 'cflags': [ michael@0: '-march=armv7-a', michael@0: '-mtune=cortex-a8', michael@0: '-mfloat-abi=softfp', michael@0: ], michael@0: 'conditions': [ michael@0: ['arm_neon==1', { michael@0: 'cflags': [ '-mfpu=neon', ], michael@0: }, { michael@0: 'cflags': [ '-mfpu=<(arm_fpu)', ], michael@0: }] michael@0: ], michael@0: }], michael@0: ], michael@0: }], michael@0: ], michael@0: }], michael@0: ['linux_fpic==1', { michael@0: 'cflags': [ michael@0: '-fPIC', michael@0: ], michael@0: }], michael@0: ['sysroot!=""', { michael@0: 'target_conditions': [ michael@0: ['_toolset=="target"', { michael@0: 'cflags': [ michael@0: '--sysroot=<(sysroot)', michael@0: ], michael@0: 'ldflags': [ michael@0: '--sysroot=<(sysroot)', michael@0: ], michael@0: }]] michael@0: }], michael@0: ['no_strict_aliasing==1', { michael@0: 'cflags': [ michael@0: '-fno-strict-aliasing', michael@0: ], michael@0: }], michael@0: ['linux_breakpad==1', { michael@0: 'cflags': [ '-gstabs' ], michael@0: 'defines': ['USE_LINUX_BREAKPAD'], michael@0: }], michael@0: ['linux_use_seccomp_sandbox==1 and buildtype!="Official"', { michael@0: 'defines': ['USE_SECCOMP_SANDBOX'], michael@0: }], michael@0: ['library=="shared_library"', { michael@0: # When building with shared libraries, remove the visiblity-hiding michael@0: # flag. michael@0: 'cflags!': [ '-fvisibility=hidden' ], michael@0: 'conditions': [ michael@0: ['target_arch=="x64" or target_arch=="arm"', { michael@0: # Shared libraries need -fPIC on x86-64 and arm michael@0: 'cflags': ['-fPIC'] michael@0: }] michael@0: ], michael@0: }], michael@0: ['linux_use_heapchecker==1', { michael@0: 'variables': {'linux_use_tcmalloc%': 1}, michael@0: }], michael@0: ['linux_use_tcmalloc==0', { michael@0: 'defines': ['NO_TCMALLOC'], michael@0: }], michael@0: ['linux_use_heapchecker==0', { michael@0: 'defines': ['NO_HEAPCHECKER'], michael@0: }], michael@0: ], michael@0: }, michael@0: }], michael@0: # FreeBSD-specific options; note that most FreeBSD options are set above, michael@0: # with Linux. michael@0: ['OS=="freebsd"', { michael@0: 'target_defaults': { michael@0: 'ldflags': [ michael@0: '-Wl,--no-keep-memory', michael@0: ], michael@0: }, michael@0: }], michael@0: ['OS=="solaris"', { michael@0: 'cflags!': ['-fvisibility=hidden'], michael@0: 'cflags_cc!': ['-fvisibility-inlines-hidden'], michael@0: }], michael@0: ['OS=="mac"', { michael@0: 'target_defaults': { michael@0: 'variables': { michael@0: # This should be 'mac_real_dsym%', but there seems to be a bug michael@0: # with % in variables that are intended to be set to different michael@0: # values in different targets, like this one. michael@0: 'mac_real_dsym': 0, # Fake .dSYMs are fine in most cases. michael@0: }, michael@0: 'mac_bundle': 0, michael@0: 'xcode_settings': { michael@0: 'ALWAYS_SEARCH_USER_PATHS': 'NO', michael@0: 'GCC_C_LANGUAGE_STANDARD': 'c99', # -std=c99 michael@0: 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks michael@0: 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic michael@0: # (Equivalent to -fPIC) michael@0: 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions michael@0: 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti michael@0: 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings michael@0: # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden michael@0: 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', michael@0: 'GCC_OBJC_CALL_CXX_CDTORS': 'YES', # -fobjc-call-cxx-cdtors michael@0: 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden michael@0: 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics michael@0: 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror michael@0: 'GCC_VERSION': '4.2', michael@0: 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof michael@0: # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min michael@0: 'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)', michael@0: 'PREBINDING': 'NO', # No -Wl,-prebind michael@0: 'USE_HEADERMAP': 'NO', michael@0: 'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'], michael@0: 'conditions': [ michael@0: ['chromium_mac_pch', {'GCC_PRECOMPILE_PREFIX_HEADER': 'YES'}, michael@0: {'GCC_PRECOMPILE_PREFIX_HEADER': 'NO'} michael@0: ], michael@0: ], michael@0: }, michael@0: 'target_conditions': [ michael@0: ['_type!="static_library"', { michael@0: 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, michael@0: }], michael@0: ['_mac_bundle', { michael@0: 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']}, michael@0: }], michael@0: ['_type=="executable" or _type=="shared_library"', { michael@0: 'target_conditions': [ michael@0: ['mac_real_dsym == 1', { michael@0: # To get a real .dSYM bundle produced by dsymutil, set the michael@0: # debug information format to dwarf-with-dsym. Since michael@0: # strip_from_xcode will not be used, set Xcode to do the michael@0: # stripping as well. michael@0: 'configurations': { michael@0: 'Release_Base': { michael@0: 'xcode_settings': { michael@0: 'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym', michael@0: 'DEPLOYMENT_POSTPROCESSING': 'YES', michael@0: 'STRIP_INSTALLED_PRODUCT': 'YES', michael@0: 'target_conditions': [ michael@0: ['_type=="shared_library"', { michael@0: # The Xcode default is to strip debugging symbols michael@0: # only (-S). Local symbols should be stripped as michael@0: # well, which will be handled by -x. Xcode will michael@0: # continue to insert -S when stripping even when michael@0: # additional flags are added with STRIPFLAGS. michael@0: 'STRIPFLAGS': '-x', michael@0: }], # _type=="shared_library" michael@0: ], # target_conditions michael@0: }, # xcode_settings michael@0: }, # configuration "Release" michael@0: }, # configurations michael@0: }, { # mac_real_dsym != 1 michael@0: # To get a fast fake .dSYM bundle, use a post-build step to michael@0: # produce the .dSYM and strip the executable. strip_from_xcode michael@0: # only operates in the Release configuration. michael@0: 'postbuilds': [ michael@0: { michael@0: 'variables': { michael@0: # Define strip_from_xcode in a variable ending in _path michael@0: # so that gyp understands it's a path and performs proper michael@0: # relativization during dict merging. michael@0: 'strip_from_xcode_path': 'mac/strip_from_xcode', michael@0: }, michael@0: 'postbuild_name': 'Strip If Needed', michael@0: 'action': ['<(strip_from_xcode_path)'], michael@0: }, michael@0: ], # postbuilds michael@0: }], # mac_real_dsym michael@0: ], # target_conditions michael@0: }], # _type=="executable" or _type=="shared_library" michael@0: ], # target_conditions michael@0: }, # target_defaults michael@0: }], # OS=="mac" michael@0: ['OS=="win"', { michael@0: 'target_defaults': { michael@0: 'defines': [ michael@0: '_WIN32_WINNT=0x0600', michael@0: 'WINVER=0x0600', michael@0: 'WIN32', michael@0: '_WINDOWS', michael@0: '_HAS_EXCEPTIONS=0', michael@0: 'NOMINMAX', michael@0: '_CRT_RAND_S', michael@0: 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS', michael@0: 'WIN32_LEAN_AND_MEAN', michael@0: '_SECURE_ATL', michael@0: '_HAS_TR1=0', michael@0: ], michael@0: 'msvs_system_include_dirs': [ michael@0: '<(DEPTH)/third_party/platformsdk_win7/files/Include', michael@0: '$(VSInstallDir)/VC/atlmfc/include', michael@0: ], michael@0: 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], michael@0: 'msvs_disabled_warnings': [4396, 4503, 4819], michael@0: 'msvs_settings': { michael@0: 'VCCLCompilerTool': { michael@0: 'MinimalRebuild': 'false', michael@0: 'ExceptionHandling': '0', michael@0: 'BufferSecurityCheck': 'true', michael@0: 'EnableFunctionLevelLinking': 'true', michael@0: 'RuntimeTypeInfo': 'false', michael@0: 'WarningLevel': '3', michael@0: 'WarnAsError': 'true', michael@0: 'DebugInformationFormat': '3', michael@0: 'conditions': [ michael@0: [ 'msvs_multi_core_compile', { michael@0: 'AdditionalOptions': ['/MP'], michael@0: }], michael@0: ], michael@0: }, michael@0: 'VCLibrarianTool': { michael@0: 'AdditionalOptions': ['/ignore:4221'], michael@0: 'AdditionalLibraryDirectories': michael@0: ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'], michael@0: }, michael@0: 'VCLinkerTool': { michael@0: 'AdditionalDependencies': [ michael@0: 'wininet.lib', michael@0: 'version.lib', michael@0: 'msimg32.lib', michael@0: 'ws2_32.lib', michael@0: 'usp10.lib', michael@0: 'psapi.lib', michael@0: 'dbghelp.lib', michael@0: ], michael@0: 'AdditionalLibraryDirectories': michael@0: ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'], michael@0: 'GenerateDebugInformation': 'true', michael@0: 'MapFileName': '$(OutDir)\\$(TargetName).map', michael@0: 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib', michael@0: 'FixedBaseAddress': '1', michael@0: # SubSystem values: michael@0: # 0 == not set michael@0: # 1 == /SUBSYSTEM:CONSOLE michael@0: # 2 == /SUBSYSTEM:WINDOWS michael@0: # Most of the executables we'll ever create are tests michael@0: # and utilities with console output. michael@0: 'SubSystem': '1', michael@0: }, michael@0: 'VCMIDLTool': { michael@0: 'GenerateStublessProxies': 'true', michael@0: 'TypeLibraryName': '$(InputName).tlb', michael@0: 'OutputDirectory': '$(IntDir)', michael@0: 'HeaderFileName': '$(InputName).h', michael@0: 'DLLDataFileName': 'dlldata.c', michael@0: 'InterfaceIdentifierFileName': '$(InputName)_i.c', michael@0: 'ProxyFileName': '$(InputName)_p.c', michael@0: }, michael@0: 'VCResourceCompilerTool': { michael@0: 'Culture' : '1033', michael@0: 'AdditionalIncludeDirectories': ['<(DEPTH)'], michael@0: }, michael@0: }, michael@0: }, michael@0: }], michael@0: ['disable_nacl==1 or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { michael@0: 'target_defaults': { michael@0: 'defines': [ michael@0: 'DISABLE_NACL', michael@0: ], michael@0: }, michael@0: }], michael@0: ['OS=="win" and msvs_use_common_linker_extras', { michael@0: 'target_defaults': { michael@0: 'msvs_settings': { michael@0: 'VCLinkerTool': { michael@0: 'DelayLoadDLLs': [ michael@0: 'dbghelp.dll', michael@0: 'dwmapi.dll', michael@0: 'uxtheme.dll', michael@0: ], michael@0: }, michael@0: }, michael@0: 'configurations': { michael@0: 'x86_Base': { michael@0: 'msvs_settings': { michael@0: 'VCLinkerTool': { michael@0: 'AdditionalOptions': [ michael@0: '/safeseh', michael@0: '/dynamicbase', michael@0: '/ignore:4199', michael@0: '/ignore:4221', michael@0: '/nxcompat', michael@0: ], michael@0: }, michael@0: }, michael@0: }, michael@0: 'x64_Base': { michael@0: 'msvs_settings': { michael@0: 'VCLinkerTool': { michael@0: 'AdditionalOptions': [ michael@0: # safeseh is not compatible with x64 michael@0: '/dynamicbase', michael@0: '/ignore:4199', michael@0: '/ignore:4221', michael@0: '/nxcompat', michael@0: ], michael@0: }, michael@0: }, michael@0: }, michael@0: }, michael@0: }, michael@0: }], michael@0: ['enable_new_npdevice_api==1', { michael@0: 'target_defaults': { michael@0: 'defines': [ michael@0: 'ENABLE_NEW_NPDEVICE_API', michael@0: ], michael@0: }, michael@0: }], michael@0: ], michael@0: 'scons_settings': { michael@0: 'sconsbuild_dir': '<(DEPTH)/sconsbuild', michael@0: 'tools': ['ar', 'as', 'gcc', 'g++', 'gnulink', 'chromium_builders'], michael@0: }, michael@0: 'xcode_settings': { michael@0: # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT! michael@0: # This block adds *project-wide* configuration settings to each project michael@0: # file. It's almost always wrong to put things here. Specify your michael@0: # custom xcode_settings in target_defaults to add them to targets instead. michael@0: michael@0: # In an Xcode Project Info window, the "Base SDK for All Configurations" michael@0: # setting sets the SDK on a project-wide basis. In order to get the michael@0: # configured SDK to show properly in the Xcode UI, SDKROOT must be set michael@0: # here at the project level. michael@0: 'SDKROOT': 'macosx<(mac_sdk)', # -isysroot michael@0: michael@0: # The Xcode generator will look for an xcode_settings section at the root michael@0: # of each dict and use it to apply settings on a file-wide basis. Most michael@0: # settings should not be here, they should be in target-specific michael@0: # xcode_settings sections, or better yet, should use non-Xcode-specific michael@0: # settings in target dicts. SYMROOT is a special case, because many other michael@0: # Xcode variables depend on it, including variables such as michael@0: # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something michael@0: # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the michael@0: # files to appear (when present) in the UI as actual files and not red michael@0: # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, michael@0: # and therefore SYMROOT, needs to be set at the project level. michael@0: 'SYMROOT': '<(DEPTH)/xcodebuild', michael@0: }, michael@0: } michael@0: michael@0: # Local Variables: michael@0: # tab-width:2 michael@0: # indent-tabs-mode:nil michael@0: # End: michael@0: # vim: set expandtab tabstop=2 shiftwidth=2: