| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | %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, 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': [      % for module in node_modules:      % for lib in libs:      % if lib.name in module.transitive_deps:      {        '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': [          '-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": "${module.name}",        "sources": [          % for source in module.src:          "${source}",          % endfor        ],        "dependencies": [          % for dep in getattr(module, 'deps', []):          "${dep}",          % endfor        ]      },      % endfor    ]  }
 |