Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: components/cronet/android/BUILD.gn

Issue 1483843002: Port cronet build rules to GN part 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/cronet.gypi ('k') | components/cronet/android/cronet_library_loader.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 }
OLDNEW
« no previous file with comments | « components/cronet.gypi ('k') | components/cronet/android/cronet_library_loader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698