diff options
Diffstat (limited to 'chromium/google_apis/BUILD.gn')
-rw-r--r-- | chromium/google_apis/BUILD.gn | 246 |
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", + ] + } +} |