blob: d71de9f441b0179802189753488484169f988a98 [file] [log] [blame]
Maxim Dzobadd962612017-08-16 17:52:28 -04001%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 {
25 'variables': {
26 # The openssl and zlib dependencies must be passed in as variables
27 # defined in an included gypi file, usually common.gypi.
28 'openssl_gyp_target%': 'Please Define openssl_gyp_target variable',
29 'zlib_gyp_target%': 'Please Define zlib_gyp_target variable',
30
31 'grpc_gcov%': 'false',
32 'grpc_alpine%': 'false',
33 },
34 'target_defaults': {
35 'configurations': {
36 % for name, args in configs.iteritems():
37 % if name in ['dbg', 'opt']:
38 '${{'dbg':'Debug', 'opt': 'Release'}[name]}': {
39 % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines')]:
40 % if args.get(arg, None) is not None:
41 '${prop}': [
42 % for item in args.get(arg).split():
43 '${item}',
44 % endfor
45 ],
46 % endif
47 % endfor
48 },
49 % endif
50 % endfor
51 },
52 % for arg, prop in [('CPPFLAGS', 'cflags'), ('LDFLAGS', 'ldflags')]:
53 % if defaults['global'].get(arg, None) is not None:
54 '${prop}': [
55 % for item in defaults['global'].get(arg).split():
56 '${item}',
57 % endfor
58 ],
59 % endif
60 % endfor
61 'cflags_c': [
62 '-Werror',
Yihua Zhang04fb58e2018-03-08 06:49:24 -080063 '-std=c99',
Maxim Dzobadd962612017-08-16 17:52:28 -040064 ],
65 'cflags_cc': [
66 '-Werror',
Yihua Zhang04fb58e2018-03-08 06:49:24 -080067 '-std=c++11',
Maxim Dzobadd962612017-08-16 17:52:28 -040068 ],
69 'include_dirs': [
70 '.',
71 '../..',
72 'include',
David Garcia Quintasba233e72018-06-16 23:31:54 -070073 '../../third_party/nanopb',
Maxim Dzobadd962612017-08-16 17:52:28 -040074 ],
75 'defines': [
76 'GRPC_ARES=0',
77 ],
78 'dependencies': [
79 '<(openssl_gyp_target)',
80 '<(zlib_gyp_target)',
81 ],
82 'conditions': [
83 ['grpc_gcov=="true"', {
84 % for arg, prop in [('CPPFLAGS', 'cflags'), ('DEFINES', 'defines'), ('LDFLAGS', 'ldflags')]:
85 % if configs['gcov'].get(arg, None) is not None:
86 '${prop}': [
87 % for item in configs['gcov'].get(arg).split():
88 '${item}',
89 % endfor
90 ],
91 % endif
92 % endfor
93 }],
94 ['grpc_alpine=="true"', {
95 'defines': [
96 'GPR_MUSL_LIBC_COMPAT'
97 ]
98 }],
99 ['OS == "win"', {
100 'defines': [
101 '_WIN32_WINNT=0x0600',
102 'WIN32_LEAN_AND_MEAN',
103 '_HAS_EXCEPTIONS=0',
104 'UNICODE',
105 '_UNICODE',
106 'NOMINMAX',
107 ],
108 'msvs_settings': {
109 'VCCLCompilerTool': {
110 'RuntimeLibrary': 1, # static debug
111 }
112 },
113 "libraries": [
114 "ws2_32"
115 ]
116 }],
117 ['OS == "mac"', {
118 'xcode_settings': {
119 % if defaults['global'].get('CPPFLAGS', None) is not None:
120 'OTHER_CFLAGS': [
121 % for item in defaults['global'].get('CPPFLAGS').split():
122 '${item}',
123 % endfor
124 ],
125 'OTHER_CPLUSPLUSFLAGS': [
126 % for item in defaults['global'].get('CPPFLAGS').split():
127 '${item}',
128 % endfor
129 '-stdlib=libc++',
130 '-std=c++11',
Yihua Zhang04fb58e2018-03-08 06:49:24 -0800131 '-Wno-error=deprecated-declarations',
Maxim Dzobadd962612017-08-16 17:52:28 -0400132 ],
133 % endif
134 },
135 }]
136 ]
137 },
138 'targets': [
139 % for lib in libs:
140 % if getattr(lib, 'platforms', None) is None and lib.name != 'ares':
141 {
142 'target_name': '${lib.name}',
143 'type': 'static_library',
144 'dependencies': [
145 % for dep in getattr(lib, 'deps', []):
146 '${dep}',
147 % endfor
148 ],
149 'sources': [
150 % for source in lib.src:
151 '${source}',
152 % endfor
153 ],
154 },
155 % endif
156 % endfor
157 ]
158 }