diff options
author | Michal Klocek <michal.klocek@qt.io> | 2016-11-10 14:06:09 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2016-11-16 13:45:02 +0000 |
commit | 777da810b25f517d54dc4b7771e42a4ea38c355b (patch) | |
tree | 675d9f4b67f68441adffb9a01e3075d8d12c0fb2 /chromium/components/cronet | |
parent | 2eb1e44ebb98208ec9bd0acb0c410e95e8f253b9 (diff) | |
download | qtwebengine-chromium-777da810b25f517d54dc4b7771e42a4ea38c355b.tar.gz |
Add all gn, gni, typemap, mojom files
These file are required to gn be able to parse
source tree.
Change-Id: I9cb4a0b3897c1e99dd6e39832a8c55764fb6e1c6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/cronet')
-rw-r--r-- | chromium/components/cronet/android/BUILD.gn | 901 | ||||
-rw-r--r-- | chromium/components/cronet/ios/BUILD.gn | 170 |
2 files changed, 1071 insertions, 0 deletions
diff --git a/chromium/components/cronet/android/BUILD.gn b/chromium/components/cronet/android/BUILD.gn new file mode 100644 index 00000000000..ec59f29b533 --- /dev/null +++ b/chromium/components/cronet/android/BUILD.gn @@ -0,0 +1,901 @@ +# Copyright 2015 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/buildflag_header.gni") +import("//build/config/android/config.gni") +import("//build/config/android/rules.gni") +import("//build/util/version.gni") +import("//chrome/version.gni") +import("//testing/test.gni") +import("//third_party/protobuf/proto_library.gni") +import("//url/features.gni") + +assert(!is_component_build, "Cronet requires static library build.") + +declare_args() { + cronet_enable_data_reduction_proxy_support = false +} + +generate_jni("cronet_jni_headers") { + sources = [ + "java/src/org/chromium/net/ChromiumUrlRequest.java", + "java/src/org/chromium/net/ChromiumUrlRequestContext.java", + "java/src/org/chromium/net/CronetBidirectionalStream.java", + "java/src/org/chromium/net/CronetLibraryLoader.java", + "java/src/org/chromium/net/CronetUploadDataStream.java", + "java/src/org/chromium/net/CronetUrlRequest.java", + "java/src/org/chromium/net/CronetUrlRequestContext.java", + ] + jni_package = "cronet" +} + +java_cpp_enum("chromium_url_request_java") { + sources = [ + "chromium_url_request.h", + ] +} + +java_cpp_enum("net_request_priority_java") { + sources = [ + "//net/base/request_priority.h", + ] +} + +java_cpp_enum("network_quality_observation_source_java") { + sources = [ + "//net/nqe/network_quality_observation_source.h", + ] +} + +java_cpp_enum("url_request_error_java") { + sources = [ + "url_request_error.h", + ] +} + +# This target is a jar file containing classes that Cronet's javadocs +# may reference but are not included in the javadocs themselves. +android_library("cronet_javadoc_classpath") { + srcjar_deps = [ ":url_request_error_java" ] +} + +java_cpp_enum("http_cache_type_java") { + sources = [ + "//components/cronet/url_request_context_config.h", + ] +} + +java_cpp_template("load_states_list") { + sources = [ + "java/src/org/chromium/net/LoadState.template", + ] + inputs = [ + "//net/base/load_states_list.h", + ] + package_name = "org/chromium/net" +} + +_generated_version_java_dir = "$target_gen_dir/templates/cronet_version_java" +_generated_version_java = + "$_generated_version_java_dir/org/chromium/net/Version.java" + +process_version("cronet_version_java") { + template_file = "java/src/org/chromium/net/Version.template" + output = _generated_version_java +} + +zip("cronet_version_srcjar") { + inputs = [ + _generated_version_java, + ] + output = "$target_gen_dir/$target_name.srcjar" + base_dir = _generated_version_java_dir + deps = [ + ":cronet_version_java", + ] +} + +_cronet_version_header_include_dir = "$target_gen_dir/cronet_version_header" +process_version("cronet_version_header") { + template_file = "//components/cronet/version.h.in" + output = "$_cronet_version_header_include_dir/components/cronet/version.h" + extra_args = [ + "-e", + "VERSION_FULL=\"$chrome_version_full\"", + ] +} + +proto_library("cronet_android_cert_proto") { + visibility = [ "//components/cronet/android/*" ] + + sources = [ + "//components/cronet/android/cert/proto/cert_verification.proto", + ] + + deps = [ + "//third_party/protobuf:protobuf_lite", + ] + + extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] +} + +# Variables: +# defines: Extra defines. +# deps: Extra dependencies. +template("cronet_static_tmpl") { + source_set(target_name) { + defines = [] + + deps = [ + ":chromium_url_request_java", + ":cronet_android_cert_proto", + ":cronet_jni_headers", + ":cronet_version_header", + "//base", + "//base/third_party/dynamic_annotations", + "//components/metrics", + "//components/prefs", + "//url:url_features", + ] + sources = [ + "//components/cronet/android/cert/cert_verifier_cache_serializer.cc", + "//components/cronet/android/cert/cert_verifier_cache_serializer.h", + "//components/cronet/android/chromium_url_request.cc", + "//components/cronet/android/chromium_url_request.h", + "//components/cronet/android/chromium_url_request_context.cc", + "//components/cronet/android/chromium_url_request_context.h", + "//components/cronet/android/cronet_bidirectional_stream_adapter.cc", + "//components/cronet/android/cronet_bidirectional_stream_adapter.h", + "//components/cronet/android/cronet_in_memory_pref_store.cc", + "//components/cronet/android/cronet_in_memory_pref_store.h", + "//components/cronet/android/cronet_library_loader.cc", + "//components/cronet/android/cronet_library_loader.h", + "//components/cronet/android/cronet_upload_data_stream.cc", + "//components/cronet/android/cronet_upload_data_stream.h", + "//components/cronet/android/cronet_upload_data_stream_adapter.cc", + "//components/cronet/android/cronet_upload_data_stream_adapter.h", + "//components/cronet/android/cronet_url_request_adapter.cc", + "//components/cronet/android/cronet_url_request_adapter.h", + "//components/cronet/android/cronet_url_request_context_adapter.cc", + "//components/cronet/android/cronet_url_request_context_adapter.h", + "//components/cronet/android/io_buffer_with_byte_buffer.cc", + "//components/cronet/android/io_buffer_with_byte_buffer.h", + "//components/cronet/android/url_request_adapter.cc", + "//components/cronet/android/url_request_adapter.h", + "//components/cronet/android/url_request_context_adapter.cc", + "//components/cronet/android/url_request_context_adapter.h", + "//components/cronet/android/url_request_error.cc", + "//components/cronet/android/url_request_error.h", + "//components/cronet/android/wrapped_channel_upload_element_reader.cc", + "//components/cronet/android/wrapped_channel_upload_element_reader.h", + "//components/cronet/histogram_manager.cc", + "//components/cronet/histogram_manager.h", + "//components/cronet/url_request_context_config.cc", + "//components/cronet/url_request_context_config.h", + ] + + include_dirs = [ _cronet_version_header_include_dir ] + + cflags = [ + "-DLOGGING=1", + "-Wno-sign-promo", + ] + + libs = [ + "android", + "log", + ] + + if (cronet_enable_data_reduction_proxy_support) { + defines += [ "DATA_REDUCTION_PROXY_SUPPORT" ] + sources += [ + "//components/cronet/android/cronet_data_reduction_proxy.cc", + "//components/cronet/android/cronet_data_reduction_proxy.h", + ] + } + + if (defined(invoker.defines)) { + defines += invoker.defines + } + + if (defined(invoker.deps)) { + deps += invoker.deps + } + } +} + +cronet_static_tmpl("cronet_static") { + deps = [ + "//net", + "//url", + ] + + if (cronet_enable_data_reduction_proxy_support) { + deps += [ + "//components/data_reduction_proxy/core/browser:browser_small", + "//components/data_reduction_proxy/core/common", + ] + } + + if (!use_platform_icu_alternatives) { + deps += [ "//base:i18n" ] + } +} + +shared_library("cronet") { + sources = [ + "cronet_jni.cc", + ] + deps = [ + ":cronet_static", + "//base", + "//net:net", + ] + ldflags = [ "-Wl,--version-script=" + + rebase_path("//components/cronet/android/only_jni_exports.lst") ] + + # Avoid hide_native_jni_exports as it adds another version script, and the + # ARM64 linker throws an error for multiple version scripts with anonymous + # version tags. + configs -= [ "//build/config/android:hide_native_jni_exports" ] +} + +# cronet_api.jar defines Cronet API and provides implementation of +# legacy api using HttpUrlConnection (not the Chromium stack). +android_library("cronet_api") { + java_files = [ + "api/src/org/chromium/net/BidirectionalStream.java", + "api/src/org/chromium/net/ChunkedWritableByteChannel.java", + "api/src/org/chromium/net/CronetEngine.java", + "api/src/org/chromium/net/CronetException.java", + "api/src/org/chromium/net/HttpUrlConnectionUrlRequest.java", + "api/src/org/chromium/net/HttpUrlConnectionUrlRequestFactory.java", + "api/src/org/chromium/net/HttpUrlRequest.java", + "api/src/org/chromium/net/HttpUrlRequestFactory.java", + "api/src/org/chromium/net/HttpUrlRequestFactoryConfig.java", + "api/src/org/chromium/net/HttpUrlRequestListener.java", + "api/src/org/chromium/net/InputStreamChannel.java", + "api/src/org/chromium/net/JavaCronetEngine.java", + "api/src/org/chromium/net/JavaUrlRequest.java", + "api/src/org/chromium/net/NetworkQualityRttListener.java", + "api/src/org/chromium/net/NetworkQualityThroughputListener.java", + "api/src/org/chromium/net/Preconditions.java", + "api/src/org/chromium/net/QuicException.java", + "api/src/org/chromium/net/ResponseTooLargeException.java", + "api/src/org/chromium/net/UploadDataProvider.java", + "api/src/org/chromium/net/UploadDataProviders.java", + "api/src/org/chromium/net/UploadDataSink.java", + "api/src/org/chromium/net/UrlRequest.java", + "api/src/org/chromium/net/UrlRequestContextConfig.java", + "api/src/org/chromium/net/UrlRequestException.java", + "api/src/org/chromium/net/UrlResponseInfo.java", + "api/src/org/chromium/net/UserAgent.java", + ] + + deps = [ + "//third_party/android_tools:android_support_annotations_javalib", + ] + + srcjar_deps = [ + ":cronet_version_srcjar", + ":http_cache_type_java", + ":url_request_error_java", + ":load_states_list", + ":network_quality_observation_source_java", + ] + + run_findbugs_override = true +} + +android_library("cronet_java") { + java_files = [ + "java/src/org/chromium/net/ChromiumUrlRequest.java", + "java/src/org/chromium/net/ChromiumUrlRequestContext.java", + "java/src/org/chromium/net/ChromiumUrlRequestFactory.java", + "java/src/org/chromium/net/CronetBidirectionalStream.java", + "java/src/org/chromium/net/CronetLibraryLoader.java", + "java/src/org/chromium/net/CronetUploadDataStream.java", + "java/src/org/chromium/net/CronetUrlRequest.java", + "java/src/org/chromium/net/CronetUrlRequestContext.java", + "java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java", + "java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java", + "java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java", + "java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java", + "java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java", + "java/src/org/chromium/net/urlconnection/CronetInputStream.java", + "java/src/org/chromium/net/urlconnection/CronetOutputStream.java", + "java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java", + "java/src/org/chromium/net/urlconnection/MessageLoop.java", + ] + + deps = [ + ":cronet_api", + "//base:base_java", + "//net/android:net_java", + "//third_party/android_tools:android_support_annotations_javalib", + "//third_party/jsr-305:jsr_305_javalib", + ] + + srcjar_deps = [ + ":chromium_url_request_java", + ":net_request_priority_java", + ] + + run_findbugs_override = true +} + +android_resources("cronet_sample_apk_resources") { + resource_dirs = [ "sample/res" ] + android_manifest = "sample/AndroidManifest.xml" +} + +android_library("cronet_sample_apk_java") { + java_files = [ + "sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java", + "sample/src/org/chromium/cronet_sample_apk/CronetSampleApplication.java", + ] + + deps = [ + ":cronet_api", + ":cronet_java", + ":cronet_sample_apk_resources", + "//base:base_java", + ] + + run_findbugs_override = true +} + +android_apk("cronet_sample_apk") { + apk_name = "CronetSample" + android_manifest = "sample/AndroidManifest.xml" + shared_libraries = [ ":cronet" ] + + deps = [ + ":cronet_sample_apk_java", + ":cronet_sample_apk_resources", + "//base:base_java", + "//third_party/jsr-305:jsr_305_javalib", + ] + + run_findbugs_override = true + if (!is_java_debug) { + proguard_enabled = true + proguard_configs = [ + "proguard.cfg", + "sample/javatests/proguard.cfg", + ] + } +} + +# cronet_sample_test_apk_resources is identical to +# cronet_sample_apk_resources. The two have to be different targets because +# targets which are common between the "instrumentation test apk" and the +# "tested apk" are removed from the "instrumentation test apk". +android_resources("cronet_sample_test_apk_resources") { + resource_dirs = [ "sample/res" ] + android_manifest = "sample/AndroidManifest.xml" +} + +instrumentation_test_apk("cronet_sample_test_apk") { + apk_name = "CronetSampleTest" + apk_under_test = ":cronet_sample_apk" + android_manifest = "sample/javatests/AndroidManifest.xml" + java_files = [ + "sample/javatests/src/org/chromium/cronet_sample_apk/Criteria.java", + "sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java", + ] + + deps = [ + ":cronet_api", + ":cronet_java", + ":cronet_sample_apk_java", + ":cronet_sample_test_apk_resources", + "//base:base_java", + "//base:base_java_test_support", + "//net/android:net_java_test_support", + ] + additional_apks = [ "//net/android:net_test_support_apk" ] + + run_findbugs_override = true + proguard_enabled = !is_java_debug +} + +generate_jni("cronet_tests_jni_headers") { + testonly = true + sources = [ + "test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java", + "test/src/org/chromium/net/CronetTestUtil.java", + "test/src/org/chromium/net/MockCertVerifier.java", + "test/src/org/chromium/net/MockUrlRequestJobFactory.java", + "test/src/org/chromium/net/NativeTestServer.java", + "test/src/org/chromium/net/NetworkChangeNotifierUtil.java", + "test/src/org/chromium/net/QuicTestServer.java", + "test/src/org/chromium/net/SdchObserver.java", + "test/src/org/chromium/net/TestUploadDataStreamHandler.java", + ] + jni_package = "cronet_tests" +} + +shared_library("cronet_tests") { + testonly = true + sources = [ + "test/cronet_test_jni.cc", + "test/cronet_test_util.cc", + "test/cronet_test_util.h", + "test/cronet_url_request_context_config_test.cc", + "test/cronet_url_request_context_config_test.h", + "test/mock_cert_verifier.cc", + "test/mock_cert_verifier.h", + "test/mock_url_request_job_factory.cc", + "test/mock_url_request_job_factory.h", + "test/native_test_server.cc", + "test/native_test_server.h", + "test/network_change_notifier_util.cc", + "test/network_change_notifier_util.h", + "test/quic_test_server.cc", + "test/quic_test_server.h", + "test/sdch_test_util.cc", + "test/sdch_test_util.h", + "test/test_upload_data_stream_handler.cc", + "test/test_upload_data_stream_handler.h", + ] + + deps = [ + ":cronet_static", + ":cronet_tests_jni_headers", + ":cronet_version_header", + "//base", + "//base:i18n", + "//base/test:test_support", + "//net", + "//net:simple_quic_tools", + "//net:test_support", + "//third_party/icu", + ] + + include_dirs = [ _cronet_version_header_include_dir ] + + ldflags = [ "-Wl,--version-script=" + + rebase_path("//components/cronet/android/only_jni_exports.lst") ] + + # Avoid hide_native_jni_exports as it adds another version script, and the + # ARM64 linker throws an error for multiple version scripts with anonymous + # version tags. + configs -= [ "//build/config/android:hide_native_jni_exports" ] + + if (cronet_enable_data_reduction_proxy_support) { + deps += [ "//components/data_reduction_proxy/core/browser:browser_small" ] + } +} + +android_resources("cronet_test_apk_resources") { + testonly = true + resource_dirs = [ "test/res" ] + android_manifest = "test/AndroidManifest.xml" +} + +android_library("cronet_test_apk_java") { + testonly = true + + java_files = [ + "test/src/org/chromium/net/CronetTestApplication.java", + "test/src/org/chromium/net/CronetTestFramework.java", + "test/src/org/chromium/net/CronetTestUtil.java", + "test/src/org/chromium/net/Http2TestHandler.java", + "test/src/org/chromium/net/Http2TestServer.java", + "test/src/org/chromium/net/MockCertVerifier.java", + "test/src/org/chromium/net/MockUrlRequestJobFactory.java", + "test/src/org/chromium/net/NativeTestServer.java", + "test/src/org/chromium/net/NetworkChangeNotifierUtil.java", + "test/src/org/chromium/net/QuicTestServer.java", + "test/src/org/chromium/net/SdchObserver.java", + "test/src/org/chromium/net/TestFilesInstaller.java", + "test/src/org/chromium/net/TestUploadDataStreamHandler.java", + ] + + deps = [ + ":cronet_api", + ":cronet_java", + "//base:base_java", + "//base:base_java_test_support", + "//net/android:net_java_test_support", + "//third_party/netty-tcnative:netty-tcnative", + "//third_party/netty4:netty_all", + ] + + run_findbugs_override = true +} + +android_assets("cronet_test_apk_assets") { + testonly = true + + # Need to use renaming_sources to maintain subdirectories. + renaming_sources = [ + "test/assets/test/cacheable.txt", + "test/assets/test/cacheable.txt.mock-http-headers", + "test/assets/test/content_length_mismatch.html", + "test/assets/test/content_length_mismatch.html.mock-http-headers", + "test/assets/test/datareductionproxysuccess.txt", + "test/assets/test/datareductionproxysuccess.txt.mock-http-headers", + "test/assets/test/gzipped.html", + "test/assets/test/gzipped.html.mock-http-headers", + "test/assets/test/multiredirect.html", + "test/assets/test/multiredirect.html.mock-http-headers", + "test/assets/test/notfound.html", + "test/assets/test/notfound.html.mock-http-headers", + "test/assets/test/quic_data/simple.txt", + "test/assets/test/redirect.html", + "test/assets/test/redirect.html.mock-http-headers", + "test/assets/test/redirect_invalid_scheme.html", + "test/assets/test/redirect_invalid_scheme.html.mock-http-headers", + "test/assets/test/set_cookie.html", + "test/assets/test/set_cookie.html.mock-http-headers", + "test/assets/test/sdch/dict/LeQxM80O", + "test/assets/test/sdch/dict/LeQxM80O.mock-http-headers", + "test/assets/test/sdch/index", + "test/assets/test/sdch/index.mock-http-headers", + "test/assets/test/sdch/LeQxM80O_encoded", + "test/assets/test/sdch/LeQxM80O_encoded.mock-http-headers", + "test/assets/test/secureproxychecksuccess.txt", + "test/assets/test/secureproxychecksuccess.txt.mock-http-headers", + "test/assets/test/success.txt", + "test/assets/test/success.txt.mock-http-headers", + ] + + # Maintain directory structure. Example entry: "test/sdch/index". + renaming_destinations = rebase_path(renaming_sources, "test/assets") +} + +android_apk("cronet_test_apk") { + testonly = true + apk_name = "CronetTest" + android_manifest = "test/AndroidManifest.xml" + shared_libraries = [ ":cronet_tests" ] + loadable_modules = [ "$root_out_dir/libnetty-tcnative.so" ] + + deps = [ + ":cronet_test_apk_assets", + ":cronet_test_apk_java", + ":cronet_test_apk_resources", + "//base:base_java", + "//third_party/netty-tcnative:netty-tcnative_all", + ] + + run_findbugs_override = true +} + +android_library("cronet_javatests") { + testonly = true + + java_files = [ + "test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java", + "test/javatests/src/org/chromium/net/BidirectionalStreamTest.java", + "test/javatests/src/org/chromium/net/ChromiumUrlRequestTest.java", + "test/javatests/src/org/chromium/net/ChunkedWritableByteChannelTest.java", + "test/javatests/src/org/chromium/net/ContextInitTest.java", + "test/javatests/src/org/chromium/net/Criteria.java", + "test/javatests/src/org/chromium/net/CronetTestBase.java", + "test/javatests/src/org/chromium/net/CronetUploadTest.java", + "test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java", + "test/javatests/src/org/chromium/net/CronetUrlRequestTest.java", + "test/javatests/src/org/chromium/net/CronetUrlTest.java", + "test/javatests/src/org/chromium/net/DiskStorageTest.java", + "test/javatests/src/org/chromium/net/GetStatusTest.java", + "test/javatests/src/org/chromium/net/HttpUrlRequestFactoryTest.java", + "test/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java", + "test/javatests/src/org/chromium/net/PkpTest.java", + "test/javatests/src/org/chromium/net/QuicTest.java", + "test/javatests/src/org/chromium/net/SdchTest.java", + "test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java", + "test/javatests/src/org/chromium/net/TestDrivenDataProvider.java", + "test/javatests/src/org/chromium/net/TestHttpUrlRequestListener.java", + "test/javatests/src/org/chromium/net/TestNetworkQualityRttListener.java", + "test/javatests/src/org/chromium/net/TestNetworkQualityThroughputListener.java", + "test/javatests/src/org/chromium/net/TestUploadDataProvider.java", + "test/javatests/src/org/chromium/net/TestUrlRequestCallback.java", + "test/javatests/src/org/chromium/net/UploadDataProvidersTest.java", + "test/javatests/src/org/chromium/net/UploadTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetBufferedOutputStreamTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetChunkedOutputStreamTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetFixedModeOutputStreamTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLConnectionTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandlerTest.java", + "test/javatests/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactoryTest.java", + "test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java", + "test/javatests/src/org/chromium/net/urlconnection/QuicUploadTest.java", + "test/javatests/src/org/chromium/net/urlconnection/TestUtil.java", + "test/javatests/src/org/chromium/net/UrlResponseInfoTest.java", + ] + + deps = [ + ":cronet_api", + ":cronet_java", + ":cronet_test_apk_java", + "//base:base_java", + "//base:base_java_test_support", + "//net/android:net_java", + "//net/android:net_java_test_support", + ] + + run_findbugs_override = true +} + +instrumentation_test_apk("cronet_test_instrumentation_apk") { + apk_name = "CronetTestInstrumentation" + apk_under_test = ":cronet_test_apk" + android_manifest = "test/javatests/AndroidManifest.xml" + + deps = [ + ":cronet_api", + ":cronet_java", + ":cronet_javatests", + ":cronet_test_apk_java", + "//base:base_java", + "//base:base_java_test_support", + "//net/android:net_java", + "//net/android:net_java_test_support", + ] + additional_apks = [ "//net/android:net_test_support_apk" ] + + data = [ + "//net/data/ssl/certificates/quic_test.example.com.crt", + "//net/data/ssl/certificates/quic_test.example.com.key", + "//net/data/ssl/certificates/quic_test.example.com.key.pkcs8", + "//net/data/ssl/certificates/quic_test.example.com.key.sct", + ] + + # TODO(jbudorick): Remove this once GN uses the generated .isolate files. + isolate_file = "cronet_test_instrumentation_apk.isolate" + + run_findbugs_override = true +} + +android_library("cronet_perf_test_apk_java") { + testonly = true + java_files = + [ "test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java" ] + + deps = [ + ":cronet_api", + ":cronet_java", + ":cronet_javatests", + ":cronet_test_apk_java", + "//base:base_java", + ] + + run_findbugs_override = true +} + +android_apk("cronet_perf_test_apk") { + testonly = true + apk_name = "CronetPerfTest" + android_manifest = "test/javaperftests/AndroidManifest.xml" + shared_libraries = [ ":cronet_tests" ] + + deps = [ + ":cronet_perf_test_apk_java", + ":cronet_test_apk_java", + "//base:base_java", + ] + + run_findbugs_override = true + proguard_enabled = true + proguard_configs = [ + "proguard.cfg", + "test/javaperftests/proguard.cfg", + ] +} + +test("cronet_unittests") { + sources = [ + "//components/cronet/android/cert/cert_verifier_cache_serializer_unittest.cc", + "//components/cronet/histogram_manager_unittest.cc", + "//components/cronet/run_all_unittests.cc", + "//components/cronet/url_request_context_config_unittest.cc", + ] + + deps = [ + ":cronet_android_cert_proto", + ":cronet_static", + "//base", + "//base/test:test_support", + "//components/metrics", + "//net", + "//net:test_support", + "//testing/gtest", + ] + + if (is_android) { + shard_timeout = 180 + } +} + +_package_dir = "$root_out_dir/cronet" +_extract_cronet_jars_dir = "$target_gen_dir/cronet_jar_extract" + +action("extract_cronet_jars") { + # extract_from_jars.py deletes the target directory before extracting. + script = "//components/cronet/tools/extract_from_jars.py" + depfile = "$target_gen_dir/$target_name.d" + + sources = [ + "$root_out_dir/lib.java/base/base_java.jar", + "$root_out_dir/lib.java/components/cronet/android/cronet_java.jar", + "$root_out_dir/lib.java/net/android/net_java.jar", + "$root_out_dir/lib.java/url/url_java.jar", + ] + outputs = [ + depfile, + ] + + _rebased_sources = rebase_path(sources, root_build_dir) + + args = [ + "--classes-dir", + rebase_path(_extract_cronet_jars_dir, root_build_dir), + "--jars=${_rebased_sources}", + "--depfile", + rebase_path(depfile, root_build_dir), + ] + + deps = [ + ":cronet_java", + "//base:base_java", + "//net/android:net_java", + "//url:url_java", + ] +} + +action("repackage_extracted_jars") { + _output_jar = "$_package_dir/cronet.jar" + + script = "//build/android/gyp/jar.py" + outputs = [ + _output_jar, + ] + + args = [ + "--classes-dir", + rebase_path(_extract_cronet_jars_dir, root_build_dir), + "--jar-path", + rebase_path(_output_jar, root_build_dir), + ] + + deps = [ + ":extract_cronet_jars", + ] +} + +template("jar_src") { + action(target_name) { + _rebased_src_dirs = rebase_path(invoker.src_dirs, root_build_dir) + + script = "//components/cronet/tools/jar_src.py" + depfile = "$target_gen_dir/$target_name.d" + outputs = [ + depfile, + invoker.jar_path, + ] + args = [ + "--src-dir=${_rebased_src_dirs}", + "--jar-path", + rebase_path(invoker.jar_path, root_build_dir), + "--depfile", + rebase_path(depfile, root_build_dir), + ] + } +} + +jar_src("jar_cronet_api_source") { + src_dirs = [ "api/src" ] + jar_path = "$_package_dir/cronet_api-src.jar" +} + +jar_src("jar_cronet_sample_source") { + src_dirs = [ "sample" ] + jar_path = "$_package_dir/cronet-sample-src.jar" +} + +jar_src("jar_cronet_other_source") { + src_dirs = [ + "//base/android/java/src", + "//components/cronet/android/java/src", + "//net/android/java/src", + "//url/android/java/src", + ] + jar_path = "$_package_dir/cronet-src.jar" +} + +action("generate_licenses") { + _license_path = "$_package_dir/LICENSE" + + script = "//components/cronet/tools/cronet_licenses.py" + outputs = [ + _license_path, + ] + args = [ + "license", + rebase_path(_license_path, root_build_dir), + ] +} + +action("generate_javadoc") { + script = "//components/cronet/tools/generate_javadoc.py" + depfile = "$target_gen_dir/$target_name.d" + outputs = [ + depfile, + ] + args = [ + "--output-dir", + rebase_path(_package_dir, root_build_dir), + "--input-dir", + rebase_path("//components/cronet", root_build_dir), + "--overview-file", + rebase_path("$_package_dir/README.md.html", root_build_dir), + "--readme-file", + rebase_path("//components/cronet/README.md", root_build_dir), + "--depfile", + rebase_path(depfile, root_build_dir), + "--lib-java-dir", + rebase_path("$root_build_dir/lib.java/components/cronet/android", + root_build_dir), + ] + deps = [ + ":cronet_javadoc_classpath", + ] +} + +copy("cronet_package_copy") { + sources = [ + "$root_out_dir/lib.java/components/cronet/android/cronet_api.jar", + "//AUTHORS", + "//chrome/VERSION", + "//components/cronet/android/proguard.cfg", + ] + outputs = [ + "$_package_dir/{{source_file_part}}", + ] + + deps = [ + ":cronet_api", + ] +} + +copy("cronet_package_copy_native_lib") { + sources = [ + "$root_out_dir/libcronet.so", + ] + outputs = [ + "$_package_dir/libs/${android_app_abi}/libcronet.so", + ] + deps = [ + ":cronet", + ] +} + +copy("cronet_package_copy_native_lib_unstripped") { + sources = [ + "$root_out_dir/lib.unstripped/libcronet.so", + ] + outputs = [ + "$_package_dir/symbols/${android_app_abi}/libcronet.so", + ] + deps = [ + ":cronet", + ] +} + +group("cronet_package") { + deps = [ + ":cronet_package_copy", + ":cronet_package_copy_native_lib", + ":cronet_package_copy_native_lib_unstripped", + ":generate_javadoc", + ":generate_licenses", + ":jar_cronet_api_source", + ":jar_cronet_other_source", + ":jar_cronet_sample_source", + ":repackage_extracted_jars", + ] +} diff --git a/chromium/components/cronet/ios/BUILD.gn b/chromium/components/cronet/ios/BUILD.gn new file mode 100644 index 00000000000..19ff7514cf2 --- /dev/null +++ b/chromium/components/cronet/ios/BUILD.gn @@ -0,0 +1,170 @@ +# Copyright 2015 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/buildflag_header.gni") +import("//build/config/ios/rules.gni") +import("//build/util/version.gni") +import("//chrome/version.gni") +import("//testing/test.gni") +import("//url/features.gni") + +assert(!is_component_build, "Cronet requires static library build.") + +declare_args() { + cronet_enable_data_reduction_proxy_support = false +} + +process_version("cronet_version_header") { + template_file = "//components/cronet/version.h.in" + output = "$target_gen_dir/version.h" + extra_args = [ + "-e", + "VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)", + ] +} + +source_set("cronet_sources") { + deps = [ + ":cronet_version_header", + "//base:base", + "//components/metrics:metrics", + "//components/metrics/proto:proto", + "//components/prefs:prefs", + "//net", + "//url", + ] + + sources = [ + "../histogram_manager.cc", + "../histogram_manager.h", + "../url_request_context_config.cc", + "../url_request_context_config.h", + "cronet_bidirectional_stream.cc", + "cronet_bidirectional_stream.h", + "cronet_c_for_grpc.cc", + "cronet_c_for_grpc.h", + "cronet_environment.cc", + "cronet_environment.h", + ] + + if (!use_platform_icu_alternatives) { + deps += [ "//base:i18n" ] + } +} + +ios_framework_bundle("cronet_framework") { + output_name = "Cronet" + + deps = [ + ":cronet_sources", + "//base", + "//net:net", + ] + + info_plist = "Info.plist" + + libs = [ "UIKit.Framework" ] + + public_headers = [ + "Cronet.h", + "cronet_c_for_grpc.h", + ] + + sources = [ + "Cronet.h", + "Cronet.mm", + ] +} + +bundle_data("cronet_test_bundle_data") { + testonly = true + sources = [ + "//net/data/ssl/certificates/quic_test.example.com.crt", + "//net/data/ssl/certificates/quic_test.example.com.key", + "//net/data/ssl/certificates/quic_test.example.com.key.pkcs8", + "//net/data/ssl/certificates/quic_test.example.com.key.sct", + ] + outputs = [ + "{{bundle_resources_dir}}/{{source_file_part}}", + ] +} + +test("cronet_test") { + testonly = true + sources = [ + "test/cronet_bidirectional_stream_test.mm", + "test/cronet_test_runner.mm", + "test/quic_test_server.cc", + "test/quic_test_server.h", + ] + + deps = [ + ":cronet_sources", + ":cronet_test_bundle_data", + ":cronet_version_header", + "//base", + "//base:i18n", + "//net", + "//net:simple_quic_tools", + "//net:test_support", + "//third_party/icu", + ] +} + +test("cronet_unittests") { + sources = [ + "//components/cronet/histogram_manager_unittest.cc", + "//components/cronet/run_all_unittests.cc", + "//components/cronet/url_request_context_config_unittest.cc", + ] + + deps = [ + ":cronet_sources", + "//base", + "//base/test:test_support", + "//components/metrics", + "//net", + "//testing/gtest", + ] +} + +_package_dir = "$root_out_dir/cronet" + +action("generate_license") { + _license_path = "$_package_dir/LICENSE" + + script = "//components/cronet/tools/cronet_licenses.py" + outputs = [ + _license_path, + ] + args = [ + "license", + rebase_path(_license_path, root_build_dir), + "--gn", + ] +} + +copy("cronet_package_copy") { + sources = [ + "$root_out_dir/Cronet.framework", + "//AUTHORS", + "//chrome/VERSION", + "//components/cronet/ios/Cronet.h", + "//components/cronet/ios/cronet_c_for_grpc.h", + ] + outputs = [ + "$_package_dir/{{source_file_part}}", + ] + + deps = [ + ":cronet_framework", + ] +} + +group("cronet_package") { + deps = [ + ":cronet_package_copy", + ":generate_license", + ] +} |