• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%YAML 1.2
2--- |
3  # GRPC GYP build file
4
5  # This file has been automatically generated from a template file.
6  # Please look at the templates directory instead.
7  # This file can be regenerated from the template by running
8  # tools/buildgen/generate_projects.sh
9
10  # Copyright 2015 gRPC authors.
11  #
12  # Licensed under the Apache License, Version 2.0 (the "License");
13  # you may not use this file except in compliance with the License.
14  # You may obtain a copy of the License at
15  #
16  #     http://www.apache.org/licenses/LICENSE-2.0
17  #
18  # Unless required by applicable law or agreed to in writing, software
19  # distributed under the License is distributed on an "AS IS" BASIS,
20  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  # See the License for the specific language governing permissions and
22  # limitations under the License.
23  <%
24  def is_absl_lib(target_name):
25      return target_name.startswith("absl/");
26  %>
27  {
28    'variables': {
29     # The openssl and zlib dependencies must be passed in as variables
30     # defined in an included gypi file, usually common.gypi.
31     'openssl_gyp_target%': 'Please Define openssl_gyp_target variable',
32     'zlib_gyp_target%': 'Please Define zlib_gyp_target variable',
33
34     'grpc_gcov%': 'false',
35     'grpc_alpine%': 'false',
36    },
37    'target_defaults': {
38      'configurations': {
39        % for name, args in configs.items():
40        %  if name in ['dbg', 'opt']:
41        '${{'dbg':'Debug', 'opt': 'Release'}[name]}': {
42          % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines')]:
43          %  if args.get(arg, None) is not None:
44          '${prop}': [
45            % for item in args.get(arg).split():
46            '${item}',
47            % endfor
48          ],
49          %  endif
50          % endfor
51        },
52        %  endif
53        % endfor
54      },
55      % for arg, prop in [('CPPFLAGS', 'cflags'), ('LDFLAGS', 'ldflags')]:
56      %  if defaults['global'].get(arg, None) is not None:
57      '${prop}': [
58        % for item in defaults['global'].get(arg).split():
59        '${item}',
60        % endfor
61      ],
62      %  endif
63      % endfor
64      'cflags_c': [
65        '-Werror',
66        '-std=c99',
67      ],
68      'cflags_cc': [
69        '-Werror',
70        '-std=c++11',
71      ],
72      'include_dirs': [
73        '.',
74        '../..',
75        'include',
76      ],
77      'defines': [
78        'GRPC_ARES=0',
79      ],
80      'dependencies': [
81        '<(openssl_gyp_target)',
82        '<(zlib_gyp_target)',
83      ],
84      'conditions': [
85        ['grpc_gcov=="true"', {
86          % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines'), ('LDFLAGS', 'ldflags')]:
87          %  if configs['gcov'].get(arg, None) is not None:
88          '${prop}': [
89            % for item in configs['gcov'].get(arg).split():
90            '${item}',
91            % endfor
92          ],
93          %  endif
94          % endfor
95        }],
96        ['grpc_alpine=="true"', {
97          'defines': [
98            'GPR_MUSL_LIBC_COMPAT'
99          ]
100        }],
101        ['OS == "win"', {
102          'defines': [
103            '_WIN32_WINNT=0x0600',
104            'WIN32_LEAN_AND_MEAN',
105            '_HAS_EXCEPTIONS=0',
106            'UNICODE',
107            '_UNICODE',
108            'NOMINMAX',
109          ],
110          'msvs_settings': {
111            'VCCLCompilerTool': {
112              'RuntimeLibrary': 1, # static debug
113            }
114          },
115          "libraries": [
116            "ws2_32"
117          ]
118        }],
119        ['OS == "mac"', {
120          'xcode_settings': {
121            % if defaults['global'].get('CPPFLAGS', None) is not None:
122            'OTHER_CFLAGS': [
123              % for item in defaults['global'].get('CPPFLAGS').split():
124              '${item}',
125              % endfor
126            ],
127            'OTHER_CPLUSPLUSFLAGS': [
128              % for item in defaults['global'].get('CPPFLAGS').split():
129              '${item}',
130              % endfor
131              '-stdlib=libc++',
132              '-std=c++11',
133              '-Wno-error=deprecated-declarations',
134            ],
135            % endif
136          },
137        }]
138      ]
139    },
140    'targets': [
141      % for lib in libs:
142      %  if getattr(lib, 'platforms', None) is None and lib.name != 'ares' and not is_absl_lib(lib.name):
143      {
144        'target_name': '${lib.name}',
145        'type': 'static_library',
146        'dependencies': [
147          % for dep in getattr(lib, 'deps', []):
148          '${dep}',
149          % endfor
150        ],
151        'sources': [
152          % for source in lib.src:
153          '${source}',
154          % endfor
155        ],
156      },
157      %  endif
158      % endfor
159    ]
160  }
161