diff --git a/.gitignore b/.gitignore index cc70659661a774cb2c6940cdb09c669a4daf1053..7652908e5c03be495891d60fb4815ba02dc96427 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,10 @@ htmlcov/ dist/ *.egg +# Node installation output +node_modules/ +src/node/extension_binary/ + # gcov coverage data reports coverage diff --git a/binding.gyp b/binding.gyp index b1c0214d5fb82b1a1e194f8ac052f89613f7801d..d0932da9571ce6415d050f39e2bb5873d33bc24e 100644 --- a/binding.gyp +++ b/binding.gyp @@ -37,29 +37,46 @@ # Some of this file is built with the help of # https://n8.io/converting-a-c-library-to-gyp/ { - 'variables': { - 'config': '<!(echo $CONFIG)' - }, # TODO: Finish windows support 'target_defaults': { - # Empirically, Node only exports ALPN symbols if its major version is >0. - # io.js always reports versions >0 and always exports ALPN symbols. - # Therefore, Node's major version will be truthy if and only if it - # supports ALPN. The output of "node -v" is v[major].[minor].[patch], - # like "v4.1.1" in a recent version. We use cut to split by period and - # take the first field (resulting in "v[major]"), then use cut again - # to take all but the first character, removing the "v". - 'defines': [ - 'TSI_OPENSSL_ALPN_SUPPORT=<!(node --version | cut -d. -f1 | cut -c2-)' - ], 'include_dirs': [ '.', 'include' ], 'conditions': [ ['OS == "win"', { - "include_dirs": [ "third_party/boringssl/include" ] - }, { + "include_dirs": [ "third_party/boringssl/include" ], + "defines": [ + '_WIN32_WINNT=0x0600', + 'WIN32_LEAN_AND_MEAN', + '_HAS_EXCEPTIONS=0', + 'UNICODE', + '_UNICODE', + 'NOMINMAX', + 'OPENSSL_NO_ASM' + ], + "msvs_settings": { + 'VCCLCompilerTool': { + 'RuntimeLibrary': 1, # static debug + } + }, + "libraries": [ + "ws2_32" + ] + }, { # OS != "win" + # Empirically, Node only exports ALPN symbols if its major version is >0. + # io.js always reports versions >0 and always exports ALPN symbols. + # Therefore, Node's major version will be truthy if and only if it + # supports ALPN. The output of "node -v" is v[major].[minor].[patch], + # like "v4.1.1" in a recent version. We use cut to split by period and + # take the first field (resulting in "v[major]"), then use cut again + # to take all but the first character, removing the "v". + 'defines': [ + 'TSI_OPENSSL_ALPN_SUPPORT=<!(node --version | cut -d. -f1 | cut -c2-)' + ], + 'variables': { + 'config': '<!(echo $CONFIG)' + }, 'include_dirs': [ '<(node_root_dir)/deps/openssl/openssl/include', '<(node_root_dir)/deps/zlib' diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc index a2b8e0d22bf12563cfe5c6428c1b54294a34b194..654c5aed09bcd75b4cfaf8bf7186cc73352a2cec 100644 --- a/src/node/ext/node_grpc.cc +++ b/src/node/ext/node_grpc.cc @@ -112,8 +112,8 @@ void InitCallErrorConstants(Local<Object> exports) { Nan::Set(exports, Nan::New("callError").ToLocalChecked(), call_error); Local<Value> OK(Nan::New<Uint32, uint32_t>(GRPC_CALL_OK)); Nan::Set(call_error, Nan::New("OK").ToLocalChecked(), OK); - Local<Value> ERROR(Nan::New<Uint32, uint32_t>(GRPC_CALL_ERROR)); - Nan::Set(call_error, Nan::New("ERROR").ToLocalChecked(), ERROR); + Local<Value> CALL_ERROR(Nan::New<Uint32, uint32_t>(GRPC_CALL_ERROR)); + Nan::Set(call_error, Nan::New("ERROR").ToLocalChecked(), CALL_ERROR); Local<Value> NOT_ON_SERVER( Nan::New<Uint32, uint32_t>(GRPC_CALL_ERROR_NOT_ON_SERVER)); Nan::Set(call_error, Nan::New("NOT_ON_SERVER").ToLocalChecked(),