# 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") import("//build/config/features.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", "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" ] } if (enable_extensions) { sources += [ "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/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", ] } } source_set("test_support") { sources = [ "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 if (enable_extensions) { sources += [ "drive/dummy_auth_service.cc", "drive/dummy_auth_service.h", "drive/test_util.cc", "drive/test_util.h", ] } } test("google_apis_unittest") { sources = [ "google_api_keys_unittest.cc", "cup/client_update_protocol_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 (enable_extensions) { sources += [ "drive/base_requests_server_unittest.cc", "drive/base_requests_unittest.cc", "drive/drive_api_parser_unittest.cc", "drive/drive_api_requests_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", ] } }