123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- {
- 'includes': [
- '../vendor/download/libchromiumcontent/filenames.gypi',
- ],
- 'variables': {
- 'libchromiumcontent_component%': 1,
- 'pkg-config%': 'pkg-config',
- 'conditions': [
- # The "libchromiumcontent_component" is defined when calling "gyp".
- ['libchromiumcontent_component', {
- 'libchromiumcontent_dir%': '<(libchromiumcontent_shared_libraries_dir)',
- 'libchromiumcontent_libraries%': '<(libchromiumcontent_shared_libraries)',
- 'libchromiumcontent_v8_libraries%': '<(libchromiumcontent_shared_v8_libraries)',
- }, {
- 'libchromiumcontent_dir%': '<(libchromiumcontent_static_libraries_dir)',
- 'libchromiumcontent_libraries%': '<(libchromiumcontent_static_libraries)',
- 'libchromiumcontent_v8_libraries%': '<(libchromiumcontent_static_v8_libraries)',
- }],
- ],
- },
- 'target_defaults': {
- 'includes': [
- # Rules for excluding e.g. foo_win.cc from the build on non-Windows.
- 'filename_rules.gypi',
- ],
- # Putting this in "configurations" will make overrides not working.
- 'xcode_settings': {
- 'ALWAYS_SEARCH_USER_PATHS': 'NO',
- 'ARCHS': ['x86_64'],
- 'COMBINE_HIDPI_IMAGES': 'YES',
- 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',
- 'GCC_ENABLE_CPP_RTTI': 'NO',
- 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',
- 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14',
- 'MACOSX_DEPLOYMENT_TARGET': '10.9',
- 'RUN_CLANG_STATIC_ANALYZER': 'YES',
- 'USE_HEADER_MAP': 'NO',
- },
- 'msvs_configuration_attributes': {
- 'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
- 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
- 'CharacterSet': '1',
- },
- 'msvs_system_include_dirs': [
- '$(VSInstallDir)/VC/atlmfc/include',
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'AdditionalOptions': ['/MP'],
- 'MinimalRebuild': 'false',
- 'BufferSecurityCheck': 'true',
- 'EnableFunctionLevelLinking': 'true',
- 'RuntimeTypeInfo': 'false',
- 'WarningLevel': '4',
- 'WarnAsError': 'true',
- 'DebugInformationFormat': '3',
- },
- 'VCLinkerTool': {
- 'GenerateDebugInformation': 'true',
- 'MapFileName': '$(OutDir)\\$(TargetName).map',
- 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
- 'LargeAddressAware': '2',
- 'AdditionalOptions': [
- # ATL 8.0 included in WDK 7.1 makes the linker to generate
- # following
- # warnings:
- # - warning LNK4254: section 'ATL' (50000040) merged into
- # '.rdata' (40000040) with different attributes
- # - warning LNK4078: multiple 'ATL' sections found with
- # different attributes
- '/ignore:4254',
- '/ignore:4078',
- # views_chromiumcontent.lib generates this warning because it's
- # symobls are defined as dllexport but used as static library:
- # - warning LNK4217: locally defined symbol imported in function
- # - warning LNK4049: locally defined symbol imported
- '/ignore:4217',
- '/ignore:4049',
- ],
- },
- },
- 'configurations': {
- # The "Debug" and "Release" configurations are not actually used.
- 'Debug': {},
- 'Release': {},
- 'Common_Base': {
- 'abstract': 1,
- 'defines': [
- # Needed by gin:
- 'V8_USE_EXTERNAL_STARTUP_DATA',
- # Special configuration for node:
- 'V8_PROMISE_INTERNAL_FIELD_COUNT=1',
- # From skia_for_chromium_defines.gypi:
- 'SK_SUPPORT_LEGACY_GETTOPDEVICE',
- 'SK_SUPPORT_LEGACY_BITMAP_CONFIG',
- 'SK_SUPPORT_LEGACY_DEVICE_VIRTUAL_ISOPAQUE',
- 'SK_SUPPORT_LEGACY_N32_NAME',
- 'SK_SUPPORT_LEGACY_SETCONFIG',
- 'SK_IGNORE_ETC1_SUPPORT',
- 'SK_IGNORE_GPU_DITHER',
- # NACL is not enabled:
- 'DISABLE_NACL',
- ],
- 'conditions': [
- ['OS!="mac"', {
- 'defines': [
- 'TOOLKIT_VIEWS',
- 'USE_AURA',
- ],
- }],
- ['OS in ["mac", "win"]', {
- 'defines': [
- 'USE_OPENSSL',
- ],
- }, {
- 'defines': [
- 'USE_X11',
- # "use_nss_certs" is set to 1 in libchromiumcontent.
- 'USE_NSS_CERTS',
- 'USE_NSS', # deprecated after Chrome 45.
- ],
- }],
- ['OS in ["linux", "mac"]', {
- 'defines': [
- 'WEBRTC_POSIX',
- 'UCHAR_TYPE=uint16_t',
- ],
- }],
- ['OS=="linux"', {
- 'defines': [
- '_LARGEFILE_SOURCE',
- '_LARGEFILE64_SOURCE',
- '_FILE_OFFSET_BITS=64',
- 'WEBRTC_LINUX',
- ],
- 'cflags_cc': [
- '-D__STRICT_ANSI__',
- '-fno-rtti',
- ],
- 'ldflags': [
- '-Wl,-z,noexecstack',
- ],
- }], # OS=="linux"
- ['OS=="linux" and target_arch in ["ia32", "x64", "arm64"]', {
- 'ldflags': [
- '-fuse-ld=lld', # Chromium Clang uses lld for linking
- ],
- }], # OS=="linux" and target_arch in ["ia32", "x64", "arm64"]
- ['OS=="mac"', {
- 'defines': [
- # The usage of "webrtc/modules/desktop_capture/desktop_capture_options.h"
- # is required to see this macro.
- 'WEBRTC_MAC',
- ],
- }], # OS=="mac"
- ['OS=="win"', {
- 'include_dirs': [
- '<(libchromiumcontent_src_dir)/third_party/wtl/include',
- ],
- 'defines': [
- '_WIN32_WINNT=0x0602',
- 'WINVER=0x0602',
- 'WIN32',
- '_WINDOWS',
- 'NOMINMAX',
- 'PSAPI_VERSION=1',
- '_CRT_RAND_S',
- 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS',
- 'WIN32_LEAN_AND_MEAN',
- '_ATL_NO_OPENGL',
- '_SECURE_ATL',
- # The usage of "webrtc/modules/desktop_capture/desktop_capture_options.h"
- # is required to see this macro.
- 'WEBRTC_WIN',
- 'UCHAR_TYPE=wchar_t',
- ],
- 'conditions': [
- ['target_arch=="x64"', {
- 'msvs_configuration_platform': 'x64',
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'MinimumRequiredVersion': '5.02', # Server 2003.
- 'TargetMachine': '17', # x86 - 64
- # Doesn't exist x64 SDK. Should use oleaut32 in any case.
- 'IgnoreDefaultLibraryNames': [ 'olepro32.lib' ],
- },
- 'VCLibrarianTool': {
- 'TargetMachine': '17', # x64
- },
- },
- }],
- ],
- }], # OS=="win"
- ],
- }, # Common_Base
- 'Debug_Base': {
- 'abstract': 1,
- 'defines': [
- # Use this instead of "NDEBUG" to determine whether we are in
- # Debug build, because "NDEBUG" is already used by Chromium.
- 'DEBUG',
- '_DEBUG',
- # Require when using libchromiumcontent.
- 'COMPONENT_BUILD',
- 'GURL_DLL',
- 'SKIA_DLL',
- 'USING_V8_SHARED',
- 'WEBKIT_DLL',
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'RuntimeLibrary': '3', # /MDd (debug DLL)
- 'Optimization': '0', # 0 = /Od
- # See http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx
- 'BasicRuntimeChecks': '3', # 3 = all checks enabled, 0 = off
- },
- 'VCLinkerTool': {
- 'OptimizeReferences': 2, # /OPT:REF
- 'EnableCOMDATFolding': 2, # /OPT:ICF
- },
- },
- 'conditions': [
- ['OS=="linux" and target_arch=="x64"', {
- 'defines': [
- '_GLIBCXX_DEBUG',
- ],
- 'cflags': [
- '-g',
- ],
- }], # OS=="linux"
- ],
- }, # Debug_Base
- 'Release_Base': {
- 'abstract': 1,
- 'defines': [
- 'NDEBUG',
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'RuntimeLibrary': '2', # /MD (nondebug DLL)
- 'Optimization': '2', # /O2
- 'WholeProgramOptimization': 'true', # /GL
- # See http://msdn.microsoft.com/en-us/library/47238hez(VS.71).aspx
- 'InlineFunctionExpansion': '2', # 2 = max
- # See http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.80).aspx
- 'OmitFramePointers': 'false',
- # The above is not sufficient (http://crbug.com/106711): it
- # simply eliminates an explicit "/Oy", but both /O2 and /Ox
- # perform FPO regardless, so we must explicitly disable.
- # We still want the false setting above to avoid having
- # "/Oy /Oy-" and warnings about overriding.
- 'AdditionalOptions': ['/Oy-', '/d2guard4'],
- },
- 'VCLibrarianTool': {
- 'LinkTimeCodeGeneration': 'true', # /LTCG
- },
- 'VCLinkerTool': {
- # Control Flow Guard is a security feature in Windows
- # 8.1 and higher designed to prevent exploitation of
- # indirect calls in executables.
- # Control Flow Guard is enabled using the /d2guard4
- # compiler setting in combination with the /guard:cf
- # linker setting.
- 'AdditionalOptions': ['/guard:cf'],
- # Turn off incremental linking to save binary size.
- 'LinkIncremental': '1', # /INCREMENTAL:NO
- 'LinkTimeCodeGeneration': '1', # /LTCG
- 'OptimizeReferences': 2, # /OPT:REF
- 'EnableCOMDATFolding': 2, # /OPT:ICF
- },
- },
- 'conditions': [
- ['OS=="linux"', {
- 'cflags': [
- '-O2',
- # Generate symbols, will be stripped later.
- '-g',
- # Don't emit the GCC version ident directives, they just end up
- # in the .comment section taking up binary size.
- '-fno-ident',
- # Put data and code in their own sections, so that unused symbols
- # can be removed at link time with --gc-sections.
- '-fdata-sections',
- '-ffunction-sections',
- ],
- 'ldflags': [
- # Specifically tell the linker to perform optimizations.
- # See http://lwn.net/Articles/192624/ .
- '-Wl,-O1',
- '-Wl,--as-needed',
- '-Wl,--gc-sections',
- ],
- }], # OS=="linux"
- ['OS=="linux" and target_arch in ["ia32", "x64", "arm64"]', {
- 'cflags': [
- '-flto=thin',
- ],
- 'ldflags': [
- '-flto=thin',
- '-Wl,--icf=all',
- '-Wl,--lto-O0', # this could be removed in future; see https://codereview.chromium.org/2939923004
- '-Wl,-mllvm,-function-sections',
- '-Wl,-mllvm,-data-sections',
- ],
- }],
- ],
- }, # Release_Base
- 'conditions': [
- ['libchromiumcontent_component', {
- 'D': {
- 'inherit_from': ['Common_Base', 'Debug_Base'],
- }, # D (Debug)
- }, {
- 'R': {
- 'inherit_from': ['Common_Base', 'Release_Base'],
- }, # R (Release)
- }], # libchromiumcontent_component
- ['OS=="win"', {
- 'conditions': [
- # gyp always assumes "_x64" targets on Windows.
- ['libchromiumcontent_component', {
- 'D_x64': {
- 'inherit_from': ['Common_Base', 'Debug_Base'],
- }, # D_x64
- }, {
- 'R_x64': {
- 'inherit_from': ['Common_Base', 'Release_Base'],
- }, # R_x64
- }], # libchromiumcontent_component
- ],
- }], # OS=="win"
- ],
- }, # configurations
- 'target_conditions': [
- # Putting this under "configurations" doesn't work.
- ['libchromiumcontent_component', {
- 'xcode_settings': {
- 'GCC_OPTIMIZATION_LEVEL': '0',
- },
- }, { # "Debug_Base"
- 'xcode_settings': {
- 'DEAD_CODE_STRIPPING': 'YES', # -Wl,-dead_strip
- 'GCC_OPTIMIZATION_LEVEL': '2',
- 'OTHER_CFLAGS': [
- '-fno-inline',
- '-fno-omit-frame-pointer',
- '-fno-builtin',
- '-fno-optimize-sibling-calls',
- ],
- },
- }], # "Release_Base"
- ['OS=="mac" and libchromiumcontent_component==0 and _type in ["executable", "shared_library"]', {
- 'xcode_settings': {
- # Generates symbols and strip the binary.
- 'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym',
- 'DEPLOYMENT_POSTPROCESSING': 'YES',
- 'STRIP_INSTALLED_PRODUCT': 'YES',
- 'STRIPFLAGS': '-x',
- },
- }], # OS=="mac" and libchromiumcontent_component==0 and _type in ["executable", "shared_library"]
- ['OS=="linux" and target_arch=="ia32" and _toolset=="target"', {
- 'ldflags': [
- # Workaround for linker OOM.
- '-Wl,--no-keep-memory',
- ],
- }],
- ], # target_conditions
- # Ignored compiler warnings of Chromium/Node.js
- 'conditions': [
- ['OS=="mac"', {
- 'xcode_settings': {
- 'WARNING_CFLAGS': [
- '-Wall',
- '-Wextra',
- '-Wno-unused-parameter',
- '-Wno-missing-field-initializers',
- '-Wno-deprecated-declarations',
- '-Wno-undefined-var-template', # https://crbug.com/604888
- '-Wno-unneeded-internal-declaration',
- '-Wno-inconsistent-missing-override',
- '-Wno-tautological-unsigned-enum-zero-compare',
- ],
- },
- }],
- ['OS=="linux" and clang==1', {
- 'cflags': [
- '-Wno-inconsistent-missing-override',
- '-Wno-undefined-var-template', # https://crbug.com/604888
- '-Wno-tautological-unsigned-enum-zero-compare',
- ],
- }],
- ['OS=="win"', {
- 'msvs_disabled_warnings': [
- 4100, # unreferenced formal parameter
- 4102, # unreferencd label
- 4121, # alignment of a member was sensitive to packing
- 4127, # conditional expression is constant
- 4189, # local variable is initialized but not referenced
- 4244, # 'initializing' : conversion from 'double' to 'size_t', possible loss of data
- 4245, # 'initializing' : conversion from 'int' to 'const net::QuicVersionTag', signed/unsigned mismatch
- 4251, # class 'std::xx' needs to have dll-interface.
- 4310, # cast truncates constant value
- 4355, # 'this' : used in base member initializer list
- 4480, # nonstandard extension used: specifying underlying type for enum
- 4481, # nonstandard extension used: override specifier 'override'
- 4510, # default constructor could not be generated
- 4512, # assignment operator could not be generated
- 4610, # user defined constructor required
- 4702, # unreachable code
- 4715, # not all control paths return a value
- 4819, # The file contains a character that cannot be represented in the current code page
- 4275, # non dll-interface class used as base for dll-interface class
- ],
- }],
- ], # conditions
- }, # target_defaults
- }
|