2013-06-19 17:31:57 +04:00
|
|
|
{
|
2015-04-01 15:26:46 +03:00
|
|
|
'includes': [
|
2015-07-01 10:47:21 +03:00
|
|
|
'toolchain.gypi',
|
2017-05-09 23:38:14 +03:00
|
|
|
'brightray/brightray.gypi',
|
2015-04-01 15:26:46 +03:00
|
|
|
],
|
2013-06-19 17:31:57 +04:00
|
|
|
'variables': {
|
2016-03-08 11:58:59 +03:00
|
|
|
# Tell crashpad to build as external project.
|
|
|
|
'crashpad_dependencies': 'external',
|
2014-12-10 04:25:45 +03:00
|
|
|
# Required by breakpad.
|
|
|
|
'os_bsd': 0,
|
2015-07-01 11:59:17 +03:00
|
|
|
'chromeos': 0,
|
2013-07-02 05:16:56 +04:00
|
|
|
# Reflects node's config.gypi.
|
2013-12-09 19:18:36 +04:00
|
|
|
'component%': 'static_library',
|
2017-11-03 12:00:25 +03:00
|
|
|
'debug_http2': 'false',
|
|
|
|
'debug_nghttp2': 'false',
|
2018-01-06 18:58:24 +03:00
|
|
|
# XXX(alexeykuzmin): Must match the clang version we use. See `clang -v`.
|
|
|
|
'llvm_version': '6.0',
|
2013-07-02 05:16:56 +04:00
|
|
|
'python': 'python',
|
2015-06-29 07:18:50 +03:00
|
|
|
'openssl_fips': '',
|
2015-04-07 12:26:21 +03:00
|
|
|
'openssl_no_asm': 1,
|
2016-07-24 15:19:30 +03:00
|
|
|
'use_openssl_def': 0,
|
2016-07-21 09:52:15 +03:00
|
|
|
'OPENSSL_PRODUCT': 'libopenssl.a',
|
2017-05-18 00:58:09 +03:00
|
|
|
'node_release_urlbase': 'https://atom.io/download/electron',
|
2016-04-05 23:28:50 +03:00
|
|
|
'node_byteorder': '<!(node <(DEPTH)/tools/get-endianness.js)',
|
2015-06-10 09:11:34 +03:00
|
|
|
'node_target_type': 'shared_library',
|
2013-07-02 05:16:56 +04:00
|
|
|
'node_install_npm': 'false',
|
|
|
|
'node_prefix': '',
|
2016-07-21 09:52:15 +03:00
|
|
|
'node_shared': 'true',
|
2013-07-02 05:16:56 +04:00
|
|
|
'node_shared_cares': 'false',
|
|
|
|
'node_shared_http_parser': 'false',
|
|
|
|
'node_shared_libuv': 'false',
|
2015-04-09 15:58:11 +03:00
|
|
|
'node_shared_openssl': 'false',
|
2013-07-02 05:16:56 +04:00
|
|
|
'node_shared_v8': 'true',
|
|
|
|
'node_shared_zlib': 'false',
|
|
|
|
'node_tag': '',
|
|
|
|
'node_use_dtrace': 'false',
|
|
|
|
'node_use_etw': 'false',
|
2014-06-28 15:31:04 +04:00
|
|
|
'node_use_mdb': 'false',
|
2013-07-02 05:16:56 +04:00
|
|
|
'node_use_openssl': 'true',
|
|
|
|
'node_use_perfctr': 'false',
|
2016-07-21 09:52:15 +03:00
|
|
|
'node_use_v8_platform': 'false',
|
|
|
|
'node_use_bundled_v8': 'false',
|
2016-09-08 09:26:02 +03:00
|
|
|
'node_enable_d8': 'false',
|
2014-06-28 15:31:04 +04:00
|
|
|
'uv_library': 'static_library',
|
|
|
|
'uv_parent_path': 'vendor/node/deps/uv',
|
|
|
|
'uv_use_dtrace': 'false',
|
2015-06-10 11:30:47 +03:00
|
|
|
'V8_BASE': '',
|
2013-12-09 19:18:36 +04:00
|
|
|
'v8_postmortem_support': 'false',
|
2014-12-08 00:09:50 +03:00
|
|
|
'v8_enable_i18n_support': 'false',
|
2017-07-11 20:09:02 +03:00
|
|
|
'v8_enable_inspector': '1',
|
2013-06-19 17:31:57 +04:00
|
|
|
},
|
2013-07-01 13:58:01 +04:00
|
|
|
# Settings to compile node under Windows.
|
|
|
|
'target_defaults': {
|
|
|
|
'target_conditions': [
|
2017-11-03 18:03:17 +03:00
|
|
|
['_target_name in ["libuv", "http_parser", "openssl", "openssl-cli", "cares", "node", "zlib", "nghttp2"]', {
|
2013-07-01 13:58:01 +04:00
|
|
|
'msvs_disabled_warnings': [
|
2016-03-10 09:57:03 +03:00
|
|
|
4003, # not enough actual parameters for macro 'V'
|
2013-07-01 13:58:01 +04:00
|
|
|
4013, # 'free' undefined; assuming extern returning int
|
2015-04-07 08:50:58 +03:00
|
|
|
4018, # signed/unsigned mismatch
|
2013-07-01 13:58:01 +04:00
|
|
|
4054, #
|
2015-06-23 05:18:43 +03:00
|
|
|
4055, # 'type cast' : from data pointer 'void *' to function pointer
|
2013-07-01 13:58:01 +04:00
|
|
|
4057, # 'function' : 'volatile LONG *' differs in indirection to slightly different base types from 'unsigned long *'
|
2016-05-10 14:08:47 +03:00
|
|
|
4065, # switch statement contains 'default' but no 'case' labels
|
2013-07-01 13:58:01 +04:00
|
|
|
4189, #
|
|
|
|
4131, # uses old-style declarator
|
|
|
|
4133, # incompatible types
|
2013-12-17 10:01:40 +04:00
|
|
|
4146, # unary minus operator applied to unsigned type, result still unsigned
|
2015-06-23 05:18:43 +03:00
|
|
|
4164, # intrinsic function not declared
|
2013-07-01 13:58:01 +04:00
|
|
|
4152, # function/data pointer conversion in expression
|
|
|
|
4206, # translation unit is empty
|
|
|
|
4204, # non-constant aggregate initializer
|
2015-04-07 09:03:16 +03:00
|
|
|
4210, # nonstandard extension used : function given file scope
|
2013-07-01 14:45:46 +04:00
|
|
|
4214, # bit field types other than int
|
2013-07-01 14:36:58 +04:00
|
|
|
4232, # address of dllimport 'free' is not static, identity not guaranteed
|
2014-01-13 14:43:09 +04:00
|
|
|
4291, # no matching operator delete found
|
2013-07-01 14:36:58 +04:00
|
|
|
4295, # array is too small to include a terminating null character
|
2016-05-10 07:09:41 +03:00
|
|
|
4311, # 'type cast': pointer truncation from 'void *const ' to 'unsigned long'
|
2013-07-01 13:58:01 +04:00
|
|
|
4389, # '==' : signed/unsigned mismatch
|
2016-05-10 07:09:41 +03:00
|
|
|
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'
|
2013-07-01 13:58:01 +04:00
|
|
|
4505, # unreferenced local function has been removed
|
|
|
|
4701, # potentially uninitialized local variable 'sizew' used
|
2015-06-23 05:18:43 +03:00
|
|
|
4703, # potentially uninitialized local pointer variable 'req' used
|
2013-07-01 13:58:01 +04:00
|
|
|
4706, # assignment within conditional expression
|
2014-01-13 14:41:40 +04:00
|
|
|
4804, # unsafe use of type 'bool' in operation
|
|
|
|
4996, # this function or variable may be unsafe.
|
2013-07-01 13:58:01 +04:00
|
|
|
],
|
|
|
|
'msvs_settings': {
|
|
|
|
'VCCLCompilerTool': {
|
|
|
|
'WarnAsError': 'false',
|
|
|
|
},
|
|
|
|
},
|
2013-07-02 05:16:56 +04:00
|
|
|
'xcode_settings': {
|
2013-11-12 14:16:37 +04:00
|
|
|
'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',
|
|
|
|
'WARNING_CFLAGS': [
|
2015-09-10 06:15:35 +03:00
|
|
|
'-Wno-unknown-warning-option',
|
2013-11-12 14:16:37 +04:00
|
|
|
'-Wno-parentheses-equality',
|
|
|
|
'-Wno-unused-function',
|
|
|
|
'-Wno-sometimes-uninitialized',
|
|
|
|
'-Wno-pointer-sign',
|
2015-04-07 12:26:21 +03:00
|
|
|
'-Wno-sign-compare',
|
2013-11-12 14:16:37 +04:00
|
|
|
'-Wno-string-plus-int',
|
|
|
|
'-Wno-unused-variable',
|
|
|
|
'-Wno-deprecated-declarations',
|
|
|
|
'-Wno-return-type',
|
2014-12-04 02:21:50 +03:00
|
|
|
'-Wno-gnu-folding-constant',
|
2015-09-02 12:31:08 +03:00
|
|
|
'-Wno-shift-negative-value',
|
2016-08-11 21:55:56 +03:00
|
|
|
'-Wno-varargs', # https://git.io/v6Olj
|
2013-11-12 14:16:37 +04:00
|
|
|
],
|
2013-07-02 05:16:56 +04:00
|
|
|
},
|
2013-12-31 15:40:19 +04:00
|
|
|
'conditions': [
|
|
|
|
['OS=="linux"', {
|
|
|
|
'cflags': [
|
|
|
|
'-Wno-unused-function',
|
|
|
|
'-Wno-unused-variable',
|
2014-02-20 14:58:56 +04:00
|
|
|
'-Wno-unused-value',
|
2013-12-31 15:40:19 +04:00
|
|
|
'-Wno-deprecated-declarations',
|
|
|
|
'-Wno-return-type',
|
2016-12-15 05:06:59 +03:00
|
|
|
'-Wno-format',
|
2016-08-11 21:55:56 +03:00
|
|
|
'-Wno-varargs', # https://git.io/v6Olj
|
2015-04-10 07:07:53 +03:00
|
|
|
# Required when building as shared library.
|
|
|
|
'-fPIC',
|
2013-12-31 15:40:19 +04:00
|
|
|
],
|
|
|
|
}],
|
2017-11-21 15:48:06 +03:00
|
|
|
['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',
|
|
|
|
],
|
|
|
|
}],
|
2013-12-31 15:40:19 +04:00
|
|
|
],
|
2013-07-01 13:58:01 +04:00
|
|
|
}],
|
2015-04-01 15:26:46 +03:00
|
|
|
['_target_name=="node"', {
|
2015-06-10 09:11:34 +03:00
|
|
|
'include_dirs': [
|
2017-02-07 11:07:43 +03:00
|
|
|
'<(libchromiumcontent_src_dir)',
|
|
|
|
'<(libchromiumcontent_src_dir)/third_party/icu/source/common',
|
|
|
|
'<(libchromiumcontent_src_dir)/third_party/icu/source/i18n',
|
2015-06-10 09:11:34 +03:00
|
|
|
'<(libchromiumcontent_src_dir)/v8',
|
|
|
|
'<(libchromiumcontent_src_dir)/v8/include',
|
|
|
|
],
|
2017-10-26 12:29:55 +03:00
|
|
|
'defines': [
|
|
|
|
# Export V8 symbols from node.dll / libnode.so
|
|
|
|
'BUILDING_V8_SHARED',
|
|
|
|
'BUILDING_V8_PLATFORM_SHARED',
|
|
|
|
'BUILDING_V8_BASE_SHARED',
|
|
|
|
],
|
2015-04-10 07:07:53 +03:00
|
|
|
'conditions': [
|
2015-04-10 08:24:58 +03:00
|
|
|
['OS=="mac" and libchromiumcontent_component==0', {
|
2016-06-18 16:26:26 +03:00
|
|
|
# -all_load is the "whole-archive" on macOS.
|
2015-04-10 08:24:58 +03:00
|
|
|
'xcode_settings': {
|
|
|
|
'OTHER_LDFLAGS': [ '-Wl,-all_load' ],
|
|
|
|
},
|
|
|
|
}],
|
2015-04-11 14:51:11 +03:00
|
|
|
['OS=="win"', {
|
2016-05-19 11:02:40 +03:00
|
|
|
# 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',
|
|
|
|
],
|
2016-12-12 04:35:29 +03:00
|
|
|
'libraries': [
|
|
|
|
# Node is using networking API but linking with this itself.
|
|
|
|
'-lwinmm.lib',
|
|
|
|
# Needed by V8.
|
|
|
|
'-ldbghelp.lib',
|
|
|
|
'-lshlwapi.lib',
|
|
|
|
],
|
2015-04-10 10:35:25 +03:00
|
|
|
}],
|
2015-04-10 07:07:53 +03:00
|
|
|
['OS=="linux" and libchromiumcontent_component==0', {
|
2015-04-10 08:24:58 +03:00
|
|
|
# Prevent the linker from stripping symbols.
|
2015-04-10 07:07:53 +03:00
|
|
|
'ldflags': [
|
|
|
|
'-Wl,--whole-archive',
|
|
|
|
'<@(libchromiumcontent_v8_libraries)',
|
|
|
|
'-Wl,--no-whole-archive',
|
|
|
|
],
|
|
|
|
}, {
|
2018-01-30 09:28:32 +03:00
|
|
|
'libraries': [
|
|
|
|
'<@(libchromiumcontent_v8_libraries)',
|
|
|
|
'<(libchromiumcontent_dir)/libc++.so',
|
|
|
|
],
|
2015-04-10 07:07:53 +03:00
|
|
|
}],
|
|
|
|
],
|
2015-04-01 15:26:46 +03:00
|
|
|
}],
|
2015-04-10 12:56:46 +03:00
|
|
|
['_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',
|
|
|
|
],
|
|
|
|
}],
|
2013-10-28 06:43:01 +04:00
|
|
|
['_target_name=="libuv"', {
|
|
|
|
'conditions': [
|
|
|
|
['OS=="win"', {
|
|
|
|
# Expose libuv's symbols.
|
|
|
|
'defines': [
|
|
|
|
'BUILDING_UV_SHARED=1',
|
|
|
|
],
|
|
|
|
}], # OS=="win"
|
|
|
|
],
|
|
|
|
}],
|
2016-09-06 11:24:37 +03:00
|
|
|
['_target_name.startswith("crashpad")', {
|
|
|
|
'conditions': [
|
|
|
|
['OS=="mac"', {
|
|
|
|
'xcode_settings': {
|
|
|
|
'WARNING_CFLAGS': [
|
|
|
|
'-Wno-unused-private-field',
|
2017-01-20 02:32:03 +03:00
|
|
|
'-Wno-address-of-packed-member',
|
2016-09-06 11:24:37 +03:00
|
|
|
],
|
|
|
|
},
|
|
|
|
}], # OS=="mac"
|
|
|
|
],
|
|
|
|
}],
|
2013-11-15 18:52:08 +04:00
|
|
|
['_target_name.startswith("breakpad") or _target_name in ["crash_report_sender", "dump_syms"]', {
|
2014-02-26 11:43:22 +04:00
|
|
|
'conditions': [
|
|
|
|
['OS=="mac"', {
|
|
|
|
'xcode_settings': {
|
|
|
|
'WARNING_CFLAGS': [
|
|
|
|
'-Wno-deprecated-declarations',
|
2014-05-09 06:04:13 +04:00
|
|
|
'-Wno-deprecated-register',
|
2014-02-26 11:43:22 +04:00
|
|
|
'-Wno-unused-private-field',
|
|
|
|
'-Wno-unused-function',
|
|
|
|
],
|
|
|
|
},
|
|
|
|
}], # OS=="mac"
|
|
|
|
['OS=="linux"', {
|
|
|
|
'cflags': [
|
|
|
|
'-Wno-empty-body',
|
|
|
|
],
|
|
|
|
}], # OS=="linux"
|
2015-04-07 08:50:58 +03:00
|
|
|
['OS=="win"', {
|
|
|
|
'msvs_disabled_warnings': [
|
|
|
|
# unreferenced local function has been removed.
|
|
|
|
4505,
|
|
|
|
],
|
|
|
|
}], # OS=="win"
|
2014-02-26 11:43:22 +04:00
|
|
|
],
|
2013-11-12 14:16:37 +04:00
|
|
|
}],
|
2018-01-30 09:28:32 +03:00
|
|
|
['OS=="linux" and _target_name in ["dump_syms"]', {
|
|
|
|
'conditions': [
|
|
|
|
['libchromiumcontent_component==0', {
|
|
|
|
'libraries': [
|
|
|
|
'<(libchromiumcontent_dir)/libc++.a',
|
|
|
|
],
|
|
|
|
}, {
|
|
|
|
'libraries': [
|
|
|
|
'<(libchromiumcontent_dir)/libc++.so',
|
|
|
|
],
|
|
|
|
'ldflags': [
|
|
|
|
'-Wl,-rpath=\$$ORIGIN',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}]
|
2013-07-01 13:58:01 +04:00
|
|
|
],
|
|
|
|
'msvs_cygwin_shell': 0, # Strangely setting it to 1 would make building under cygwin fail.
|
|
|
|
'msvs_disabled_warnings': [
|
|
|
|
4005, # (node.h) macro redefinition
|
2016-03-27 13:50:34 +03:00
|
|
|
4091, # (node_extern.h) '__declspec(dllimport)' : ignored on left of 'node::Environment' when no variable is declared
|
2017-01-26 10:10:28 +03:00
|
|
|
4099, # (pdf_render_settings.h) type name first seen using 'class' now seen using 'struct'
|
2013-07-02 14:47:51 +04:00
|
|
|
4189, # local variable is initialized but not referenced
|
2013-07-01 13:58:01 +04:00
|
|
|
4201, # (uv.h) nameless struct/union
|
2015-04-11 14:17:03 +03:00
|
|
|
4267, # conversion from 'size_t' to 'int', possible loss of data
|
2016-05-10 07:09:41 +03:00
|
|
|
4302, # (atldlgs.h) 'type cast': truncation from 'LPCTSTR' to 'WORD'
|
|
|
|
4458, # (atldlgs.h) declaration of 'dwCommonButtons' hides class member
|
2014-12-16 22:27:38 +03:00
|
|
|
4503, # decorated name length exceeded, name was truncated
|
2017-10-10 21:31:28 +03:00
|
|
|
4530, # C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
|
|
|
|
4577, # 'noexcept' used with no exception handling mode specified
|
2017-04-17 13:42:12 +03:00
|
|
|
4714, # (atomicstring.h) function marked as __forceinline not inlined
|
2013-07-01 13:58:01 +04:00
|
|
|
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
|
2016-05-10 07:09:41 +03:00
|
|
|
4838, # (atlgdi.h) conversion from 'int' to 'UINT' requires a narrowing conversion
|
2014-06-27 07:04:58 +04:00
|
|
|
4996, # (atlapp.h) 'GetVersionExW': was declared deprecated
|
2013-07-01 13:58:01 +04:00
|
|
|
],
|
|
|
|
},
|
2013-06-19 17:31:57 +04:00
|
|
|
'conditions': [
|
2013-11-19 16:43:30 +04:00
|
|
|
# The breakdpad on Windows assumes Debug_x64 and Release_x64 configurations.
|
|
|
|
['OS=="win"', {
|
|
|
|
'target_defaults': {
|
|
|
|
'configurations': {
|
|
|
|
'Debug_x64': {
|
|
|
|
},
|
|
|
|
'Release_x64': {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}], # OS=="win"
|
2014-01-21 16:34:35 +04:00
|
|
|
# The breakdpad on Mac assumes Release_Base configuration.
|
|
|
|
['OS=="mac"', {
|
|
|
|
'target_defaults': {
|
|
|
|
'configurations': {
|
|
|
|
'Release_Base': {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}], # OS=="mac"
|
2013-06-19 17:31:57 +04:00
|
|
|
],
|
|
|
|
}
|