aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates/binding.gyp.template
diff options
context:
space:
mode:
Diffstat (limited to 'templates/binding.gyp.template')
-rw-r--r--templates/binding.gyp.template371
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)"
- }
- ]
- }
- ]
- }