Index: net/third_party/nss/ssl/BUILD.gn |
diff --git a/net/third_party/nss/ssl/BUILD.gn b/net/third_party/nss/ssl/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..03385f64c16f100aa7285072b901cdc8d91cb1eb |
--- /dev/null |
+++ b/net/third_party/nss/ssl/BUILD.gn |
@@ -0,0 +1,138 @@ |
+# Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+config("ssl_config") { |
+ include_dirs = [ "." ] |
+ |
+ if (is_mac || is_win) { |
+ defines = [ "NSS_PLATFORM_CLIENT_AUTH" ] |
+ } |
+} |
+ |
+component("libssl") { |
+ output_name = "crssl" |
+ |
+ sources = [ |
+ "authcert.c", |
+ "cmpcert.c", |
+ "derive.c", |
+ "dtlscon.c", |
+ "preenc.h", |
+ "prelib.c", |
+ "ssl.h", |
+ "ssl3con.c", |
+ "ssl3ecc.c", |
+ "ssl3ext.c", |
+ "ssl3gthr.c", |
+ "ssl3prot.h", |
+ "sslauth.c", |
+ "sslcon.c", |
+ "ssldef.c", |
+ "sslenum.c", |
+ "sslerr.c", |
+ "sslerr.h", |
+ "SSLerrs.h", |
+ "sslerrstrs.c", |
+ "sslgathr.c", |
+ "sslimpl.h", |
+ "sslinfo.c", |
+ "sslinit.c", |
+ "sslmutex.c", |
+ "sslmutex.h", |
+ "sslnonce.c", |
+ "sslplatf.c", |
+ "sslproto.h", |
+ "sslreveal.c", |
+ "sslsecur.c", |
+ "sslsnce.c", |
+ "sslsock.c", |
+ "sslt.h", |
+ "ssltrace.c", |
+ "sslver.c", |
+ "unix_err.c", |
+ "unix_err.h", |
+ "win32err.c", |
+ "win32err.h", |
+ "bodge/secitem_array.c", |
+ ] |
+ |
+ direct_dependent_settings = [ ":ssl_config" ] |
+ |
+ cflags = [] |
+ defines = [ |
+ "NO_PKCS11_BYPASS", |
+ "NSS_ENABLE_ECC", |
+ "USE_UTIL_DIRECTLY", |
+ ] |
+ |
+ configs -= [ "//build/config/compiler:chromium_code" ] |
+ configs += [ "//build/config/compiler:no_chromium_code" ] |
+ |
+ if (is_win) { |
+ cflags += [ "/wd4267" ] # Disable warning: Conversion from size_t to 'type'. |
+ |
+ sources -= [ |
+ "unix_err.c", |
+ "unix_err.h", |
+ ] |
+ sources += [ "exports_win.def" ] |
+ } else if (is_linux) { |
+ #visibility hidden thing. |
+ libs = [ "dl" ] |
+ |
+ include_dirs = [ "bodge" ] |
+ |
+ direct_dependent_configs = [ |
+ "//third_party/nss:system_nss_no_ssl_config" |
+ ] |
+ } else if (is_mac) { |
+ libs = [ "Security.framework" ] |
+ } |
+ |
+ if (is_posix) { |
+ sources -= [ |
+ "win32err.c", |
+ "win32err.h", |
+ ] |
+ } |
+ |
+ if (is_mac || is_ios) { |
+ defines += [ |
+ "XP_UNIX", |
+ "DARWIN", |
+ "XP_MACOSX", |
+ ] |
+ } |
+ |
+ if (is_mac || is_ios || is_win) { |
+ sources -= [ |
+ "bodge/secitem_array.c", |
+ ] |
+ deps = [ |
+ "//third_party/nss:nspr", |
+ "//third_party/nss:nss", |
+ ] |
+ forward_dependent_configs_from = deps |
+ } |
+ |
+ if (component_mode == "shared_library") { |
+ # TODO(brettw) GCC_SYMBOLS_PRIVATE_EXTERN thing. |
+ } |
+ |
+ if (is_clang) { |
+ cflags += [ |
+ # See http://crbug.com/138571#c8. In short, sslsecur.c picks up the |
+ # system's cert.h because cert.h isn't in chromium's repo. |
+ "-Wno-incompatible-pointer-types", |
+ |
+ # There is a broken header guard in /usr/include/nss/secmod.h: |
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=884072 |
+ "-Wno-header-guard", |
+ ] |
+ } |
+ |
+ if (is_debug) { |
+ defines += [ "DEBUG" ] |
+ } |
+} |