diff --git a/common.gypi b/common.gypi index 5bffe1c6..63bc0dbb 100644 --- a/common.gypi +++ b/common.gypi @@ -158,7 +158,7 @@ 'cflags': [ '-fPIC' ], 'ldflags': [ '-fPIC' ] }], - ['clang==1', { + ['OS == "msvc" and clang==1', { 'msbuild_toolset': 'ClangCL', }], ], @@ -249,7 +249,7 @@ 'cflags': [ '-fPIC', '-I<(android_ndk_path)/sources/android/cpufeatures' ], 'ldflags': [ '-fPIC' ] }], - ['clang==1', { + ['OS == "msvc" and clang==1', { 'msbuild_toolset': 'ClangCL', }], ], @@ -504,6 +504,11 @@ 'NOMINMAX', ], }], + ['OS == "win" and OS != "msvc"', { + 'cflags': [ '-Wno-nullability-completeness' ], + 'cflags_cc': [ '-fno-strict-aliasing' ], + 'ldflags': [ '-pthread' ], + }], [ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', { 'cflags': [ '-pthread' ], 'ldflags': [ '-pthread' ], diff --git a/deps/llhttp/llhttp.gyp b/deps/llhttp/llhttp.gyp index c7b8800a..b6703471 100644 --- a/deps/llhttp/llhttp.gyp +++ b/deps/llhttp/llhttp.gyp @@ -10,6 +10,11 @@ { 'target_name': 'llhttp', 'type': 'static_library', + 'conditions': [ + [ 'target_arch!="arm64"', { + 'cflags_c': [ '-mssse3' ], + }], + ], 'include_dirs': [ '.', 'include' ], 'direct_dependent_settings': { 'include_dirs': [ 'include' ], diff --git a/deps/ncrypto/ncrypto.gyp b/deps/ncrypto/ncrypto.gyp index cf9b7c6c..f4004798 100644 --- a/deps/ncrypto/ncrypto.gyp +++ b/deps/ncrypto/ncrypto.gyp @@ -16,6 +16,11 @@ }, 'sources': [ '<@(ncrypto_sources)' ], 'conditions': [ + ['OS!="msvc"', { + 'cflags': [ + '-Wno-deprecated-declarations', + ], + }], ['node_shared_openssl=="false"', { 'dependencies': [ '../openssl/openssl.gyp:openssl' diff --git a/deps/ngtcp2/ngtcp2.gyp b/deps/ngtcp2/ngtcp2.gyp index ca64d167..84add94b 100644 --- a/deps/ngtcp2/ngtcp2.gyp +++ b/deps/ngtcp2/ngtcp2.gyp @@ -111,6 +111,7 @@ 'defines': ['HAVE_UNISTD_H'] }], ['OS=="win"', { + 'cflags_c': [ '-mssse3' ], 'defines': [ 'WIN32', '_WINDOWS', diff --git a/deps/uv/include/uv/win.h b/deps/uv/include/uv/win.h index a88bf29e..5e20606c 100644 --- a/deps/uv/include/uv/win.h +++ b/deps/uv/include/uv/win.h @@ -279,7 +279,7 @@ typedef struct { DWORD tls_index; } uv_key_t; -#define UV_ONCE_INIT { 0, NULL } +#define UV_ONCE_INIT { 0, INIT_ONCE_STATIC_INIT } typedef struct uv_once_s { unsigned char unused; diff --git a/deps/uv/src/win/util.c b/deps/uv/src/win/util.c index 57061bf8..ba6ac88a 100644 --- a/deps/uv/src/win/util.c +++ b/deps/uv/src/win/util.c @@ -509,7 +509,7 @@ unsigned int uv_available_parallelism(void) { DWORD_PTR procmask; DWORD_PTR sysmask; int count; - int i; + unsigned int i; /* TODO(bnoordhuis) Use GetLogicalProcessorInformationEx() to support systems * with > 64 CPUs? See https://github.com/libuv/libuv/pull/3458 diff --git a/deps/uv/uv.gyp b/deps/uv/uv.gyp index 540445f1..823e6564 100644 --- a/deps/uv/uv.gyp +++ b/deps/uv/uv.gyp @@ -194,6 +194,19 @@ }, 'conditions': [ [ 'OS=="win"', { + 'conditions': [ + ['OS!="msvc"', { + 'type': 'static_library', + 'conditions': [ + ['clang==0', { + 'cflags': [ + '-Wno-cast-function-type', + '-Wno-maybe-uninitialized', + ], + }], + ], + }], + ], 'defines': [ '_WIN32_WINNT=0x0602', '_GNU_SOURCE', diff --git a/node.gyp b/node.gyp index fc14d6e5..a3e2ef44 100644 --- a/node.gyp +++ b/node.gyp @@ -462,14 +462,14 @@ # Putting these explicitly here so not to depend on `common.gypi`. # `common.gypi` need to be more general because it is used to build userland native addons. # Refs: https://github.com/nodejs/node-gyp/issues/1118 - 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], + 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', '-Wno-unused-variable', '-Wno-deprecated-declarations', ], 'xcode_settings': { 'WARNING_CFLAGS': [ '-Wall', '-Wendif-labels', '-W', '-Wno-unused-parameter', - '-Werror=undefined-inline', + '-Wno-undefined-inline', '-Werror=extra-semi', '-Werror=ctad-maybe-unsupported', ], @@ -574,6 +574,9 @@ 'WARNING_CFLAGS': [ '-Werror' ], }, }], + [ 'OS=="win" and OS!="msvc"', { + 'sources': [ 'src/res/node.rc' ], + }], [ 'node_intermediate_lib_type=="static_library" and ' 'node_shared=="true" and OS in "aix os400"', { # For AIX, shared lib is linked by static lib and .exp. In the @@ -584,7 +587,7 @@ }, { 'dependencies': [ '<(node_lib_target_name)' ], 'conditions': [ - ['OS=="win" and node_shared=="true"', { + ['OS=="msvc" and node_shared=="true"', { 'dependencies': ['generate_node_def'], 'msvs_settings': { 'VCLinkerTool': { @@ -618,7 +621,7 @@ '-Wl,--no-whole-archive', ], }], - [ 'OS=="win"', { + [ 'OS=="msvc"', { 'sources': [ 'src/res/node.rc' ], }], ], @@ -1470,7 +1473,7 @@ }, ] }], # end aix section - ['OS=="win" and node_shared=="true"', { + ['OS=="msvc" and node_shared=="true"', { 'targets': [ { 'target_name': 'gen_node_def', diff --git a/node.gypi b/node.gypi index a851fbbc..0b1d13c2 100644 --- a/node.gypi +++ b/node.gypi @@ -28,11 +28,14 @@ 'conditions': [ [ 'clang==1', { 'cflags': [ - '-Werror=undefined-inline', + '-Wno-undefined-inline', '-Werror=extra-semi', '-Werror=ctad-maybe-unsupported', ], }], + [ 'clang==0', { + 'cflags_cc': [ '-Wno-template-id-cdtor' ], + }], [ '"<(_type)"=="executable"', { 'msvs_settings': { 'VCManifestTool': { @@ -77,7 +80,10 @@ '<(_msvs_precompiled_header)', '<(_msvs_precompiled_source)', ], - }] + }], + ['node_shared_openssl=="true"', { + 'libraries': [ '-lcrypt32' ], + }], ] }, { # POSIX 'defines': [ '__POSIX__' ],