| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2015 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/android/rules.gni") |
| 6 import("//build/util/version.gni") |
| 7 import("//chrome/version.gni") |
| 8 import("//testing/test.gni") |
| 9 |
| 10 assert(!is_component_build, "Cronet requires static library build.") |
| 11 |
| 12 declare_args() { |
| 13 cronet_enable_data_reduction_proxy_support = false |
| 14 } |
| 15 |
| 16 generate_jni("cronet_jni_headers") { |
| 17 sources = [ |
| 18 "java/src/org/chromium/net/ChromiumUrlRequest.java", |
| 19 "java/src/org/chromium/net/ChromiumUrlRequestContext.java", |
| 20 "java/src/org/chromium/net/CronetLibraryLoader.java", |
| 21 "java/src/org/chromium/net/CronetUploadDataStream.java", |
| 22 "java/src/org/chromium/net/CronetUrlRequest.java", |
| 23 "java/src/org/chromium/net/CronetUrlRequestContext.java", |
| 24 ] |
| 25 jni_package = "cronet" |
| 26 } |
| 27 |
| 28 java_cpp_enum("cronet_url_request_java") { |
| 29 sources = [ |
| 30 "chromium_url_request.h", |
| 31 ] |
| 32 } |
| 33 |
| 34 java_cpp_enum("net_request_priority_java") { |
| 35 sources = [ |
| 36 "//net/base/request_priority.h", |
| 37 ] |
| 38 } |
| 39 |
| 40 java_cpp_enum("network_quality_observations_java") { |
| 41 sources = [ |
| 42 "//net/base/network_quality_estimator.h", |
| 43 ] |
| 44 } |
| 45 |
| 46 java_cpp_enum("http_cache_type_java") { |
| 47 sources = [ |
| 48 "//components/cronet/url_request_context_config.h", |
| 49 ] |
| 50 } |
| 51 |
| 52 java_cpp_template("load_states_list") { |
| 53 sources = [ |
| 54 "java/src/org/chromium/net/LoadState.template", |
| 55 ] |
| 56 inputs = [ |
| 57 "//net/base/load_states_list.h", |
| 58 ] |
| 59 package_name = "org/chromium/cronet" |
| 60 } |
| 61 |
| 62 _generated_version_java_dir = "$target_gen_dir/templates/cronet_version_java" |
| 63 _generated_version_java = |
| 64 "$_generated_version_java_dir/org/chromium/cronet/Version.java" |
| 65 |
| 66 process_version("cronet_version_java") { |
| 67 template_file = "java/src/org/chromium/net/Version.template" |
| 68 output = _generated_version_java |
| 69 } |
| 70 |
| 71 zip("cronet_version_srcjar") { |
| 72 inputs = [ |
| 73 _generated_version_java, |
| 74 ] |
| 75 output = "$target_gen_dir/$target_name.srcjar" |
| 76 base_dir = _generated_version_java_dir |
| 77 deps = [ |
| 78 ":cronet_version_java", |
| 79 ] |
| 80 } |
| 81 |
| 82 _cronet_version_header_include_dir = "$target_gen_dir/cronet_version_header" |
| 83 process_version("cronet_version_header") { |
| 84 template_file = "//components/cronet/version.h.in" |
| 85 output = "$_cronet_version_header_include_dir/components/cronet/version.h" |
| 86 extra_args = [ |
| 87 "-e", |
| 88 "VERSION_FULL=\"$chrome_version_full\"", |
| 89 ] |
| 90 } |
| 91 |
| 92 # Variables: |
| 93 # defines: Extra defines. |
| 94 # deps: Extra dependencies. |
| 95 template("cronet_static_tmpl") { |
| 96 source_set(target_name) { |
| 97 defines = [] |
| 98 |
| 99 deps = [ |
| 100 ":cronet_jni_headers", |
| 101 ":cronet_url_request_java", |
| 102 ":cronet_version_header", |
| 103 "//base", |
| 104 "//base:i18n", |
| 105 "//base:prefs", |
| 106 "//base/third_party/dynamic_annotations", |
| 107 "//components/metrics", |
| 108 ] |
| 109 sources = [ |
| 110 "//components/cronet/android/chromium_url_request.cc", |
| 111 "//components/cronet/android/chromium_url_request.h", |
| 112 "//components/cronet/android/chromium_url_request_context.cc", |
| 113 "//components/cronet/android/chromium_url_request_context.h", |
| 114 "//components/cronet/android/cronet_in_memory_pref_store.cc", |
| 115 "//components/cronet/android/cronet_in_memory_pref_store.h", |
| 116 "//components/cronet/android/cronet_library_loader.cc", |
| 117 "//components/cronet/android/cronet_library_loader.h", |
| 118 "//components/cronet/android/cronet_upload_data_stream.cc", |
| 119 "//components/cronet/android/cronet_upload_data_stream.h", |
| 120 "//components/cronet/android/cronet_upload_data_stream_adapter.cc", |
| 121 "//components/cronet/android/cronet_upload_data_stream_adapter.h", |
| 122 "//components/cronet/android/cronet_url_request_adapter.cc", |
| 123 "//components/cronet/android/cronet_url_request_adapter.h", |
| 124 "//components/cronet/android/cronet_url_request_context_adapter.cc", |
| 125 "//components/cronet/android/cronet_url_request_context_adapter.h", |
| 126 "//components/cronet/android/url_request_adapter.cc", |
| 127 "//components/cronet/android/url_request_adapter.h", |
| 128 "//components/cronet/android/url_request_context_adapter.cc", |
| 129 "//components/cronet/android/url_request_context_adapter.h", |
| 130 "//components/cronet/android/wrapped_channel_upload_element_reader.cc", |
| 131 "//components/cronet/android/wrapped_channel_upload_element_reader.h", |
| 132 "//components/cronet/histogram_manager.cc", |
| 133 "//components/cronet/histogram_manager.h", |
| 134 "//components/cronet/url_request_context_config.cc", |
| 135 "//components/cronet/url_request_context_config.h", |
| 136 ] |
| 137 |
| 138 include_dirs = [ _cronet_version_header_include_dir ] |
| 139 |
| 140 cflags = [ |
| 141 "-DLOGGING=1", |
| 142 "-Wno-sign-promo", |
| 143 ] |
| 144 |
| 145 libs = [ |
| 146 "android", |
| 147 "log", |
| 148 ] |
| 149 |
| 150 if (cronet_enable_data_reduction_proxy_support) { |
| 151 defines += [ "DATA_REDUCTION_PROXY_SUPPORT" ] |
| 152 sources += [ |
| 153 "//components/cronet/android/cronet_data_reduction_proxy.cc", |
| 154 "//components/cronet/android/cronet_data_reduction_proxy.h", |
| 155 ] |
| 156 } |
| 157 |
| 158 if (defined(invoker.defines)) { |
| 159 defines += invoker.defines |
| 160 } |
| 161 |
| 162 if (defined(invoker.deps)) { |
| 163 deps += invoker.deps |
| 164 } |
| 165 } |
| 166 } |
| 167 |
| 168 # cronet_static_small target has reduced binary size through using |
| 169 # ICU alternatives which requires file and ftp support be disabled. |
| 170 cronet_static_tmpl("cronet_static_small") { |
| 171 defines = [ |
| 172 "USE_ICU_ALTERNATIVES_ON_ANDROID=1", |
| 173 "DISABLE_FILE_SUPPORT=1", |
| 174 "DISABLE_FTP_SUPPORT=1", |
| 175 ] |
| 176 |
| 177 deps = [ |
| 178 "//net:net_small", |
| 179 "//url:url_lib_use_icu_alternatives_on_android", |
| 180 ] |
| 181 |
| 182 if (cronet_enable_data_reduction_proxy_support) { |
| 183 deps += [ |
| 184 "//components/data_reduction_proxy/core/browser:browser_small", |
| 185 "//components/data_reduction_proxy/core/common:common_small", |
| 186 ] |
| 187 } |
| 188 } |
| 189 |
| 190 # cronet_static target depends on ICU and includes file and ftp support. |
| 191 cronet_static_tmpl("cronet_static") { |
| 192 deps = [ |
| 193 "//base:i18n", |
| 194 "//net", |
| 195 "//url", |
| 196 ] |
| 197 |
| 198 if (cronet_enable_data_reduction_proxy_support) { |
| 199 deps += [ |
| 200 "//components/data_reduction_proxy/core/browser", |
| 201 "//components/data_reduction_proxy/core/common", |
| 202 ] |
| 203 } |
| 204 } |
| 205 |
| 206 shared_library("cronet") { |
| 207 sources = [ |
| 208 "cronet_jni.cc", |
| 209 ] |
| 210 deps = [ |
| 211 ":cronet_static_small", |
| 212 "//base", |
| 213 "//net:net_small", |
| 214 ] |
| 215 } |
| 216 |
| 217 # cronet_api.jar defines Cronet API and provides implementation of |
| 218 # legacy api using HttpUrlConnection (not the Chromium stack). |
| 219 android_library("cronet_api") { |
| 220 DEPRECATED_java_in_dir = "api/src" |
| 221 |
| 222 deps = [ |
| 223 "//third_party/android_tools:android_support_annotations_javalib", |
| 224 ] |
| 225 |
| 226 srcjar_deps = [ |
| 227 ":cronet_version_srcjar", |
| 228 ":http_cache_type_java", |
| 229 ":load_states_list", |
| 230 ":network_quality_observations_java", |
| 231 ] |
| 232 |
| 233 run_findbugs = true |
| 234 } |
| 235 |
| 236 android_library("cronet_java") { |
| 237 java_files = [ |
| 238 "java/src/org/chromium/net/ChromiumUrlRequest.java", |
| 239 "java/src/org/chromium/net/ChromiumUrlRequestContext.java", |
| 240 "java/src/org/chromium/net/ChromiumUrlRequestFactory.java", |
| 241 "java/src/org/chromium/net/CronetLibraryLoader.java", |
| 242 "java/src/org/chromium/net/CronetUploadDataStream.java", |
| 243 "java/src/org/chromium/net/CronetUrlRequest.java", |
| 244 "java/src/org/chromium/net/CronetUrlRequestContext.java", |
| 245 "java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java", |
| 246 "java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java", |
| 247 "java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java", |
| 248 "java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java", |
| 249 "java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java", |
| 250 "java/src/org/chromium/net/urlconnection/CronetInputStream.java", |
| 251 "java/src/org/chromium/net/urlconnection/CronetOutputStream.java", |
| 252 "java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java"
, |
| 253 "java/src/org/chromium/net/urlconnection/MessageLoop.java", |
| 254 ] |
| 255 |
| 256 deps = [ |
| 257 ":cronet_api", |
| 258 "//base:base_java", |
| 259 "//net/android:net_java", |
| 260 "//third_party/jsr-305:jsr_305_javalib", |
| 261 ] |
| 262 |
| 263 srcjar_deps = [ |
| 264 ":cronet_url_request_java", |
| 265 ":net_request_priority_java", |
| 266 ] |
| 267 |
| 268 run_findbugs = true |
| 269 } |
| 270 |
| 271 android_resources("cronet_sample_apk_resources") { |
| 272 resource_dirs = [ "sample/res" ] |
| 273 android_manifest = "sample/AndroidManifest.xml" |
| 274 } |
| 275 |
| 276 android_library("cronet_sample_apk_java") { |
| 277 DEPRECATED_java_in_dir = "sample/src" |
| 278 |
| 279 deps = [ |
| 280 ":cronet_api", |
| 281 ":cronet_java", |
| 282 ":cronet_sample_apk_resources", |
| 283 "//base:base_java", |
| 284 ] |
| 285 |
| 286 run_findbugs = true |
| 287 } |
| 288 |
| 289 android_apk("cronet_sample_apk") { |
| 290 apk_name = "CronetSample" |
| 291 android_manifest = "sample/AndroidManifest.xml" |
| 292 native_libs = [ "libcronet.so" ] |
| 293 |
| 294 deps = [ |
| 295 ":cronet", |
| 296 ":cronet_sample_apk_java", |
| 297 ":cronet_sample_apk_resources", |
| 298 "//base:base_java", |
| 299 "//third_party/jsr-305:jsr_305_javalib", |
| 300 ] |
| 301 |
| 302 run_findbugs = true |
| 303 proguard_enabled = !is_debug |
| 304 proguard_configs = [ |
| 305 "proguard.cfg", |
| 306 "sample/javatests/proguard.cfg", |
| 307 ] |
| 308 } |
| 309 |
| 310 # cronet_sample_test_apk_resources is identical to |
| 311 # cronet_sample_apk_resources. The two have to be different targets because |
| 312 # targets which are common between the "instrumentation test apk" and the |
| 313 # "tested apk" are removed from the "instrumentation test apk". |
| 314 android_resources("cronet_sample_test_apk_resources") { |
| 315 resource_dirs = [ "sample/res" ] |
| 316 android_manifest = "sample/AndroidManifest.xml" |
| 317 } |
| 318 |
| 319 instrumentation_test_apk("cronet_sample_test_apk") { |
| 320 apk_name = "CronetSampleTest" |
| 321 apk_under_test = ":cronet_sample_apk" |
| 322 android_manifest = "sample/javatests/AndroidManifest.xml" |
| 323 DEPRECATED_java_in_dir = "sample/javatests/src" |
| 324 |
| 325 deps = [ |
| 326 ":cronet_api", |
| 327 ":cronet_java", |
| 328 ":cronet_sample_apk_java", |
| 329 ":cronet_sample_test_apk_resources", |
| 330 "//base:base_java", |
| 331 "//base:base_java_test_support", |
| 332 ] |
| 333 |
| 334 run_findbugs = true |
| 335 proguard_enabled = !is_debug |
| 336 } |
| 337 |
| 338 generate_jni("cronet_tests_jni_headers") { |
| 339 testonly = true |
| 340 sources = [ |
| 341 "test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java", |
| 342 "test/src/org/chromium/net/CronetTestUtil.java", |
| 343 "test/src/org/chromium/net/MockCertVerifier.java", |
| 344 "test/src/org/chromium/net/MockUrlRequestJobFactory.java", |
| 345 "test/src/org/chromium/net/NativeTestServer.java", |
| 346 "test/src/org/chromium/net/NetworkChangeNotifierUtil.java", |
| 347 "test/src/org/chromium/net/QuicTestServer.java", |
| 348 "test/src/org/chromium/net/SdchObserver.java", |
| 349 "test/src/org/chromium/net/TestUploadDataStreamHandler.java", |
| 350 ] |
| 351 jni_package = "cronet_tests" |
| 352 } |
| 353 |
| 354 shared_library("cronet_tests") { |
| 355 testonly = true |
| 356 sources = [ |
| 357 "test/cronet_test_jni.cc", |
| 358 "test/cronet_url_request_context_config_test.cc", |
| 359 "test/cronet_url_request_context_config_test.h", |
| 360 "test/mock_cert_verifier.cc", |
| 361 "test/mock_cert_verifier.h", |
| 362 "test/mock_url_request_job_factory.cc", |
| 363 "test/mock_url_request_job_factory.h", |
| 364 "test/native_test_server.cc", |
| 365 "test/native_test_server.h", |
| 366 "test/network_change_notifier_util.cc", |
| 367 "test/network_change_notifier_util.h", |
| 368 "test/quic_test_server.cc", |
| 369 "test/quic_test_server.h", |
| 370 "test/sdch_test_util.cc", |
| 371 "test/sdch_test_util.h", |
| 372 "test/test_upload_data_stream_handler.cc", |
| 373 "test/test_upload_data_stream_handler.h", |
| 374 ] |
| 375 |
| 376 deps = [ |
| 377 ":cronet_static", |
| 378 ":cronet_tests_jni_headers", |
| 379 "//base", |
| 380 "//base:i18n", |
| 381 "//net", |
| 382 "//net:simple_quic_tools", |
| 383 "//net:test_support", |
| 384 "//third_party/icu", |
| 385 ] |
| 386 |
| 387 if (cronet_enable_data_reduction_proxy_support) { |
| 388 deps += [ "//components/data_reduction_proxy/core/browser" ] |
| 389 } |
| 390 } |
| 391 |
| 392 android_resources("cronet_test_apk_resources") { |
| 393 testonly = true |
| 394 resource_dirs = [ "test/res" ] |
| 395 android_manifest = "test/AndroidManifest.xml" |
| 396 } |
| 397 |
| 398 android_library("cronet_test_apk_java") { |
| 399 testonly = true |
| 400 DEPRECATED_java_in_dir = "test/src" |
| 401 |
| 402 deps = [ |
| 403 ":cronet_api", |
| 404 ":cronet_java", |
| 405 "//base:base_java", |
| 406 "//net/android:net_java_test_support", |
| 407 ] |
| 408 } |
| 409 |
| 410 android_apk("cronet_test_apk") { |
| 411 testonly = true |
| 412 apk_name = "CronetTest" |
| 413 android_manifest = "test/AndroidManifest.xml" |
| 414 native_libs = [ "libcronet_tests.so" ] |
| 415 asset_location = "test/assets" |
| 416 |
| 417 deps = [ |
| 418 ":cronet_test_apk_java", |
| 419 ":cronet_test_apk_resources", |
| 420 ":cronet_tests", |
| 421 "//base:base_java", |
| 422 ] |
| 423 |
| 424 run_findbugs = true |
| 425 } |
| 426 |
| 427 instrumentation_test_apk("cronet_test_instrumentation_apk") { |
| 428 apk_name = "CronetTestInstrumentation" |
| 429 apk_under_test = ":cronet_test_apk" |
| 430 android_manifest = "test/javatests/AndroidManifest.xml" |
| 431 DEPRECATED_java_in_dir = "test/javatests/src" |
| 432 |
| 433 deps = [ |
| 434 ":cronet_api", |
| 435 ":cronet_java", |
| 436 ":cronet_test_apk_java", |
| 437 "//base:base_java", |
| 438 "//base:base_java_test_support", |
| 439 "//net/android:net_java", |
| 440 "//net/android:net_java_test_support", |
| 441 ] |
| 442 |
| 443 run_findbugs = true |
| 444 } |
| 445 |
| 446 test("cronet_unittests") { |
| 447 sources = [ |
| 448 "//components/cronet/histogram_manager_unittest.cc", |
| 449 "//components/cronet/run_all_unittests.cc", |
| 450 "//components/cronet/url_request_context_config_unittest.cc", |
| 451 ] |
| 452 |
| 453 deps = [ |
| 454 ":cronet_static", |
| 455 "//base", |
| 456 "//base/test:test_support", |
| 457 "//components/metrics", |
| 458 "//net", |
| 459 "//testing/gtest", |
| 460 ] |
| 461 } |
| OLD | NEW |