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

Side by Side Diff: build/config/android/internal_rules.gni

Issue 1435193002: Reland of GN: Enable proguard for apks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix diffbase Created 5 years, 1 month 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 | « build/android/gyp/write_build_config.py ('k') | build/config/android/rules.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/android/config.gni") 5 import("//build/config/android/config.gni")
6 import("//build/config/zip.gni") 6 import("//build/config/zip.gni")
7 import("//third_party/ijar/ijar.gni") 7 import("//third_party/ijar/ijar.gni")
8 8
9 assert(is_android) 9 assert(is_android)
10 10
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 "--processed-config-path", 67 "--processed-config-path",
68 rebase_path(config_path, root_build_dir), 68 rebase_path(config_path, root_build_dir),
69 "--result-path", 69 "--result-path",
70 rebase_path(result_path, root_build_dir), 70 rebase_path(result_path, root_build_dir),
71 "--java-files=$rebased_java_files", 71 "--java-files=$rebased_java_files",
72 "--enable", 72 "--enable",
73 ] 73 ]
74 } 74 }
75 } 75 }
76 76
77 template("proguard") {
78 action(target_name) {
79 set_sources_assignment_filter([])
80 forward_variables_from(invoker,
81 [
82 "deps",
83 "data_deps",
84 "public_deps",
85 "testonly",
86 ])
87 script = "//build/android/gyp/proguard.py"
88 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar"
89 _output_jar_path = invoker.output_jar_path
90 inputs = [
91 android_sdk_jar,
92 _proguard_jar_path,
93 ]
94 if (defined(invoker.inputs)) {
95 inputs += invoker.inputs
96 }
97 depfile = "${target_gen_dir}/${target_name}.d"
98 outputs = [
99 depfile,
100 _output_jar_path,
101 "$_output_jar_path.dump",
102 "$_output_jar_path.seeds",
103 "$_output_jar_path.mapping",
104 "$_output_jar_path.usage",
105 ]
106 args = [
107 "--depfile",
108 rebase_path(depfile, root_build_dir),
109 "--proguard-path",
110 rebase_path(_proguard_jar_path, root_build_dir),
111 "--output-path",
112 rebase_path(_output_jar_path, root_build_dir),
113 "--classpath",
114 rebased_android_sdk_jar,
115 ]
116 if (defined(invoker.args)) {
117 args += invoker.args
118 }
119 }
120 }
121
77 template("findbugs") { 122 template("findbugs") {
78 jar_path = invoker.jar_path 123 jar_path = invoker.jar_path
79 124
80 build_config = invoker.build_config 125 build_config = invoker.build_config
81 126
82 action(target_name) { 127 action(target_name) {
83 forward_variables_from(invoker, 128 forward_variables_from(invoker,
84 [ 129 [
85 "deps", 130 "deps",
86 "testonly", 131 "testonly",
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 # Write the target's .build_config file. This is a json file that contains a 271 # Write the target's .build_config file. This is a json file that contains a
227 # dictionary of information about how to build this target (things that 272 # dictionary of information about how to build this target (things that
228 # require knowledge about this target's dependencies and cannot be calculated 273 # require knowledge about this target's dependencies and cannot be calculated
229 # at gn-time). There is a special syntax to add a value in that dictionary to 274 # at gn-time). There is a special syntax to add a value in that dictionary to
230 # an action/action_foreachs args: 275 # an action/action_foreachs args:
231 # --python-arg=@FileArg($rebased_build_config_path:key0:key1) 276 # --python-arg=@FileArg($rebased_build_config_path:key0:key1)
232 # At runtime, such an arg will be replaced by the value in the build_config. 277 # At runtime, such an arg will be replaced by the value in the build_config.
233 # See build/android/gyp/write_build_config.py and 278 # See build/android/gyp/write_build_config.py and
234 # build/android/gyp/util/build_utils.py:ExpandFileArgs 279 # build/android/gyp/util/build_utils.py:ExpandFileArgs
235 template("write_build_config") { 280 template("write_build_config") {
236 set_sources_assignment_filter([]) 281 action(target_name) {
282 set_sources_assignment_filter([])
283 type = invoker.type
284 build_config = invoker.build_config
237 285
238 assert(defined(invoker.type)) 286 assert(type == "android_apk" || type == "java_library" ||
239 assert(defined(invoker.build_config)) 287 type == "android_resources" || type == "deps_dex" ||
288 type == "android_assets" || type == "resource_rewriter")
240 289
241 type = invoker.type
242 build_config = invoker.build_config
243
244 assert(type == "android_apk" || type == "java_library" ||
245 type == "android_resources" || type == "deps_dex" ||
246 type == "android_assets" || type == "resource_rewriter")
247
248 action(target_name) {
249 deps = [] 290 deps = []
250 forward_variables_from(invoker, 291 forward_variables_from(invoker,
251 [ 292 [
252 "deps", 293 "deps",
253 "testonly", 294 "testonly",
254 "visibility", 295 "visibility",
255 ]) 296 ])
256 297
257 script = "//build/android/gyp/write_build_config.py" 298 script = "//build/android/gyp/write_build_config.py"
258 depfile = "$target_gen_dir/$target_name.d" 299 depfile = "$target_gen_dir/$target_name.d"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 if (is_apk) { 437 if (is_apk) {
397 if (defined(invoker.native_libs)) { 438 if (defined(invoker.native_libs)) {
398 inputs += invoker.native_libs 439 inputs += invoker.native_libs
399 rebased_native_libs = rebase_path(invoker.native_libs, root_build_dir) 440 rebased_native_libs = rebase_path(invoker.native_libs, root_build_dir)
400 rebased_android_readelf = rebase_path(android_readelf, root_build_dir) 441 rebased_android_readelf = rebase_path(android_readelf, root_build_dir)
401 args += [ 442 args += [
402 "--native-libs=$rebased_native_libs", 443 "--native-libs=$rebased_native_libs",
403 "--readelf-path=$rebased_android_readelf", 444 "--readelf-path=$rebased_android_readelf",
404 ] 445 ]
405 } 446 }
447
448 if (defined(invoker.proguard_enabled) && invoker.proguard_enabled) {
449 args += [
450 "--proguard-enabled",
451 "--proguard-info",
452 rebase_path(invoker.proguard_info, root_build_dir),
453 ]
454 }
406 } 455 }
407 456
408 if (defined(invoker.srcjar)) { 457 if (defined(invoker.srcjar)) {
409 args += [ 458 args += [
410 "--srcjar", 459 "--srcjar",
411 rebase_path(invoker.srcjar, root_build_dir), 460 rebase_path(invoker.srcjar, root_build_dir),
412 ] 461 ]
413 } 462 }
414 } 463 }
415 } 464 }
416 465
417 template("process_java_prebuilt") { 466 template("process_java_prebuilt") {
418 set_sources_assignment_filter([]) 467 set_sources_assignment_filter([])
419 forward_variables_from(invoker, [ "testonly" ]) 468 forward_variables_from(invoker, [ "testonly" ])
420 469
421 _input_jar_path = invoker.input_jar_path 470 _input_jar_path = invoker.input_jar_path
422 _output_jar_path = invoker.output_jar_path 471 _output_jar_path = invoker.output_jar_path
423 _output_ijar_path = get_path_info(_output_jar_path, "dir") + "/" + 472 _output_ijar_path = get_path_info(_output_jar_path, "dir") + "/" +
424 get_path_info(_output_jar_path, "name") + ".interface.jar" 473 get_path_info(_output_jar_path, "name") + ".interface.jar"
425 474
426 assert(invoker.build_config != "") 475 assert(invoker.build_config != "")
427 476
428 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { 477 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
429 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar"
430 _proguard_config_path = invoker.proguard_config
431 _build_config = invoker.build_config 478 _build_config = invoker.build_config
432 _rebased_build_config = rebase_path(_build_config, root_build_dir) 479 _rebased_build_config = rebase_path(_build_config, root_build_dir)
480 _proguard_config_path = invoker.proguard_config
433 _output_jar_target = "${target_name}__proguard_process" 481 _output_jar_target = "${target_name}__proguard_process"
434 action(_output_jar_target) { 482 proguard(_output_jar_target) {
435 forward_variables_from(invoker, 483 forward_variables_from(invoker,
436 [ 484 [
437 "data_deps", 485 "data_deps",
438 "deps", 486 "deps",
439 "public_deps", 487 "public_deps",
440 ]) 488 ])
441 script = "//build/android/gyp/proguard.py"
442 inputs = [ 489 inputs = [
443 android_sdk_jar,
444 _proguard_jar_path,
445 _build_config, 490 _build_config,
446 _input_jar_path, 491 _input_jar_path,
447 _proguard_config_path, 492 _proguard_config_path,
448 ] 493 ]
449 depfile = "${target_gen_dir}/${target_name}.d" 494 output_jar_path = _output_jar_path
450 outputs = [ 495 _rebased_input_paths = [ rebase_path(_input_jar_path, root_build_dir) ]
451 depfile, 496 _rebased_proguard_configs =
452 _output_jar_path, 497 [ rebase_path(_proguard_config_path, root_build_dir) ]
453 ]
454 args = [ 498 args = [
455 "--depfile", 499 "--input-paths=$_rebased_input_paths",
456 rebase_path(depfile, root_build_dir), 500 "--proguard-configs=$_rebased_proguard_configs",
457 "--proguard-path",
458 rebase_path(_proguard_jar_path, root_build_dir),
459 "--input-path",
460 rebase_path(_input_jar_path, root_build_dir),
461 "--output-path",
462 rebase_path(_output_jar_path, root_build_dir),
463 "--proguard-config",
464 rebase_path(_proguard_config_path, root_build_dir),
465 "--classpath",
466 rebased_android_sdk_jar,
467 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", 501 "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
468 ] 502 ]
469 } 503 }
470 } else { 504 } else {
471 _output_jar_target = "${target_name}__copy_jar" 505 _output_jar_target = "${target_name}__copy_jar"
472 copy(_output_jar_target) { 506 copy(_output_jar_target) {
473 forward_variables_from(invoker, 507 forward_variables_from(invoker,
474 [ 508 [
475 "data_deps", 509 "data_deps",
476 "deps", 510 "deps",
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 1567
1534 if (defined(invoker.all_resources_zip_path)) { 1568 if (defined(invoker.all_resources_zip_path)) {
1535 all_resources_zip = invoker.all_resources_zip_path 1569 all_resources_zip = invoker.all_resources_zip_path
1536 outputs += [ all_resources_zip ] 1570 outputs += [ all_resources_zip ]
1537 args += [ 1571 args += [
1538 "--all-resources-zip-out", 1572 "--all-resources-zip-out",
1539 rebase_path(all_resources_zip, root_build_dir), 1573 rebase_path(all_resources_zip, root_build_dir),
1540 ] 1574 ]
1541 } 1575 }
1542 1576
1577 if (defined(invoker.proguard_file)) {
1578 outputs += [ invoker.proguard_file ]
1579 args += [
1580 "--proguard-file",
1581 rebase_path(invoker.proguard_file, root_build_dir),
1582 ]
1583 }
1584
1543 if (defined(invoker.args)) { 1585 if (defined(invoker.args)) {
1544 args += invoker.args 1586 args += invoker.args
1545 } 1587 }
1546 } 1588 }
1547 } 1589 }
1548 1590
1549 template("copy_ex") { 1591 template("copy_ex") {
1550 set_sources_assignment_filter([]) 1592 set_sources_assignment_filter([])
1551 action(target_name) { 1593 action(target_name) {
1552 inputs = [] 1594 inputs = []
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 ] 1783 ]
1742 args = [ 1784 args = [
1743 "--depfile", 1785 "--depfile",
1744 rebase_path(depfile, root_build_dir), 1786 rebase_path(depfile, root_build_dir),
1745 "--script-output-path", 1787 "--script-output-path",
1746 rebase_path(generated_script, root_build_dir), 1788 rebase_path(generated_script, root_build_dir),
1747 ] 1789 ]
1748 args += test_runner_args 1790 args += test_runner_args
1749 } 1791 }
1750 } 1792 }
OLDNEW
« no previous file with comments | « build/android/gyp/write_build_config.py ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698