summaryrefslogtreecommitdiffstats
path: root/chromium/google_apis/BUILD.gn
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/google_apis/BUILD.gn')
-rw-r--r--chromium/google_apis/BUILD.gn246
1 files changed, 246 insertions, 0 deletions
diff --git a/chromium/google_apis/BUILD.gn b/chromium/google_apis/BUILD.gn
new file mode 100644
index 00000000000..6dbeab10039
--- /dev/null
+++ b/chromium/google_apis/BUILD.gn
@@ -0,0 +1,246 @@
+# Copyright 2014 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("//build/config/crypto.gni")
+
+declare_args() {
+ # You can set the variable 'use_official_google_api_keys' to true
+ # to use the Google-internal file containing official API keys
+ # for Google Chrome even in a developer build. Setting this
+ # variable explicitly to true will cause your build to fail if the
+ # internal file is missing.
+ #
+ # The variable is documented here, but not handled in this file;
+ # see //google_apis/determine_use_official_keys.gypi for the
+ # implementation.
+ #
+ # Set the variable to false to not use the internal file, even when
+ # it exists in your checkout.
+ #
+ # Leave it unset or set to "" to have the variable
+ # implicitly set to true if you have
+ # src/google_apis/internal/google_chrome_api_keys.h in your
+ # checkout, and implicitly set to false if not.
+ #
+ # Note that official builds always behave as if the variable
+ # was explicitly set to true, i.e. they always use official keys,
+ # and will fail to build if the internal file is missing.
+ use_official_google_api_keys = ""
+
+ # Set these to bake the specified API keys and OAuth client
+ # IDs/secrets into your build.
+ #
+ # If you create a build without values baked in, you can instead
+ # set environment variables to provide the keys at runtime (see
+ # src/google_apis/google_api_keys.h for details). Features that
+ # require server-side APIs may fail to work if no keys are
+ # provided.
+ #
+ # Note that if you are building an official build or if
+ # use_official_google_api_keys has been set to trie (explicitly or
+ # implicitly), these values will be ignored and the official
+ # keys will be used instead.
+ google_api_key = ""
+
+ # See google_api_key.
+ google_default_client_id = ""
+
+ # See google_api_key.
+ google_default_client_secret = ""
+}
+
+if (use_official_google_api_keys == "") {
+ # Default behavior, check if the key file exists.
+ check_internal_result = exec_script(
+ "build/check_internal.py",
+ [ rebase_path("internal/google_chrome_api_keys.h", root_build_dir) ],
+ "value")
+ use_official_google_api_keys = (check_internal_result == 1)
+}
+
+config("key_defines") {
+ defines = []
+ if (use_official_google_api_keys) {
+ defines += [ "USE_OFFICIAL_GOOGLE_API_KEYS=1" ]
+ }
+ if (google_api_key != "") {
+ defines += [ "GOOGLE_API_KEY=$google_api_key" ]
+ }
+ if (google_default_client_id != "") {
+ defines += [ "GOOGLE_DEFAULT_CLIENT_ID=$google_default_client_id" ]
+ }
+ if (google_default_client_secret != "") {
+ defines += [ "GOOGLE_DEFAULT_CLIENT_SECRET=$google_default_client_secret" ]
+ }
+}
+
+source_set("google_apis") {
+ sources = [
+ "cup/client_update_protocol.cc",
+ "cup/client_update_protocol.h",
+ "drive/auth_service.cc",
+ "drive/auth_service.h",
+ "drive/auth_service_interface.h",
+ "drive/auth_service_observer.h",
+ "drive/base_requests.cc",
+ "drive/base_requests.h",
+ "drive/drive_api_parser.cc",
+ "drive/drive_api_parser.h",
+ "drive/drive_api_requests.cc",
+ "drive/drive_api_requests.h",
+ "drive/drive_api_url_generator.cc",
+ "drive/drive_api_url_generator.h",
+ "drive/drive_common_callbacks.h",
+ "drive/drive_entry_kinds.h",
+ "drive/gdata_errorcode.cc",
+ "drive/gdata_errorcode.h",
+ "drive/gdata_wapi_requests.cc",
+ "drive/gdata_wapi_requests.h",
+ "drive/gdata_wapi_parser.cc",
+ "drive/gdata_wapi_parser.h",
+ "drive/gdata_wapi_url_generator.cc",
+ "drive/gdata_wapi_url_generator.h",
+ "drive/request_sender.cc",
+ "drive/request_sender.h",
+ "drive/request_util.cc",
+ "drive/request_util.h",
+ "drive/task_util.cc",
+ "drive/task_util.h",
+ "drive/time_util.cc",
+ "drive/time_util.h",
+ "gaia/gaia_auth_consumer.cc",
+ "gaia/gaia_auth_consumer.h",
+ "gaia/gaia_auth_fetcher.cc",
+ "gaia/gaia_auth_fetcher.h",
+ "gaia/gaia_auth_util.cc",
+ "gaia/gaia_auth_util.h",
+ "gaia/gaia_constants.cc",
+ "gaia/gaia_constants.h",
+ "gaia/gaia_oauth_client.cc",
+ "gaia/gaia_oauth_client.h",
+ "gaia/gaia_switches.cc",
+ "gaia/gaia_switches.h",
+ "gaia/gaia_urls.cc",
+ "gaia/gaia_urls.h",
+ "gaia/google_service_auth_error.cc",
+ "gaia/google_service_auth_error.h",
+ "gaia/identity_provider.cc",
+ "gaia/identity_provider.h",
+ "gaia/merge_session_helper.cc",
+ "gaia/merge_session_helper.h",
+ "gaia/oauth_request_signer.cc",
+ "gaia/oauth_request_signer.h",
+ "gaia/oauth2_access_token_consumer.h",
+ "gaia/oauth2_access_token_fetcher.h",
+ "gaia/oauth2_access_token_fetcher.cc",
+ "gaia/oauth2_access_token_fetcher_impl.cc",
+ "gaia/oauth2_access_token_fetcher_impl.h",
+ "gaia/oauth2_api_call_flow.cc",
+ "gaia/oauth2_api_call_flow.h",
+ "gaia/oauth2_mint_token_flow.cc",
+ "gaia/oauth2_mint_token_flow.h",
+ "gaia/oauth2_token_service.cc",
+ "gaia/oauth2_token_service.h",
+ "gaia/ubertoken_fetcher.cc",
+ "gaia/ubertoken_fetcher.h",
+ "google_api_keys.cc",
+ "google_api_keys.h",
+ ]
+
+ if (is_win) {
+ cflags = [ "/wd4267" ] # size_t -> int
+ }
+
+ configs += [ ":key_defines" ]
+
+ deps = [
+ "//base",
+ "//crypto",
+ "//crypto:platform",
+ "//net",
+ "//third_party/libxml",
+ ]
+
+ if (use_openssl) {
+ sources += [ "cup/client_update_protocol_openssl.cc" ]
+ } else {
+ sources += [ "cup/client_update_protocol_nss.cc" ]
+ }
+}
+
+source_set("test_support") {
+ sources = [
+ "drive/dummy_auth_service.cc",
+ "drive/dummy_auth_service.h",
+ "drive/test_util.cc",
+ "drive/test_util.h",
+ "gaia/fake_gaia.cc",
+ "gaia/fake_gaia.h",
+ "gaia/fake_identity_provider.cc",
+ "gaia/fake_identity_provider.h",
+ "gaia/fake_oauth2_token_service.cc",
+ "gaia/fake_oauth2_token_service.h",
+ "gaia/mock_url_fetcher_factory.h",
+ "gaia/oauth2_token_service_test_util.cc",
+ "gaia/oauth2_token_service_test_util.h",
+ ]
+
+ deps = [
+ "//base",
+ "//base/test:test_support",
+ "//net",
+ "//net:test_support",
+ ]
+ forward_dependent_configs_from = deps
+}
+
+test("google_apis_unittest") {
+ sources = [
+ "google_api_keys_unittest.cc",
+ "cup/client_update_protocol_unittest.cc",
+ "drive/base_requests_unittest.cc",
+ "drive/base_requests_server_unittest.cc",
+ "drive/drive_api_requests_unittest.cc",
+ "drive/drive_api_parser_unittest.cc",
+ "drive/drive_api_url_generator_unittest.cc",
+ "drive/gdata_wapi_parser_unittest.cc",
+ "drive/gdata_wapi_requests_unittest.cc",
+ "drive/gdata_wapi_url_generator_unittest.cc",
+ "drive/request_sender_unittest.cc",
+ "drive/request_util_unittest.cc",
+ "drive/time_util_unittest.cc",
+ "gaia/gaia_auth_fetcher_unittest.cc",
+ "gaia/gaia_auth_util_unittest.cc",
+ "gaia/gaia_oauth_client_unittest.cc",
+ "gaia/google_service_auth_error_unittest.cc",
+ "gaia/merge_session_helper_unittest.cc",
+ "gaia/oauth_request_signer_unittest.cc",
+ "gaia/oauth2_access_token_fetcher_impl_unittest.cc",
+ "gaia/oauth2_api_call_flow_unittest.cc",
+ "gaia/oauth2_mint_token_flow_unittest.cc",
+ "gaia/oauth2_token_service_unittest.cc",
+ "gaia/ubertoken_fetcher_unittest.cc",
+ ]
+
+ configs += [ ":key_defines" ]
+
+ deps = [
+ ":google_apis",
+ ":test_support",
+ "//base",
+ "//base/test:run_all_unittests",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ if (is_android) {
+ sources -= [
+ "drive/base_requests_server_unittest.cc",
+ "drive/drive_api_parser_unittest.cc",
+ "drive/drive_api_requests_unittest.cc",
+ "drive/gdata_wapi_parser_unittest.cc",
+ "drive/gdata_wapi_requests_unittest.cc",
+ ]
+ }
+}