# 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 = [ "SSLerrs.h", "authcert.c", "bodge/secitem_array.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", "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", ] 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) { sources -= [ "unix_err.c", "unix_err.h", ] if (is_component_build) { ldflags = [ "/DEF:" + rebase_path("exports_win.def", root_build_dir) ] } } else if (is_linux) { if (is_component_build) { 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_clang) { # SSL triggers some of these Clang warnings. configs -= [ "//build/config/clang:extra_warnings" ] # There is a broken header guard in /usr/include/nss/secmod.h: # https://bugzilla.mozilla.org/show_bug.cgi?id=884072 cflags = [ "-Wno-header-guard" ] if (is_ios) { # libssl uses routines deprecated on iOS (sem_init/sem_destroy). # https://bugzilla.mozilla.org/show_bug.cgi?id=1192500 cflags += [ "-Wno-deprecated-declarations" ] } } 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_debug) { defines += [ "DEBUG" ] } }