# 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 = [
    "//net/third_party/nss/ssl",
  ]
}

# TODO(brettw) move this to net/third_party/nss/ssl once GYP backwards-compat
# is no longer needed.
component("ssl") {
  external = true
  # Not named "ssl" so the lib doesn't conflict with OpenSSL's libssl
  output_name = "crssl"

  sources = [
    "ssl/authcert.c",
    "ssl/cmpcert.c",
    "ssl/derive.c",
    "ssl/dtlscon.c",
    #"ssl/os2_err.c",
    #"ssl/os2_err.h",
    "ssl/preenc.h",
    "ssl/prelib.c",
    "ssl/ssl.h",
    "ssl/ssl3con.c",
    "ssl/ssl3ecc.c",
    "ssl/ssl3ext.c",
    "ssl/ssl3gthr.c",
    "ssl/ssl3prot.h",
    "ssl/sslauth.c",
    "ssl/sslcon.c",
    "ssl/ssldef.c",
    "ssl/sslenum.c",
    "ssl/sslerr.c",
    "ssl/sslerr.h",
    "ssl/SSLerrs.h",
    "ssl/sslerrstrs.c",
    "ssl/sslgathr.c",
    "ssl/sslimpl.h",
    "ssl/sslinfo.c",
    "ssl/sslinit.c",
    "ssl/sslmutex.c",
    "ssl/sslmutex.h",
    "ssl/sslnonce.c",
    "ssl/sslplatf.c",
    "ssl/sslproto.h",
    "ssl/sslreveal.c",
    "ssl/sslsecur.c",
    "ssl/sslsnce.c",
    "ssl/sslsock.c",
    "ssl/sslt.h",
    "ssl/ssltrace.c",
    "ssl/sslver.c",
    "ssl/unix_err.c",
    "ssl/unix_err.h",
    "ssl/win32err.c",
    "ssl/win32err.h",
    "ssl/bodge/secitem_array.c",
  ]

  defines = [
    "NO_PKCS11_BYPASS",
    "NSS_ENABLE_ECC",
    "USE_UTIL_DIRECTLY",
  ]

  configs -= "//build/config/compiler:chromium_code"
  configs += "//build/config/compiler:no_chromium_code"

  direct_dependent_configs = [ ":ssl_config" ]

  if (is_win) {
    sources -= [
      "ssl/unix_err.c",
      "ssl/unix_err.h",
    ]
  } else {
    sources -= [
      "ssl/win32err.c",
      "ssl/win32err.h",
    ]
  }

  if (is_linux) {
    include_dirs = [ "bodge" ]
    configs += "//third_party/nss:nss_linux_config"
  }
  if (is_mac) {
    sources -= "ssl/bodge/secitem_array.c"
  }
}