diff options
Diffstat (limited to 'templates/binding.gyp.template')
-rw-r--r-- | templates/binding.gyp.template | 371 |
1 files changed, 0 insertions, 371 deletions
diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template deleted file mode 100644 index adb7d9f774..0000000000 --- a/templates/binding.gyp.template +++ /dev/null @@ -1,371 +0,0 @@ -%YAML 1.2 ---- | - # GRPC Node gyp file - # This currently builds the Node extension and dependencies - # This file has been automatically generated from a template file. - # Please look at the templates directory instead. - # This file can be regenerated from the template by running - # tools/buildgen/generate_projects.sh - - # Copyright 2015 gRPC authors. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - - # Some of this file is built with the help of - # https://n8.io/converting-a-c-library-to-gyp/ - { - 'variables': { - 'runtime%': 'node', - # Some Node installations use the system installation of OpenSSL, and on - # some systems, the system OpenSSL still does not have ALPN support. This - # will let users recompile gRPC to work without ALPN. - 'grpc_alpn%': 'true', - # Indicates that the library should be built with gcov. - 'grpc_gcov%': 'false', - # Indicates that the library should be built with compatibility for musl - # libc, so that it can run on Alpine Linux. This is only necessary if not - # building on Alpine Linux - 'grpc_alpine%': 'false' - }, - 'target_defaults': { - 'configurations': { - % for name, args in configs.iteritems(): - % if name in ['dbg', 'opt']: - '${{'dbg':'Debug', 'opt': 'Release'}[name]}': { - % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines')]: - % if args.get(arg, None) is not None: - '${prop}': [ - % for item in args.get(arg).split(): - '${item}', - % endfor - ], - % endif - % endfor - }, - % endif - % endfor - }, - % for arg, prop in [('CPPFLAGS', 'cflags'), ('LDFLAGS', 'ldflags')]: - % if defaults['global'].get(arg, None) is not None: - '${prop}': [ - % for item in defaults['global'].get(arg).split(): - '${item}', - % endfor - ], - % endif - % endfor - 'cflags_c': [ - '-Werror', - '-std=c99' - ], - 'cflags_cc': [ - '-Werror', - '-std=c++11' - ], - 'include_dirs': [ - '.', - 'include' - ], - 'defines': [ - 'GPR_BACKWARDS_COMPATIBILITY_MODE', - 'GRPC_ARES=0', - 'GRPC_UV' - ], - 'conditions': [ - ['grpc_gcov=="true"', { - % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines'), ('LDFLAGS', 'ldflags')]: - % if configs['gcov'].get(arg, None) is not None: - '${prop}': [ - % for item in configs['gcov'].get(arg).split(): - '${item}', - % endfor - ], - % endif - % endfor - }], - ['grpc_alpine=="true"', { - 'defines': [ - 'GPR_MUSL_LIBC_COMPAT' - ] - }], - ['OS!="win" and runtime=="electron"', { - "defines": [ - 'OPENSSL_NO_THREADS' - ] - }], - # This is the condition for using boringssl - ['OS=="win" or runtime=="electron"', { - "include_dirs": [ - "third_party/boringssl/include" - ], - "defines": [ - 'OPENSSL_NO_ASM' - ] - }, { - 'conditions': [ - ["target_arch=='ia32'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/piii" ] - }], - ["target_arch=='x64'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/k8" ] - }], - ["target_arch=='arm'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/arm" ] - }], - ['grpc_alpn=="true"', { - 'defines': [ - 'TSI_OPENSSL_ALPN_SUPPORT=1' - ], - }, { - 'defines': [ - 'TSI_OPENSSL_ALPN_SUPPORT=0' - ], - }] - ], - 'include_dirs': [ - '<(node_root_dir)/deps/openssl/openssl/include', - ] - }], - ['OS == "win"', { - "include_dirs": [ - "third_party/zlib", - "third_party/cares/cares" - ], - "defines": [ - '_WIN32_WINNT=0x0600', - 'WIN32_LEAN_AND_MEAN', - '_HAS_EXCEPTIONS=0', - 'UNICODE', - '_UNICODE', - 'NOMINMAX', - ], - "msvs_settings": { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - } - }, - "libraries": [ - "ws2_32" - ] - }, { # OS != "win" - 'include_dirs': [ - '<(node_root_dir)/deps/zlib', - '<(node_root_dir)/deps/cares/include' - ] - }], - ['OS == "mac"', { - 'xcode_settings': { - % if defaults['global'].get('CPPFLAGS', None) is not None: - 'OTHER_CFLAGS': [ - % for item in defaults['global'].get('CPPFLAGS').split(): - '${item}', - % endfor - ], - 'OTHER_CPLUSPLUSFLAGS': [ - % for item in defaults['global'].get('CPPFLAGS').split(): - '${item}', - % endfor - '-stdlib=libc++', - '-std=c++11', - '-Wno-error=deprecated-declarations' - ], - % endif - }, - }] - ] - }, - 'conditions': [ - ['OS=="win" or runtime=="electron"', { - 'targets': [ - % for module in node_modules: - % for lib in libs: - % if lib.name in module.transitive_deps and lib.name == 'boringssl': - { - 'target_name': '${lib.name}', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - % for dep in getattr(lib, 'deps', []): - '${dep}', - % endfor - ], - 'sources': [ - % for source in lib.src: - '${source}', - % endfor - ], - 'conditions': [ - ['OS == "mac"', { - 'xcode_settings': { - 'MACOSX_DEPLOYMENT_TARGET': '10.9' - } - }] - ] - }, - % endif - % endfor - % endfor - ], - }], - ['OS == "win" and runtime!="electron"', { - 'targets': [ - { - # IMPORTANT WINDOWS BUILD INFORMATION - # This library does not build on Windows without modifying the Node - # development packages that node-gyp downloads in order to build. - # Due to https://github.com/nodejs/node/issues/4932, the headers for - # BoringSSL conflict with the OpenSSL headers included by default - # when including the Node headers. The remedy for this is to remove - # the OpenSSL headers, from the downloaded Node development package, - # which is typically located in `.node-gyp` in your home directory. - # - # This is not true of Electron, which does not have OpenSSL headers. - 'target_name': 'WINDOWS_BUILD_WARNING', - 'rules': [ - { - 'rule_name': 'WINDOWS_BUILD_WARNING', - 'extension': 'S', - 'inputs': [ - 'package.json' - ], - 'outputs': [ - 'ignore_this_part' - ], - 'action': ['echo', 'IMPORTANT: Due to https://github.com/nodejs/node/issues/4932, to build this library on Windows, you must first remove <(node_root_dir)/include/node/openssl/'] - } - ] - }, - ] - }], - ['OS == "win"', { - 'targets': [ - # Only want to compile zlib under Windows - % for module in node_modules: - % for lib in libs: - % if lib.name in module.transitive_deps and lib.name == 'z': - { - 'target_name': '${lib.name}', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - % for dep in getattr(lib, 'deps', []): - '${dep}', - % endfor - ], - 'sources': [ - % for source in lib.src: - '${source}', - % endfor - ] - }, - % endif - % endfor - % endfor - ] - }] - ], - 'targets': [ - % for module in node_modules: - % for lib in libs: - % if lib.name in module.transitive_deps and lib.name not in ('boringssl', 'z'): - { - 'target_name': '${lib.name}', - 'product_prefix': 'lib', - 'type': 'static_library', - 'dependencies': [ - % for dep in getattr(lib, 'deps', []): - '${dep}', - % endfor - ], - 'sources': [ - % for source in lib.src: - '${source}', - % endfor - ], - 'conditions': [ - ['OS == "mac"', { - 'xcode_settings': { - 'MACOSX_DEPLOYMENT_TARGET': '10.9' - } - }] - ] - }, - % endif - % endfor - { - 'include_dirs': [ - "<!(node -e \"require('nan')\")" - ], - 'cflags': [ - '-pthread', - '-zdefs', - '-Wno-error=deprecated-declarations' - ], - "conditions": [ - ['OS=="win" or runtime=="electron"', { - 'dependencies': [ - % for dep in getattr(module, 'deps', []): - % if dep == 'boringssl': - "${dep}", - % endif - % endfor - ] - }], - ['OS=="win"', { - 'dependencies': [ - % for dep in getattr(module, 'deps', []): - % if dep == 'z': - "${dep}", - % endif - % endfor - ] - }], - ['OS=="linux"', { - 'ldflags': [ - '-Wl,-wrap,memcpy' - ] - }], - ['OS == "mac"', { - 'xcode_settings': { - 'MACOSX_DEPLOYMENT_TARGET': '10.9' - } - }] - ], - "target_name": "${module.name}", - "sources": [ - % for source in module.src: - "${source}", - % endfor - ], - "dependencies": [ - % for dep in getattr(module, 'deps', []): - % if dep not in ('boringssl', 'z'): - "${dep}", - % endif - % endfor - ] - }, - % endfor - { - "target_name": "action_after_build", - "type": "none", - "dependencies": [ "<(module_name)" ], - "copies": [ - { - "files": [ "<(PRODUCT_DIR)/<(module_name).node"], - "destination": "<(module_path)" - } - ] - } - ] - } |