Extract SIGPIPE ignoring code to a common place.
[chromium-blink-merge.git] / net / third_party / nss / ssl.gyp
blob241d8ce79dd15650ed0c68d1780369e03a2f5de8
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'conditions': [
7     [ 'os_posix == 1 and OS != "mac" and OS != "ios"', {
8       'conditions': [
9         ['sysroot!=""', {
10           'variables': {
11             'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
12           },
13         }, {
14           'variables': {
15             'pkg-config': 'pkg-config'
16           },
17         }],
18       ],
19     }],
20   ],
22   'targets': [
23     {
24       'target_name': 'libssl',
25       'type': 'static_library',
26       'sources': [
27         'ssl/authcert.c',
28         'ssl/cmpcert.c',
29         'ssl/derive.c',
30         'ssl/dtlscon.c',
31         'ssl/os2_err.c',
32         'ssl/os2_err.h',
33         'ssl/preenc.h',
34         'ssl/prelib.c',
35         'ssl/ssl.h',
36         'ssl/ssl3con.c',
37         'ssl/ssl3ecc.c',
38         'ssl/ssl3ext.c',
39         'ssl/ssl3gthr.c',
40         'ssl/ssl3prot.h',
41         'ssl/sslauth.c',
42         'ssl/sslcon.c',
43         'ssl/ssldef.c',
44         'ssl/sslenum.c',
45         'ssl/sslerr.c',
46         'ssl/sslerr.h',
47         'ssl/SSLerrs.h',
48         'ssl/sslerrstrs.c',
49         'ssl/sslgathr.c',
50         'ssl/sslimpl.h',
51         'ssl/sslinfo.c',
52         'ssl/sslinit.c',
53         'ssl/sslmutex.c',
54         'ssl/sslmutex.h',
55         'ssl/sslnonce.c',
56         'ssl/sslplatf.c',
57         'ssl/sslproto.h',
58         'ssl/sslreveal.c',
59         'ssl/sslsecur.c',
60         'ssl/sslsnce.c',
61         'ssl/sslsock.c',
62         'ssl/sslt.h',
63         'ssl/ssltrace.c',
64         'ssl/sslver.c',
65         'ssl/unix_err.c',
66         'ssl/unix_err.h',
67         'ssl/win32err.c',
68         'ssl/win32err.h',
69         'ssl/bodge/loader.c',
70         'ssl/bodge/loader.h',
71         'ssl/bodge/secure_memcmp.c',
72       ],
73       'sources!': [
74         'ssl/os2_err.c',
75         'ssl/os2_err.h',
76       ],
77       'defines': [
78         'NSS_ENABLE_ECC',
79         'NSS_ENABLE_ZLIB',
80         'USE_UTIL_DIRECTLY',
81       ],
82       'defines!': [
83         # Regrettably, NSS can't be compiled with NO_NSPR_10_SUPPORT yet.
84         'NO_NSPR_10_SUPPORT',
85       ],
86       'dependencies': [
87         '../../../third_party/zlib/zlib.gyp:zlib',
88       ],
89       'msvs_disabled_warnings': [4018, 4244],
90       'conditions': [
91         [ 'clang == 1', {
92           'cflags': [
93             # See http://crbug.com/138571#c8. In short, sslsecur.c picks up the
94             # system's cert.h because cert.h isn't in chromium's repo.
95             '-Wno-incompatible-pointer-types',
96           ],
97         }],
98         [ 'OS == "mac" or OS == "ios"', {
99           'defines': [
100             'XP_UNIX',
101             'DARWIN',
102             'XP_MACOSX',
103           ],
104         }],
105         [ 'OS == "win"', {
106             'sources!': [
107               'ssl/unix_err.c',
108               'ssl/unix_err.h',
109             ],
110           },
111           {  # else: OS != "win"
112             'sources!': [
113               'ssl/win32err.c',
114               'ssl/win32err.h',
115             ],
116           },
117         ],
118         [ 'os_posix == 1 and OS != "mac" and OS != "ios"', {
119           'defines': [
120             # These macros are needed only for compiling the files in
121             # ssl/bodge.
122             'SHLIB_PREFIX="lib"',
123             'SHLIB_SUFFIX="so"',
124             'SHLIB_VERSION="3"',
125             'SOFTOKEN_SHLIB_VERSION="3"',
126           ],
127           'include_dirs': [
128             'ssl/bodge',
129           ],
130           'cflags': [
131             '<!@(<(pkg-config) --cflags nss)',
132           ],
133           'ldflags': [
134             '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
135           ],
136           'libraries': [
137             '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
138           ],
139         }],
140         [ 'OS == "mac" or OS == "ios" or OS == "win"', {
141           'sources/': [
142             ['exclude', 'ssl/bodge/'],
143           ],
144           'conditions': [
145             ['OS != "ios"', {
146               'defines': [
147                 'NSS_PLATFORM_CLIENT_AUTH',
148               ],
149               'direct_dependent_settings': {
150                 'defines': [
151                   'NSS_PLATFORM_CLIENT_AUTH',
152                 ],
153               },
154             }],
155           ],
156           'dependencies': [
157             '../../../third_party/nss/nss.gyp:nspr',
158             '../../../third_party/nss/nss.gyp:nss',
159           ],
160           'export_dependent_settings': [
161             '../../../third_party/nss/nss.gyp:nspr',
162             '../../../third_party/nss/nss.gyp:nss',
163           ],
164           'direct_dependent_settings': {
165             'include_dirs': [
166               'ssl',
167             ],
168           },
169         }],
170       ],
171       'configurations': {
172         'Debug_Base': {
173           'defines': [
174             'DEBUG',
175           ],
176         },
177       },
178     },
179   ],