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 5 import("//build/config/crypto.gni") 6 7 declare_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 53 if (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 62 config("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 78 source_set("google_apis") { 79 sources = [ 80 "cup/client_update_protocol.cc", 81 "cup/client_update_protocol.h", 82 "drive/auth_service.cc", 83 "drive/auth_service.h", 84 "drive/auth_service_interface.h", 85 "drive/auth_service_observer.h", 86 "drive/base_requests.cc", 87 "drive/base_requests.h", 88 "drive/drive_api_parser.cc", 89 "drive/drive_api_parser.h", 90 "drive/drive_api_requests.cc", 91 "drive/drive_api_requests.h", 92 "drive/drive_api_url_generator.cc", 93 "drive/drive_api_url_generator.h", 94 "drive/drive_common_callbacks.h", 95 "drive/drive_entry_kinds.h", 96 "drive/gdata_errorcode.cc", 97 "drive/gdata_errorcode.h", 98 "drive/gdata_wapi_requests.cc", 99 "drive/gdata_wapi_requests.h", 100 "drive/gdata_wapi_parser.cc", 101 "drive/gdata_wapi_parser.h", 102 "drive/gdata_wapi_url_generator.cc", 103 "drive/gdata_wapi_url_generator.h", 104 "drive/request_sender.cc", 105 "drive/request_sender.h", 106 "drive/request_util.cc", 107 "drive/request_util.h", 108 "drive/task_util.cc", 109 "drive/task_util.h", 110 "drive/time_util.cc", 111 "drive/time_util.h", 112 "gaia/gaia_auth_consumer.cc", 113 "gaia/gaia_auth_consumer.h", 114 "gaia/gaia_auth_fetcher.cc", 115 "gaia/gaia_auth_fetcher.h", 116 "gaia/gaia_auth_util.cc", 117 "gaia/gaia_auth_util.h", 118 "gaia/gaia_constants.cc", 119 "gaia/gaia_constants.h", 120 "gaia/gaia_oauth_client.cc", 121 "gaia/gaia_oauth_client.h", 122 "gaia/gaia_switches.cc", 123 "gaia/gaia_switches.h", 124 "gaia/gaia_urls.cc", 125 "gaia/gaia_urls.h", 126 "gaia/google_service_auth_error.cc", 127 "gaia/google_service_auth_error.h", 128 "gaia/identity_provider.cc", 129 "gaia/identity_provider.h", 130 "gaia/merge_session_helper.cc", 131 "gaia/merge_session_helper.h", 132 "gaia/oauth_request_signer.cc", 133 "gaia/oauth_request_signer.h", 134 "gaia/oauth2_access_token_consumer.h", 135 "gaia/oauth2_access_token_fetcher.h", 136 "gaia/oauth2_access_token_fetcher.cc", 137 "gaia/oauth2_access_token_fetcher_impl.cc", 138 "gaia/oauth2_access_token_fetcher_impl.h", 139 "gaia/oauth2_api_call_flow.cc", 140 "gaia/oauth2_api_call_flow.h", 141 "gaia/oauth2_mint_token_flow.cc", 142 "gaia/oauth2_mint_token_flow.h", 143 "gaia/oauth2_token_service.cc", 144 "gaia/oauth2_token_service.h", 145 "gaia/ubertoken_fetcher.cc", 146 "gaia/ubertoken_fetcher.h", 147 "google_api_keys.cc", 148 "google_api_keys.h", 149 ] 150 151 if (is_win) { 152 cflags = [ "/wd4267" ] # size_t -> int 153 } 154 155 configs += [ ":key_defines" ] 156 157 deps = [ 158 "//base", 159 "//crypto", 160 "//crypto:platform", 161 "//net", 162 "//third_party/libxml", 163 ] 164 165 if (use_openssl) { 166 sources += [ "cup/client_update_protocol_openssl.cc" ] 167 } else { 168 sources += [ "cup/client_update_protocol_nss.cc" ] 169 } 170 } 171 172 source_set("test_support") { 173 sources = [ 174 "drive/dummy_auth_service.cc", 175 "drive/dummy_auth_service.h", 176 "drive/test_util.cc", 177 "drive/test_util.h", 178 "gaia/fake_gaia.cc", 179 "gaia/fake_gaia.h", 180 "gaia/fake_identity_provider.cc", 181 "gaia/fake_identity_provider.h", 182 "gaia/fake_oauth2_token_service.cc", 183 "gaia/fake_oauth2_token_service.h", 184 "gaia/mock_url_fetcher_factory.h", 185 "gaia/oauth2_token_service_test_util.cc", 186 "gaia/oauth2_token_service_test_util.h", 187 ] 188 189 deps = [ 190 "//base", 191 "//base/test:test_support", 192 "//net", 193 "//net:test_support", 194 ] 195 forward_dependent_configs_from = deps 196 } 197 198 test("google_apis_unittest") { 199 sources = [ 200 "google_api_keys_unittest.cc", 201 "cup/client_update_protocol_unittest.cc", 202 "drive/base_requests_unittest.cc", 203 "drive/base_requests_server_unittest.cc", 204 "drive/drive_api_requests_unittest.cc", 205 "drive/drive_api_parser_unittest.cc", 206 "drive/drive_api_url_generator_unittest.cc", 207 "drive/gdata_wapi_parser_unittest.cc", 208 "drive/gdata_wapi_requests_unittest.cc", 209 "drive/gdata_wapi_url_generator_unittest.cc", 210 "drive/request_sender_unittest.cc", 211 "drive/request_util_unittest.cc", 212 "drive/time_util_unittest.cc", 213 "gaia/gaia_auth_fetcher_unittest.cc", 214 "gaia/gaia_auth_util_unittest.cc", 215 "gaia/gaia_oauth_client_unittest.cc", 216 "gaia/google_service_auth_error_unittest.cc", 217 "gaia/merge_session_helper_unittest.cc", 218 "gaia/oauth_request_signer_unittest.cc", 219 "gaia/oauth2_access_token_fetcher_impl_unittest.cc", 220 "gaia/oauth2_api_call_flow_unittest.cc", 221 "gaia/oauth2_mint_token_flow_unittest.cc", 222 "gaia/oauth2_token_service_unittest.cc", 223 "gaia/ubertoken_fetcher_unittest.cc", 224 ] 225 226 configs += [ ":key_defines" ] 227 228 deps = [ 229 ":google_apis", 230 ":test_support", 231 "//base", 232 "//base/test:run_all_unittests", 233 "//testing/gmock", 234 "//testing/gtest", 235 ] 236 237 if (is_android) { 238 sources -= [ 239 "drive/base_requests_server_unittest.cc", 240 "drive/drive_api_parser_unittest.cc", 241 "drive/drive_api_requests_unittest.cc", 242 "drive/gdata_wapi_parser_unittest.cc", 243 "drive/gdata_wapi_requests_unittest.cc", 244 ] 245 } 246 } 247