Roll src/third_party/WebKit 8121bc6:918aba1 (svn 188871:188878)
[chromium-blink-merge.git] / net / third_party / nss / ssl.gyp
blob64d85518be14fe475c710cf1e331f7adfba1e1a3
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)" "<(system_libdir)"',
12           },
13         }, {
14           'variables': {
15             'pkg-config': 'pkg-config'
16           },
17         }],
18       ],
19     }],
20   ],
22   'targets': [
23     {
24       'target_name': 'libssl',
25       'type': '<(component)',
26       'product_name': 'crssl',  # Don't conflict with OpenSSL's libssl
27       'sources': [
28         'ssl/authcert.c',
29         'ssl/cmpcert.c',
30         'ssl/derive.c',
31         'ssl/dtlscon.c',
32         'ssl/os2_err.c',
33         'ssl/os2_err.h',
34         'ssl/preenc.h',
35         'ssl/prelib.c',
36         'ssl/ssl.h',
37         'ssl/ssl3con.c',
38         'ssl/ssl3ecc.c',
39         'ssl/ssl3ext.c',
40         'ssl/ssl3gthr.c',
41         'ssl/ssl3prot.h',
42         'ssl/sslauth.c',
43         'ssl/sslcon.c',
44         'ssl/ssldef.c',
45         'ssl/sslenum.c',
46         'ssl/sslerr.c',
47         'ssl/sslerr.h',
48         'ssl/SSLerrs.h',
49         'ssl/sslerrstrs.c',
50         'ssl/sslgathr.c',
51         'ssl/sslimpl.h',
52         'ssl/sslinfo.c',
53         'ssl/sslinit.c',
54         'ssl/sslmutex.c',
55         'ssl/sslmutex.h',
56         'ssl/sslnonce.c',
57         'ssl/sslplatf.c',
58         'ssl/sslproto.h',
59         'ssl/sslreveal.c',
60         'ssl/sslsecur.c',
61         'ssl/sslsnce.c',
62         'ssl/sslsock.c',
63         'ssl/sslt.h',
64         'ssl/ssltrace.c',
65         'ssl/sslver.c',
66         'ssl/unix_err.c',
67         'ssl/unix_err.h',
68         'ssl/win32err.c',
69         'ssl/win32err.h',
70         'ssl/bodge/secitem_array.c',
71       ],
72       'sources!': [
73         'ssl/os2_err.c',
74         'ssl/os2_err.h',
75       ],
76       'defines': [
77         'NO_PKCS11_BYPASS',
78         'NSS_ENABLE_ECC',
79         'USE_UTIL_DIRECTLY',
80       ],
81       'msvs_disabled_warnings': [4018, 4244, 4267],
82       'variables': {
83         'clang_warning_flags_unset': [
84           # ssl uses PR_ASSERT(!"foo") instead of PR_ASSERT(false && "foo")
85           '-Wstring-conversion',
86         ],
87       },
88       'conditions': [
89         ['component == "shared_library"', {
90           'conditions': [
91             ['OS == "mac" or OS == "ios"', {
92               'xcode_settings': {
93                 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO',
94               },
95             }],
96             ['OS == "win"', {
97               'sources': [
98                 'ssl/exports_win.def',
99               ],
100             }],
101             ['os_posix == 1 and OS != "mac" and OS != "ios"', {
102               'cflags!': ['-fvisibility=hidden'],
103             }],
104           ],
105         }],
106         [ 'clang == 1', {
107           'cflags': [
108             # There is a broken header guard in /usr/include/nss/secmod.h:
109             # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
110             '-Wno-header-guard',
111           ],
112         }],
113         [ 'OS == "linux"', {
114           'link_settings': {
115             'libraries': [
116               '-ldl',
117             ],
118           },
119         }],
120         [ 'OS == "mac" or OS == "ios"', {
121           'defines': [
122             'XP_UNIX',
123             'DARWIN',
124             'XP_MACOSX',
125           ],
126         }],
127         [ 'OS == "mac"', {
128           'link_settings': {
129             'libraries': [
130               '$(SDKROOT)/System/Library/Frameworks/Security.framework',
131             ],
132           },
133         }],
134         [ 'OS == "win"', {
135             'sources!': [
136               'ssl/unix_err.c',
137               'ssl/unix_err.h',
138             ],
139           },
140           {  # else: OS != "win"
141             'sources!': [
142               'ssl/win32err.c',
143               'ssl/win32err.h',
144             ],
145           },
146         ],
147         [ 'os_posix == 1 and OS != "mac" and OS != "ios"', {
148           'include_dirs': [
149             'ssl/bodge',
150           ],
151           'cflags': [
152             '<!@(<(pkg-config) --cflags nss)',
153           ],
154           'ldflags': [
155             '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
156           ],
157           'libraries': [
158             '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
159           ],
160         }],
161         [ 'OS == "mac" or OS == "ios" or OS == "win"', {
162           'sources/': [
163             ['exclude', 'ssl/bodge/'],
164           ],
165           'conditions': [
166             ['OS != "ios"', {
167               'defines': [
168                 'NSS_PLATFORM_CLIENT_AUTH',
169               ],
170               'direct_dependent_settings': {
171                 'defines': [
172                   'NSS_PLATFORM_CLIENT_AUTH',
173                 ],
174               },
175             }],
176           ],
177           'dependencies': [
178             '../../../third_party/nss/nss.gyp:nspr',
179             '../../../third_party/nss/nss.gyp:nss',
180           ],
181           'export_dependent_settings': [
182             '../../../third_party/nss/nss.gyp:nspr',
183             '../../../third_party/nss/nss.gyp:nss',
184           ],
185           'direct_dependent_settings': {
186             'include_dirs': [
187               'ssl',
188             ],
189           },
190         }],
191       ],
192       'configurations': {
193         'Debug_Base': {
194           'defines': [
195             'DEBUG',
196           ],
197         },
198       },
199     },
200   ],