# 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", ] public_configs = [ ":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) { if (component_mode == "shared_library") { configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] } libs = [ "dl" ] include_dirs = [ "bodge" ] # Must be after ssl_config since we want our SSL headers to take # precedence. public_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", ] public_deps = [ "//third_party/nss:nspr", "//third_party/nss:nss", ] } 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" ] } }