123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- {
- 'includes': [
- 'toolchain.gypi',
- 'brightray/brightray.gypi',
- ],
- 'variables': {
- # Tell crashpad to build as external project.
- 'crashpad_dependencies': 'external',
- # Required by breakpad.
- 'os_bsd': 0,
- 'chromeos': 0,
- # Reflects node's config.gypi.
- 'component%': 'static_library',
- 'debug_http2': 'false',
- 'debug_nghttp2': 'false',
- # XXX(alexeykuzmin): Must match the clang version we use. See `clang -v`.
- 'llvm_version': '6.0',
- 'python': 'python',
- 'openssl_fips': '',
- 'openssl_no_asm': 1,
- 'use_openssl_def': 0,
- 'openssl_product': 'libopenssl.a',
- 'node_release_urlbase': 'https://atom.io/download/electron',
- 'node_byteorder': '<!(node <(DEPTH)/tools/get-endianness.js)',
- 'node_target_type': 'shared_library',
- 'node_install_npm': 'false',
- 'node_prefix': '',
- 'node_shared': 'true',
- 'node_shared_cares': 'false',
- 'node_shared_http_parser': 'false',
- 'node_shared_libuv': 'false',
- 'node_shared_openssl': 'false',
- 'node_shared_v8': 'true',
- 'node_shared_zlib': 'false',
- 'node_tag': '',
- 'node_use_dtrace': 'false',
- 'node_use_etw': 'false',
- 'node_use_mdb': 'false',
- 'node_use_openssl': 'true',
- 'node_use_perfctr': 'false',
- 'node_use_v8_platform': 'false',
- 'node_use_bundled_v8': 'false',
- 'node_enable_d8': 'false',
- 'uv_library': 'static_library',
- 'uv_parent_path': 'vendor/node/deps/uv',
- 'uv_use_dtrace': 'false',
- 'v8_base': '',
- 'v8_postmortem_support': 'false',
- 'v8_enable_i18n_support': 'false',
- 'v8_enable_inspector': '1',
- },
- # Settings to compile node under Windows.
- 'target_defaults': {
- 'target_conditions': [
- ['_target_name in ["libuv", "http_parser", "openssl", "openssl-cli", "cares", "node_lib", "zlib", "nghttp2"]', {
- 'msvs_disabled_warnings': [
- 4003, # not enough actual parameters for macro 'V'
- 4013, # 'free' undefined; assuming extern returning int
- 4018, # signed/unsigned mismatch
- 4054, #
- 4055, # 'type cast' : from data pointer 'void *' to function pointer
- 4057, # 'function' : 'volatile LONG *' differs in indirection to slightly different base types from 'unsigned long *'
- 4065, # switch statement contains 'default' but no 'case' labels
- 4129, # unrecognized character escape sequence
- 4189, #
- 4131, # uses old-style declarator
- 4133, # incompatible types
- 4146, # unary minus operator applied to unsigned type, result still unsigned
- 4164, # intrinsic function not declared
- 4152, # function/data pointer conversion in expression
- 4206, # translation unit is empty
- 4204, # non-constant aggregate initializer
- 4210, # nonstandard extension used : function given file scope
- 4214, # bit field types other than int
- 4232, # address of dllimport 'free' is not static, identity not guaranteed
- 4291, # no matching operator delete found
- 4295, # array is too small to include a terminating null character
- 4309, # 'static_cast': truncation of constant value
- 4311, # 'type cast': pointer truncation from 'void *const ' to 'unsigned long'
- 4389, # '==' : signed/unsigned mismatch
- 4456, # declaration of 'm' hides previous local declaration
- 4457, # declaration of 'message' hides function parameter
- 4459, # declaration of 'wq' hides global declaration
- 4477, # format string '%.*s' requires an argument of type 'int'
- 4505, # unreferenced local function has been removed
- 4701, # potentially uninitialized local variable 'sizew' used
- 4703, # potentially uninitialized local pointer variable 'req' used
- 4706, # assignment within conditional expression
- 4804, # unsafe use of type 'bool' in operation
- 4996, # this function or variable may be unsafe.
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'WarnAsError': 'false',
- },
- },
- 'xcode_settings': {
- 'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',
- 'WARNING_CFLAGS': [
- '-Wno-unknown-warning-option',
- '-Wno-parentheses-equality',
- '-Wno-unused-function',
- '-Wno-sometimes-uninitialized',
- '-Wno-pointer-sign',
- '-Wno-sign-compare',
- '-Wno-string-plus-int',
- '-Wno-unused-variable',
- '-Wno-deprecated-declarations',
- '-Wno-return-type',
- '-Wno-gnu-folding-constant',
- '-Wno-shift-negative-value',
- '-Wno-varargs', # https://git.io/v6Olj
- '-Wno-unused-private-field',
- ],
- },
- 'conditions': [
- ['OS=="linux"', {
- 'cflags': [
- '-Wno-unused-function',
- '-Wno-unused-variable',
- '-Wno-unused-value',
- '-Wno-deprecated-declarations',
- '-Wno-return-type',
- '-Wno-format',
- '-Wno-varargs', # https://git.io/v6Olj
- # Required when building as shared library.
- '-fPIC',
- ],
- }],
- ['OS=="linux" and clang==1', {
- 'cflags': [
- '-Wno-pointer-sign',
- '-Wno-parentheses-equality',
- '-Wno-sometimes-uninitialized',
- '-Wno-string-plus-int',
- '-Wno-shift-negative-value',
- '-Wno-reserved-user-defined-literal',
- '-Wno-implicit-function-declaration',
- '-Wno-long-long',
- ],
- }],
- ],
- }],
- ['_target_name=="node_lib"', {
- 'include_dirs': [
- '<(libchromiumcontent_src_dir)',
- '<(libchromiumcontent_src_dir)/third_party/icu/source/common',
- '<(libchromiumcontent_src_dir)/third_party/icu/source/i18n',
- '<(libchromiumcontent_src_dir)/v8',
- '<(libchromiumcontent_src_dir)/v8/include',
- ],
- 'defines': [
- # Export V8 symbols from node.dll / libnode.so
- 'BUILDING_V8_SHARED',
- 'BUILDING_V8_PLATFORM_SHARED',
- 'BUILDING_V8_BASE_SHARED',
- ],
- 'conditions': [
- ['OS=="mac" and libchromiumcontent_component==0', {
- # -all_load is the "whole-archive" on macOS.
- 'xcode_settings': {
- 'OTHER_LDFLAGS': [ '-Wl,-all_load' ],
- },
- }],
- ['OS=="win"', {
- # Fix passing fd across modules, see |osfhandle.h| for more.
- 'sources': [
- '<(DEPTH)/atom/node/osfhandle.cc',
- '<(DEPTH)/atom/node/osfhandle.h',
- ],
- 'include_dirs': [
- '<(DEPTH)/atom/node',
- ],
- 'libraries': [
- # Node is using networking API but linking with this itself.
- '-lwinmm.lib',
- # Needed by V8.
- '-ldbghelp.lib',
- '-lshlwapi.lib',
- ],
- 'msvs_settings': {
- # Change location of some hard-coded paths.
- 'VCLinkerTool': {
- 'AdditionalOptions!': [
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\zlib<(STATIC_LIB_SUFFIX)',
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\libuv<(STATIC_LIB_SUFFIX)',
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\libopenssl<(openssl_product)',
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\<(openssl_product)',
- ],
- 'AdditionalOptions': [
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\obj\\vendor\\node\\deps\\zlib\\zlib<(STATIC_LIB_SUFFIX)',
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\obj\\vendor\\node\\deps\\uv\\libuv<(STATIC_LIB_SUFFIX)',
- '/WHOLEARCHIVE:<(PRODUCT_DIR)\\obj\\vendor\\node\\deps\\openssl\\openssl<(STATIC_LIB_SUFFIX)',
- ],
- },
- },
- }],
- ['OS=="linux" and libchromiumcontent_component==0', {
- # Prevent the linker from stripping symbols.
- 'ldflags': [
- '-Wl,--whole-archive',
- '<@(libchromiumcontent_v8_libraries)',
- '-Wl,--no-whole-archive',
- ],
- }, {
- 'libraries': [
- '<@(libchromiumcontent_v8_libraries)',
- ],
- }],
- ],
- }],
- ['_target_name=="openssl"', {
- 'xcode_settings': {
- 'DEAD_CODE_STRIPPING': 'YES', # -Wl,-dead_strip
- 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
- 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',
- },
- 'cflags': [
- '-fvisibility=hidden',
- ],
- }],
- ['_target_name=="openssl-cli"', {
- 'ldflags!': [
- '-nostdlib++',
- ]
- }],
- ['_target_name=="libuv"', {
- 'conditions': [
- ['OS=="win"', {
- # Expose libuv's symbols.
- 'defines': [
- 'BUILDING_UV_SHARED=1',
- ],
- }], # OS=="win"
- ],
- }],
- ['_target_name.startswith("crashpad")', {
- 'conditions': [
- ['OS=="mac"', {
- 'xcode_settings': {
- 'WARNING_CFLAGS': [
- '-Wno-unused-private-field',
- '-Wno-address-of-packed-member',
- ],
- },
- }], # OS=="mac"
- ],
- }],
- ['_target_name.startswith("breakpad") or _target_name in ["crash_report_sender", "dump_syms"]', {
- 'conditions': [
- ['OS=="mac"', {
- 'xcode_settings': {
- 'WARNING_CFLAGS': [
- '-Wno-deprecated-declarations',
- '-Wno-deprecated-register',
- '-Wno-unused-private-field',
- '-Wno-unused-function',
- ],
- },
- }], # OS=="mac"
- ['OS=="linux"', {
- 'cflags': [
- '-Wno-empty-body',
- ],
- }], # OS=="linux"
- ['OS=="win"', {
- 'msvs_disabled_warnings': [
- # unreferenced local function has been removed.
- 4505,
- ],
- }], # OS=="win"
- ],
- }],
- ['OS=="linux" and _toolset=="target" and _target_name in ["dump_syms", "node_lib"]', {
- 'conditions': [
- ['libchromiumcontent_component==0', {
- 'libraries': [
- '<(libchromiumcontent_dir)/libc++.a',
- ],
- 'ldflags': [
- '-lpthread',
- ],
- }, {
- 'libraries': [
- '<(libchromiumcontent_dir)/libc++.so',
- ],
- 'ldflags': [
- '-Wl,-rpath=\$$ORIGIN',
- ],
- }],
- ],
- }]
- ],
- 'msvs_cygwin_shell': 0, # Strangely setting it to 1 would make building under cygwin fail.
- 'msvs_disabled_warnings': [
- 4005, # (node.h) macro redefinition
- 4091, # (node_extern.h) '__declspec(dllimport)' : ignored on left of 'node::Environment' when no variable is declared
- 4099, # (pdf_render_settings.h) type name first seen using 'class' now seen using 'struct'
- 4189, # local variable is initialized but not referenced
- 4201, # (uv.h) nameless struct/union
- 4267, # conversion from 'size_t' to 'int', possible loss of data
- 4302, # (atldlgs.h) 'type cast': truncation from 'LPCTSTR' to 'WORD'
- 4458, # (atldlgs.h) declaration of 'dwCommonButtons' hides class member
- 4503, # decorated name length exceeded, name was truncated
- 4530, # C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
- 4577, # 'noexcept' used with no exception handling mode specified
- 4714, # (atomicstring.h) function marked as __forceinline not inlined
- 4800, # (v8.h) forcing value to bool 'true' or 'false'
- 4819, # The file contains a character that cannot be represented in the current code page
- 4838, # (atlgdi.h) conversion from 'int' to 'UINT' requires a narrowing conversion
- 4996, # (atlapp.h) 'GetVersionExW': was declared deprecated
- ],
- },
- 'conditions': [
- # The breakdpad on Windows assumes Debug_x64 and Release_x64 configurations.
- ['OS=="win"', {
- 'target_defaults': {
- 'configurations': {
- 'Debug_x64': {
- },
- 'Release_x64': {
- },
- },
- },
- }], # OS=="win"
- # The breakdpad on Mac assumes Release_Base configuration.
- ['OS=="mac"', {
- 'target_defaults': {
- 'configurations': {
- 'Release_Base': {
- },
- },
- },
- }], # OS=="mac"
- ],
- }
|