%YAML 1.2 --- | # GRPC GYP build file # 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. <% def is_absl_lib(target_name): return target_name.startswith("absl/"); %> { 'variables': { # The openssl and zlib dependencies must be passed in as variables # defined in an included gypi file, usually common.gypi. 'openssl_gyp_target%': 'Please Define openssl_gyp_target variable', 'zlib_gyp_target%': 'Please Define zlib_gyp_target variable', 'grpc_gcov%': 'false', 'grpc_alpine%': 'false', }, 'target_defaults': { 'configurations': { % for name, args in configs.items(): % 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=c11', ], 'cflags_cc': [ '-Werror', '-std=c++14', ], 'include_dirs': [ '.', '../..', 'include', ], 'defines': [ 'GRPC_ARES=0', ], 'dependencies': [ '<(openssl_gyp_target)', '<(zlib_gyp_target)', ], '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"', { '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 == "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++14', '-Wno-error=deprecated-declarations', ], % endif }, }] ] }, 'targets': [ % for lib in libs: % if getattr(lib, 'platforms', None) is None and lib.name != 'ares' and not is_absl_lib(lib.name): { 'target_name': '${lib.name}', 'type': 'static_library', 'dependencies': [ % for dep in getattr(lib, 'deps', []): % if dep != 'libssl': '${dep}', % endif % endfor ], 'sources': [ % for source in lib.src: '${source}', % endfor ], }, % endif % endfor ] }