|  | # 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, Google Inc. | 
|  | # All rights reserved. | 
|  | # | 
|  | # Redistribution and use in source and binary forms, with or without | 
|  | # modification, are permitted provided that the following conditions are | 
|  | # met: | 
|  | # | 
|  | #     * Redistributions of source code must retain the above copyright | 
|  | # notice, this list of conditions and the following disclaimer. | 
|  | #     * Redistributions in binary form must reproduce the above | 
|  | # copyright notice, this list of conditions and the following disclaimer | 
|  | # in the documentation and/or other materials provided with the | 
|  | # distribution. | 
|  | #     * Neither the name of Google Inc. nor the names of its | 
|  | # contributors may be used to endorse or promote products derived from | 
|  | # this software without specific prior written permission. | 
|  | # | 
|  | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
|  | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
|  | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
|  | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
|  | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
|  | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
|  | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
|  | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
|  | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|  | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  |  | 
|  | # 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', | 
|  | '<(node_root_dir)/deps/openssl/openssl/include', | 
|  | '<(node_root_dir)/deps/zlib' | 
|  | ], | 
|  | 'conditions': [ | 
|  | ['OS != "win"', { | 
|  | 'conditions': [ | 
|  | ['config=="gcov"', { | 
|  | 'cflags': [ | 
|  | '-ftest-coverage', | 
|  | '-fprofile-arcs', | 
|  | '-O0' | 
|  | ], | 
|  | 'ldflags': [ | 
|  | '-ftest-coverage', | 
|  | '-fprofile-arcs' | 
|  | ] | 
|  | } | 
|  | ] | 
|  | ] | 
|  | }], | 
|  | ["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" ] | 
|  | }] | 
|  | ] | 
|  | }, | 
|  | 'targets': [ | 
|  | { | 
|  | 'target_name': 'gpr', | 
|  | 'product_prefix': 'lib', | 
|  | 'type': 'static_library', | 
|  | 'dependencies': [ | 
|  | ], | 
|  | 'sources': [ | 
|  | 'src/core/profiling/basic_timers.c', | 
|  | 'src/core/profiling/stap_timers.c', | 
|  | 'src/core/support/alloc.c', | 
|  | 'src/core/support/cmdline.c', | 
|  | 'src/core/support/cpu_iphone.c', | 
|  | 'src/core/support/cpu_linux.c', | 
|  | 'src/core/support/cpu_posix.c', | 
|  | 'src/core/support/cpu_windows.c', | 
|  | 'src/core/support/env_linux.c', | 
|  | 'src/core/support/env_posix.c', | 
|  | 'src/core/support/env_win32.c', | 
|  | 'src/core/support/file.c', | 
|  | 'src/core/support/file_posix.c', | 
|  | 'src/core/support/file_win32.c', | 
|  | 'src/core/support/histogram.c', | 
|  | 'src/core/support/host_port.c', | 
|  | 'src/core/support/log.c', | 
|  | 'src/core/support/log_android.c', | 
|  | 'src/core/support/log_linux.c', | 
|  | 'src/core/support/log_posix.c', | 
|  | 'src/core/support/log_win32.c', | 
|  | 'src/core/support/murmur_hash.c', | 
|  | 'src/core/support/slice.c', | 
|  | 'src/core/support/slice_buffer.c', | 
|  | 'src/core/support/stack_lockfree.c', | 
|  | 'src/core/support/string.c', | 
|  | 'src/core/support/string_posix.c', | 
|  | 'src/core/support/string_win32.c', | 
|  | 'src/core/support/subprocess_posix.c', | 
|  | 'src/core/support/sync.c', | 
|  | 'src/core/support/sync_posix.c', | 
|  | 'src/core/support/sync_win32.c', | 
|  | 'src/core/support/thd.c', | 
|  | 'src/core/support/thd_posix.c', | 
|  | 'src/core/support/thd_win32.c', | 
|  | 'src/core/support/time.c', | 
|  | 'src/core/support/time_posix.c', | 
|  | 'src/core/support/time_precise.c', | 
|  | 'src/core/support/time_win32.c', | 
|  | 'src/core/support/tls_pthread.c', | 
|  | ], | 
|  | "conditions": [ | 
|  | ['OS == "mac"', { | 
|  | 'xcode_settings': { | 
|  | 'MACOSX_DEPLOYMENT_TARGET': '10.9' | 
|  | } | 
|  | }] | 
|  | ], | 
|  | }, | 
|  | { | 
|  | 'target_name': 'grpc', | 
|  | 'product_prefix': 'lib', | 
|  | 'type': 'static_library', | 
|  | 'dependencies': [ | 
|  | 'gpr', | 
|  | ], | 
|  | 'sources': [ | 
|  | 'src/core/httpcli/httpcli_security_connector.c', | 
|  | 'src/core/security/base64.c', | 
|  | 'src/core/security/client_auth_filter.c', | 
|  | 'src/core/security/credentials.c', | 
|  | 'src/core/security/credentials_metadata.c', | 
|  | 'src/core/security/credentials_posix.c', | 
|  | 'src/core/security/credentials_win32.c', | 
|  | 'src/core/security/google_default_credentials.c', | 
|  | 'src/core/security/handshake.c', | 
|  | 'src/core/security/json_token.c', | 
|  | 'src/core/security/jwt_verifier.c', | 
|  | 'src/core/security/secure_endpoint.c', | 
|  | 'src/core/security/security_connector.c', | 
|  | 'src/core/security/security_context.c', | 
|  | 'src/core/security/server_auth_filter.c', | 
|  | 'src/core/security/server_secure_chttp2.c', | 
|  | 'src/core/surface/init_secure.c', | 
|  | 'src/core/surface/secure_channel_create.c', | 
|  | 'src/core/tsi/fake_transport_security.c', | 
|  | 'src/core/tsi/ssl_transport_security.c', | 
|  | 'src/core/tsi/transport_security.c', | 
|  | 'src/core/census/grpc_context.c', | 
|  | 'src/core/census/grpc_filter.c', | 
|  | 'src/core/channel/channel_args.c', | 
|  | 'src/core/channel/channel_stack.c', | 
|  | 'src/core/channel/client_channel.c', | 
|  | 'src/core/channel/client_uchannel.c', | 
|  | 'src/core/channel/compress_filter.c', | 
|  | 'src/core/channel/connected_channel.c', | 
|  | 'src/core/channel/http_client_filter.c', | 
|  | 'src/core/channel/http_server_filter.c', | 
|  | 'src/core/channel/noop_filter.c', | 
|  | 'src/core/client_config/client_config.c', | 
|  | 'src/core/client_config/connector.c', | 
|  | 'src/core/client_config/lb_policies/pick_first.c', | 
|  | 'src/core/client_config/lb_policies/round_robin.c', | 
|  | 'src/core/client_config/lb_policy.c', | 
|  | 'src/core/client_config/lb_policy_factory.c', | 
|  | 'src/core/client_config/lb_policy_registry.c', | 
|  | 'src/core/client_config/resolver.c', | 
|  | 'src/core/client_config/resolver_factory.c', | 
|  | 'src/core/client_config/resolver_registry.c', | 
|  | 'src/core/client_config/resolvers/dns_resolver.c', | 
|  | 'src/core/client_config/resolvers/sockaddr_resolver.c', | 
|  | 'src/core/client_config/subchannel.c', | 
|  | 'src/core/client_config/subchannel_factory.c', | 
|  | 'src/core/client_config/subchannel_factory_decorators/add_channel_arg.c', | 
|  | 'src/core/client_config/subchannel_factory_decorators/merge_channel_args.c', | 
|  | 'src/core/client_config/uri_parser.c', | 
|  | 'src/core/compression/algorithm.c', | 
|  | 'src/core/compression/message_compress.c', | 
|  | 'src/core/debug/trace.c', | 
|  | 'src/core/httpcli/format_request.c', | 
|  | 'src/core/httpcli/httpcli.c', | 
|  | 'src/core/httpcli/parser.c', | 
|  | 'src/core/iomgr/closure.c', | 
|  | 'src/core/iomgr/endpoint.c', | 
|  | 'src/core/iomgr/endpoint_pair_posix.c', | 
|  | 'src/core/iomgr/endpoint_pair_windows.c', | 
|  | 'src/core/iomgr/exec_ctx.c', | 
|  | 'src/core/iomgr/executor.c', | 
|  | 'src/core/iomgr/fd_posix.c', | 
|  | 'src/core/iomgr/iocp_windows.c', | 
|  | 'src/core/iomgr/iomgr.c', | 
|  | 'src/core/iomgr/iomgr_posix.c', | 
|  | 'src/core/iomgr/iomgr_windows.c', | 
|  | 'src/core/iomgr/pollset_multipoller_with_epoll.c', | 
|  | 'src/core/iomgr/pollset_multipoller_with_poll_posix.c', | 
|  | 'src/core/iomgr/pollset_posix.c', | 
|  | 'src/core/iomgr/pollset_set_posix.c', | 
|  | 'src/core/iomgr/pollset_set_windows.c', | 
|  | 'src/core/iomgr/pollset_windows.c', | 
|  | 'src/core/iomgr/resolve_address_posix.c', | 
|  | 'src/core/iomgr/resolve_address_windows.c', | 
|  | 'src/core/iomgr/sockaddr_utils.c', | 
|  | 'src/core/iomgr/socket_utils_common_posix.c', | 
|  | 'src/core/iomgr/socket_utils_linux.c', | 
|  | 'src/core/iomgr/socket_utils_posix.c', | 
|  | 'src/core/iomgr/socket_windows.c', | 
|  | 'src/core/iomgr/tcp_client_posix.c', | 
|  | 'src/core/iomgr/tcp_client_windows.c', | 
|  | 'src/core/iomgr/tcp_posix.c', | 
|  | 'src/core/iomgr/tcp_server_posix.c', | 
|  | 'src/core/iomgr/tcp_server_windows.c', | 
|  | 'src/core/iomgr/tcp_windows.c', | 
|  | 'src/core/iomgr/time_averaged_stats.c', | 
|  | 'src/core/iomgr/timer.c', | 
|  | 'src/core/iomgr/timer_heap.c', | 
|  | 'src/core/iomgr/udp_server.c', | 
|  | 'src/core/iomgr/wakeup_fd_eventfd.c', | 
|  | 'src/core/iomgr/wakeup_fd_nospecial.c', | 
|  | 'src/core/iomgr/wakeup_fd_pipe.c', | 
|  | 'src/core/iomgr/wakeup_fd_posix.c', | 
|  | 'src/core/iomgr/workqueue_posix.c', | 
|  | 'src/core/iomgr/workqueue_windows.c', | 
|  | 'src/core/json/json.c', | 
|  | 'src/core/json/json_reader.c', | 
|  | 'src/core/json/json_string.c', | 
|  | 'src/core/json/json_writer.c', | 
|  | 'src/core/surface/api_trace.c', | 
|  | 'src/core/surface/byte_buffer.c', | 
|  | 'src/core/surface/byte_buffer_queue.c', | 
|  | 'src/core/surface/byte_buffer_reader.c', | 
|  | 'src/core/surface/call.c', | 
|  | 'src/core/surface/call_details.c', | 
|  | 'src/core/surface/call_log_batch.c', | 
|  | 'src/core/surface/channel.c', | 
|  | 'src/core/surface/channel_connectivity.c', | 
|  | 'src/core/surface/channel_create.c', | 
|  | 'src/core/surface/completion_queue.c', | 
|  | 'src/core/surface/event_string.c', | 
|  | 'src/core/surface/init.c', | 
|  | 'src/core/surface/lame_client.c', | 
|  | 'src/core/surface/metadata_array.c', | 
|  | 'src/core/surface/server.c', | 
|  | 'src/core/surface/server_chttp2.c', | 
|  | 'src/core/surface/server_create.c', | 
|  | 'src/core/surface/version.c', | 
|  | 'src/core/transport/chttp2/alpn.c', | 
|  | 'src/core/transport/chttp2/bin_encoder.c', | 
|  | 'src/core/transport/chttp2/frame_data.c', | 
|  | 'src/core/transport/chttp2/frame_goaway.c', | 
|  | 'src/core/transport/chttp2/frame_ping.c', | 
|  | 'src/core/transport/chttp2/frame_rst_stream.c', | 
|  | 'src/core/transport/chttp2/frame_settings.c', | 
|  | 'src/core/transport/chttp2/frame_window_update.c', | 
|  | 'src/core/transport/chttp2/hpack_parser.c', | 
|  | 'src/core/transport/chttp2/hpack_table.c', | 
|  | 'src/core/transport/chttp2/huffsyms.c', | 
|  | 'src/core/transport/chttp2/incoming_metadata.c', | 
|  | 'src/core/transport/chttp2/parsing.c', | 
|  | 'src/core/transport/chttp2/status_conversion.c', | 
|  | 'src/core/transport/chttp2/stream_encoder.c', | 
|  | 'src/core/transport/chttp2/stream_lists.c', | 
|  | 'src/core/transport/chttp2/stream_map.c', | 
|  | 'src/core/transport/chttp2/timeout_encoding.c', | 
|  | 'src/core/transport/chttp2/varint.c', | 
|  | 'src/core/transport/chttp2/writing.c', | 
|  | 'src/core/transport/chttp2_transport.c', | 
|  | 'src/core/transport/connectivity_state.c', | 
|  | 'src/core/transport/metadata.c', | 
|  | 'src/core/transport/stream_op.c', | 
|  | 'src/core/transport/transport.c', | 
|  | 'src/core/transport/transport_op_string.c', | 
|  | 'src/core/census/context.c', | 
|  | 'src/core/census/initialize.c', | 
|  | 'src/core/census/operation.c', | 
|  | 'src/core/census/tracing.c', | 
|  | ], | 
|  | "conditions": [ | 
|  | ['OS == "mac"', { | 
|  | 'xcode_settings': { | 
|  | 'MACOSX_DEPLOYMENT_TARGET': '10.9' | 
|  | } | 
|  | }] | 
|  | ], | 
|  | }, | 
|  | { | 
|  | 'include_dirs': [ | 
|  | "<!(node -e \"require('nan')\")" | 
|  | ], | 
|  | 'cflags': [ | 
|  | '-std=c++0x', | 
|  | '-Wall', | 
|  | '-pthread', | 
|  | '-g', | 
|  | '-zdefs', | 
|  | '-Werror', | 
|  | '-Wno-error=deprecated-declarations' | 
|  | ], | 
|  | 'ldflags': [ | 
|  | '-g' | 
|  | ], | 
|  | "conditions": [ | 
|  | ['OS == "mac"', { | 
|  | 'xcode_settings': { | 
|  | 'MACOSX_DEPLOYMENT_TARGET': '10.9', | 
|  | 'OTHER_CFLAGS': [ | 
|  | '-std=c++11', | 
|  | '-stdlib=libc++' | 
|  | ] | 
|  | } | 
|  | }] | 
|  | ], | 
|  | "target_name": "grpc_node", | 
|  | "sources": [ | 
|  | "src/node/ext/byte_buffer.cc", | 
|  | "src/node/ext/call.cc", | 
|  | "src/node/ext/call_credentials.cc", | 
|  | "src/node/ext/channel.cc", | 
|  | "src/node/ext/channel_credentials.cc", | 
|  | "src/node/ext/completion_queue_async_worker.cc", | 
|  | "src/node/ext/node_grpc.cc", | 
|  | "src/node/ext/server.cc", | 
|  | "src/node/ext/server_credentials.cc", | 
|  | "src/node/ext/timeval.cc" | 
|  | ], | 
|  | "dependencies": [ | 
|  | "grpc" | 
|  | ] | 
|  | } | 
|  | ] | 
|  | } |