1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//build/config/features.gni") 6 7declare_args() { 8 # You can set the variable 'use_official_google_api_keys' to true 9 # to use the Google-internal file containing official API keys 10 # for Google Chrome even in a developer build. Setting this 11 # variable explicitly to true will cause your build to fail if the 12 # internal file is missing. 13 # 14 # The variable is documented here, but not handled in this file; 15 # see //google_apis/determine_use_official_keys.gypi for the 16 # implementation. 17 # 18 # Set the variable to false to not use the internal file, even when 19 # it exists in your checkout. 20 # 21 # Leave it unset or set to "" to have the variable 22 # implicitly set to true if you have 23 # src/google_apis/internal/google_chrome_api_keys.h in your 24 # checkout, and implicitly set to false if not. 25 # 26 # Note that official builds always behave as if the variable 27 # was explicitly set to true, i.e. they always use official keys, 28 # and will fail to build if the internal file is missing. 29 use_official_google_api_keys = "" 30 31 # Set these to bake the specified API keys and OAuth client 32 # IDs/secrets into your build. 33 # 34 # If you create a build without values baked in, you can instead 35 # set environment variables to provide the keys at runtime (see 36 # src/google_apis/google_api_keys.h for details). Features that 37 # require server-side APIs may fail to work if no keys are 38 # provided. 39 # 40 # Note that if you are building an official build or if 41 # use_official_google_api_keys has been set to trie (explicitly or 42 # implicitly), these values will be ignored and the official 43 # keys will be used instead. 44 google_api_key = "" 45 46 # See google_api_key. 47 google_default_client_id = "" 48 49 # See google_api_key. 50 google_default_client_secret = "" 51} 52 53if (use_official_google_api_keys == "") { 54 # Default behavior, check if the key file exists. 55 check_internal_result = exec_script( 56 "build/check_internal.py", 57 [ rebase_path("internal/google_chrome_api_keys.h", root_build_dir) ], 58 "value") 59 use_official_google_api_keys = (check_internal_result == 1) 60} 61 62config("key_defines") { 63 defines = [] 64 if (use_official_google_api_keys) { 65 defines += [ "USE_OFFICIAL_GOOGLE_API_KEYS=1" ] 66 } 67 if (google_api_key != "") { 68 defines += [ "GOOGLE_API_KEY=$google_api_key" ] 69 } 70 if (google_default_client_id != "") { 71 defines += [ "GOOGLE_DEFAULT_CLIENT_ID=$google_default_client_id" ] 72 } 73 if (google_default_client_secret != "") { 74 defines += [ "GOOGLE_DEFAULT_CLIENT_SECRET=$google_default_client_secret" ] 75 } 76} 77 78source_set("google_apis") { 79 sources = [ 80 "gaia/account_tracker.cc", 81 "gaia/account_tracker.h", 82 "gaia/gaia_auth_consumer.cc", 83 "gaia/gaia_auth_consumer.h", 84 "gaia/gaia_auth_fetcher.cc", 85 "gaia/gaia_auth_fetcher.h", 86 "gaia/gaia_auth_util.cc", 87 "gaia/gaia_auth_util.h", 88 "gaia/gaia_constants.cc", 89 "gaia/gaia_constants.h", 90 "gaia/gaia_oauth_client.cc", 91 "gaia/gaia_oauth_client.h", 92 "gaia/gaia_switches.cc", 93 "gaia/gaia_switches.h", 94 "gaia/gaia_urls.cc", 95 "gaia/gaia_urls.h", 96 "gaia/google_service_auth_error.cc", 97 "gaia/google_service_auth_error.h", 98 "gaia/identity_provider.cc", 99 "gaia/identity_provider.h", 100 "gaia/merge_session_helper.cc", 101 "gaia/merge_session_helper.h", 102 "gaia/oauth_request_signer.cc", 103 "gaia/oauth_request_signer.h", 104 "gaia/oauth2_access_token_consumer.h", 105 "gaia/oauth2_access_token_fetcher.cc", 106 "gaia/oauth2_access_token_fetcher.h", 107 "gaia/oauth2_access_token_fetcher_impl.cc", 108 "gaia/oauth2_access_token_fetcher_impl.h", 109 "gaia/oauth2_api_call_flow.cc", 110 "gaia/oauth2_api_call_flow.h", 111 "gaia/oauth2_mint_token_flow.cc", 112 "gaia/oauth2_mint_token_flow.h", 113 "gaia/oauth2_token_service.cc", 114 "gaia/oauth2_token_service.h", 115 "gaia/oauth2_token_service_request.cc", 116 "gaia/oauth2_token_service_request.h", 117 "gaia/ubertoken_fetcher.cc", 118 "gaia/ubertoken_fetcher.h", 119 "google_api_keys.cc", 120 "google_api_keys.h", 121 ] 122 123 if (is_win) { 124 cflags = [ "/wd4267" ] # size_t -> int 125 } 126 127 configs += [ ":key_defines" ] 128 129 deps = [ 130 "//base", 131 "//crypto", 132 "//net", 133 "//third_party/libxml", 134 ] 135 136 if (enable_extensions) { 137 sources += [ 138 "drive/auth_service.cc", 139 "drive/auth_service.h", 140 "drive/auth_service_interface.h", 141 "drive/auth_service_observer.h", 142 "drive/base_requests.cc", 143 "drive/base_requests.h", 144 "drive/drive_api_parser.cc", 145 "drive/drive_api_parser.h", 146 "drive/drive_api_requests.cc", 147 "drive/drive_api_requests.h", 148 "drive/drive_api_url_generator.cc", 149 "drive/drive_api_url_generator.h", 150 "drive/drive_common_callbacks.h", 151 "drive/gdata_errorcode.cc", 152 "drive/gdata_errorcode.h", 153 "drive/gdata_wapi_requests.cc", 154 "drive/gdata_wapi_requests.h", 155 "drive/gdata_wapi_parser.cc", 156 "drive/gdata_wapi_parser.h", 157 "drive/gdata_wapi_url_generator.cc", 158 "drive/gdata_wapi_url_generator.h", 159 "drive/request_sender.cc", 160 "drive/request_sender.h", 161 "drive/request_util.cc", 162 "drive/request_util.h", 163 "drive/task_util.cc", 164 "drive/task_util.h", 165 "drive/time_util.cc", 166 "drive/time_util.h", 167 ] 168 } 169} 170 171source_set("test_support") { 172 testonly = true 173 sources = [ 174 "gaia/fake_gaia.cc", 175 "gaia/fake_gaia.h", 176 "gaia/fake_identity_provider.cc", 177 "gaia/fake_identity_provider.h", 178 "gaia/fake_oauth2_token_service.cc", 179 "gaia/fake_oauth2_token_service.h", 180 "gaia/mock_url_fetcher_factory.h", 181 "gaia/oauth2_token_service_test_util.cc", 182 "gaia/oauth2_token_service_test_util.h", 183 ] 184 185 public_deps = [ 186 "//base", 187 "//base/test:test_support", 188 "//net", 189 "//net:test_support", 190 ] 191 192 if (enable_extensions) { 193 sources += [ 194 "drive/dummy_auth_service.cc", 195 "drive/dummy_auth_service.h", 196 "drive/test_util.cc", 197 "drive/test_util.h", 198 ] 199 } 200} 201 202test("google_apis_unittest") { 203 sources = [ 204 "google_api_keys_unittest.cc", 205 "gaia/gaia_auth_fetcher_unittest.cc", 206 "gaia/gaia_auth_util_unittest.cc", 207 "gaia/gaia_oauth_client_unittest.cc", 208 "gaia/google_service_auth_error_unittest.cc", 209 "gaia/merge_session_helper_unittest.cc", 210 "gaia/oauth_request_signer_unittest.cc", 211 "gaia/oauth2_access_token_fetcher_impl_unittest.cc", 212 "gaia/oauth2_api_call_flow_unittest.cc", 213 "gaia/oauth2_mint_token_flow_unittest.cc", 214 "gaia/oauth2_token_service_unittest.cc", 215 "gaia/ubertoken_fetcher_unittest.cc", 216 ] 217 218 configs += [ ":key_defines" ] 219 220 deps = [ 221 ":google_apis", 222 ":test_support", 223 "//base", 224 "//base/test:run_all_unittests", 225 "//testing/gmock", 226 "//testing/gtest", 227 ] 228 229 if (enable_extensions) { 230 sources += [ 231 "drive/base_requests_server_unittest.cc", 232 "drive/base_requests_unittest.cc", 233 "drive/drive_api_parser_unittest.cc", 234 "drive/drive_api_requests_unittest.cc", 235 "drive/drive_api_url_generator_unittest.cc", 236 "drive/gdata_wapi_parser_unittest.cc", 237 "drive/gdata_wapi_requests_unittest.cc", 238 "drive/gdata_wapi_url_generator_unittest.cc", 239 "drive/request_sender_unittest.cc", 240 "drive/request_util_unittest.cc", 241 "drive/time_util_unittest.cc", 242 ] 243 } 244} 245