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

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

Powered by Google App Engine
This is Rietveld 408576698