# 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.

# This file declares build flags for the SSL library configuration.
#
# TODO(brettw) this should probably be moved to src/crypto or somewhere, and
# the global build dependency on it should be removed.

declare_args() {
  # Use OpenSSL instead of NSS. This is used for Android, Mac, NaCl untrusted
  # code, and Windows, and is experimental in other cases (see
  # http://crbug.com/62803).
  use_openssl = is_android || is_mac || is_nacl || is_win
}

# True when we're using OpenSSL for certificate verification and storage. We
# only do this when we're using OpenSSL on desktop Linux systems. For other
# systems (Mac/Win/Android) we use the system certificate features.
use_openssl_certs = use_openssl && (is_linux || is_android)

# Same meaning as use_openssl_certs but for NSS.
use_nss_certs = !use_openssl && is_linux
