Moved base test support stuff to //base/test/
Moved gtest from //testing to //testing/gtest
By default, gn desc prints out all build flags (before it only printed them if you asked). Also, I added the objective C ones.
Added support for non-Windows assembly files.
Static libraries on Linux now start with "lib".
I added a new relative_source_root_dir which I needed for some grit work.
All dependencies of net now build, although net itself isn't done yet. This includes crypto, SSH, and the SSL library.
I worked a bunch on the libssl build. I added some build flags for configuring it to crypto/ssl. This is a nice demo of build modularization since this doesn't have to be in //build anymore.
I started working on a grit template to define the net resources. I found a bunch of things I need to implement so I'm checking the current state in with that stuff commented out and going to work on those features in a separate pass.
BUG=
[email protected]
Review URL: https://codereview.chromium.org/23112010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218838 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tools/gn/secondary/crypto/BUILD.gn b/tools/gn/secondary/crypto/BUILD.gn
new file mode 100644
index 0000000..37b9be29
--- /dev/null
+++ b/tools/gn/secondary/crypto/BUILD.gn
@@ -0,0 +1,242 @@
+# 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.
+
+import("ssl/flags.gni")
+
+component("crypto") {
+ sources = [
+ "apple_keychain.h",
+ "apple_keychain_ios.mm",
+ "apple_keychain_mac.mm",
+ "capi_util.cc",
+ "capi_util.h",
+ "crypto_export.h",
+ "crypto_module_blocking_password_delegate.h",
+ "cssm_init.cc",
+ "cssm_init.h",
+ "curve25519.cc",
+ "curve25519.h",
+ "curve25519-donna.c",
+ "ghash.cc",
+ "ghash.h",
+ "ec_private_key.h",
+ "ec_private_key_nss.cc",
+ "ec_private_key_openssl.cc",
+ "ec_signature_creator.cc",
+ "ec_signature_creator.h",
+ "ec_signature_creator_impl.h",
+ "ec_signature_creator_nss.cc",
+ "ec_signature_creator_openssl.cc",
+ "encryptor.cc",
+ "encryptor.h",
+ "encryptor_nss.cc",
+ "encryptor_openssl.cc",
+ "hkdf.cc",
+ "hkdf.h",
+ "hmac_nss.cc",
+ "hmac_openssl.cc",
+ "mac_security_services_lock.cc",
+ "mac_security_services_lock.h",
+ # TODO(brettw) these mocks should be moved to a test_support_crypto target
+ # if possible.
+ "mock_apple_keychain.cc",
+ "mock_apple_keychain.h",
+ "mock_apple_keychain_ios.cc",
+ "mock_apple_keychain_mac.cc",
+ "p224_spake.cc",
+ "p224_spake.h",
+ "nss_util.cc",
+ "nss_util.h",
+ "nss_util_internal.h",
+ "openpgp_symmetric_encryption.cc",
+ "openpgp_symmetric_encryption.h",
+ "openssl_util.cc",
+ "openssl_util.h",
+ "p224.cc",
+ "p224.h",
+ "random.h",
+ "random.cc",
+ "rsa_private_key.cc",
+ "rsa_private_key.h",
+ "rsa_private_key_nss.cc",
+ "rsa_private_key_openssl.cc",
+ "scoped_capi_types.h",
+ "scoped_nss_types.h",
+ "secure_hash.h",
+ "secure_hash_default.cc",
+ "secure_hash_openssl.cc",
+ "sha2.cc",
+ "sha2.h",
+ "signature_creator.h",
+ "signature_creator_nss.cc",
+ "signature_creator_openssl.cc",
+ "signature_verifier.h",
+ "signature_verifier_nss.cc",
+ "signature_verifier_openssl.cc",
+ "symmetric_key_nss.cc",
+ "symmetric_key_openssl.cc",
+ "third_party/nss/chromium-blapi.h",
+ "third_party/nss/chromium-blapit.h",
+ "third_party/nss/chromium-nss.h",
+ "third_party/nss/pk11akey.cc",
+ "third_party/nss/rsawrapr.c",
+ "third_party/nss/secsign.cc",
+ ]
+
+ deps = [
+ ":crypto_minimal",
+ "//base",
+ "//base/third_party/dynamic_annotations",
+ "//crypto/ssl:metassl",
+ ]
+
+ if (!is_mac && !is_ios) {
+ sources -= [
+ "apple_keychain.h",
+ "mock_apple_keychain.cc",
+ "mock_apple_keychain.h",
+ ]
+ }
+
+ if (!is_linux) {
+ sources -= [
+ "openpgp_symmetric_encryption.cc",
+ "openpgp_symmetric_encryption.h",
+ ]
+ }
+ if (!is_mac) {
+ sources -= [
+ "cssm_init.cc",
+ "cssm_init.h",
+ "mac_security_services_lock.cc",
+ "mac_security_services_lock.h",
+ ]
+ }
+ if (!is_win) {
+ sources -= [
+ "capi_util.cc",
+ "capi_util.h",
+ ]
+ }
+
+ if (use_openssl) {
+ sources -= [
+ "ec_private_key_nss.cc",
+ "ec_signature_creator_nss.cc",
+ "encryptor_nss.cc",
+ "hmac_nss.cc",
+ "nss_util.cc",
+ "nss_util.h",
+ "openpgp_symmetric_encryption.cc",
+ "rsa_private_key_nss.cc",
+ "secure_hash_default.cc",
+ "signature_creator_nss.cc",
+ "signature_verifier_nss.cc",
+ "symmetric_key_nss.cc",
+ "third_party/nss/chromium-blapi.h",
+ "third_party/nss/chromium-blapit.h",
+ "third_party/nss/chromium-nss.h",
+ "third_party/nss/chromium-sha256.h",
+ "third_party/nss/pk11akey.cc",
+ "third_party/nss/rsawrapr.c",
+ "third_party/nss/secsign.cc",
+ "third_party/nss/sha512.cc",
+ ]
+ } else {
+ sources -= [
+ "ec_private_key_openssl.cc",
+ "ec_signature_creator_openssl.cc",
+ "encryptor_openssl.cc",
+ "hmac_openssl.cc",
+ "openssl_util.cc",
+ "openssl_util.h",
+ "rsa_private_key_openssl.cc",
+ "secure_hash_openssl.cc",
+ "signature_creator_openssl.cc",
+ "signature_verifier_openssl.cc",
+ "symmetric_key_openssl.cc",
+ ]
+ }
+
+ defines = [ "CRYPTO_IMPLEMENTATION" ]
+
+ # TODO(brettw) we probably need an equivalent of GYP's
+ # export_dependent_settings to forward direct_dependent_configs from a
+ # sub project to our children. For now, we copy these from ssl:metassl.
+ direct_dependent_configs = [ "ssl:ssl_preprocessor_flags" ]
+ if (is_linux) {
+ direct_dependent_configs += "//net/third_party/nss:nss_linux_config"
+ }
+}
+
+# A minimal crypto subset for core features that small standalone targets can
+# use to reduce code size.
+static_library("crypto_minimal") {
+ sources = [
+ "hmac.cc",
+ "hmac.h",
+ "hmac_win.cc",
+ "secure_util.cc",
+ "secure_util.h",
+ "symmetric_key.h",
+ "symmetric_key_win.cc",
+ "third_party/nss/chromium-sha256.h",
+ "third_party/nss/sha512.cc",
+ ]
+
+ deps = [
+ "//base",
+ "//base/third_party/dynamic_annotations",
+ ]
+
+ defines = [ "CRYPTO_IMPLEMENTATION" ]
+}
+
+test("crypto_unittests") {
+ sources = [
+ # Infrastructure files.
+ "run_all_unittests.cc",
+
+ # Tests.
+ "curve25519_unittest.cc",
+ "ec_private_key_unittest.cc",
+ "ec_signature_creator_unittest.cc",
+ "encryptor_unittest.cc",
+ "ghash_unittest.cc",
+ "hkdf_unittest.cc",
+ "hmac_unittest.cc",
+ "nss_util_unittest.cc",
+ "p224_unittest.cc",
+ "p224_spake_unittest.cc",
+ "random_unittest.cc",
+ "rsa_private_key_unittest.cc",
+ "rsa_private_key_nss_unittest.cc",
+ "secure_hash_unittest.cc",
+ "sha2_unittest.cc",
+ "signature_creator_unittest.cc",
+ "signature_verifier_unittest.cc",
+ "symmetric_key_unittest.cc",
+ "openpgp_symmetric_encryption_unittest.cc",
+ ]
+
+ if (use_openssl) {
+ sources -= [
+ "nss_util_unittest.cc",
+ "openpgp_symmetric_encryption_unittest.cc",
+ "rsa_private_key_nss_unittest,cc",
+ ]
+ }
+
+ deps = [
+ ":crypto",
+ "//base",
+ "//base/test:test_support_base",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ if (is_mac) {
+ deps += "//third_party/nss:nspr"
+ }
+}