OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 # This file is meant to be included into a target to provide a rule | 5 # This file is meant to be included into a target to provide a rule |
6 # to build Android APKs in a consistent manner. | 6 # to build Android APKs in a consistent manner. |
7 # | 7 # |
8 # To use this, create a gyp target with the following form: | 8 # To use this, create a gyp target with the following form: |
9 # { | 9 # { |
10 # 'target_name': 'my_package_apk', | 10 # 'target_name': 'my_package_apk', |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 'native_libraries_template_version_file': '<(native_libraries_template_data_
dir)/native_libraries_version.h', | 86 'native_libraries_template_version_file': '<(native_libraries_template_data_
dir)/native_libraries_version.h', |
87 'compile_stamp': '<(intermediate_dir)/compile.stamp', | 87 'compile_stamp': '<(intermediate_dir)/compile.stamp', |
88 'lint_stamp': '<(intermediate_dir)/lint.stamp', | 88 'lint_stamp': '<(intermediate_dir)/lint.stamp', |
89 'lint_result': '<(intermediate_dir)/lint_result.xml', | 89 'lint_result': '<(intermediate_dir)/lint_result.xml', |
90 'lint_config': '<(intermediate_dir)/lint_config.xml', | 90 'lint_config': '<(intermediate_dir)/lint_config.xml', |
91 'never_lint%': 0, | 91 'never_lint%': 0, |
92 'instr_stamp': '<(intermediate_dir)/instr.stamp', | 92 'instr_stamp': '<(intermediate_dir)/instr.stamp', |
93 'jar_stamp': '<(intermediate_dir)/jar.stamp', | 93 'jar_stamp': '<(intermediate_dir)/jar.stamp', |
94 'obfuscate_stamp': '<(intermediate_dir)/obfuscate.stamp', | 94 'obfuscate_stamp': '<(intermediate_dir)/obfuscate.stamp', |
95 'strip_stamp': '<(intermediate_dir)/strip.stamp', | 95 'strip_stamp': '<(intermediate_dir)/strip.stamp', |
96 'classes_dir': '<(intermediate_dir)/classes', | 96 'classes_dir': '<(intermediate_dir)/classes/2', |
97 'classes_final_dir': '<(intermediate_dir)/classes_instr', | |
98 'javac_includes': [], | 97 'javac_includes': [], |
99 'jar_excluded_classes': [], | 98 'jar_excluded_classes': [], |
| 99 'javac_jar_path': '<(intermediate_dir)/<(_target_name).javac.jar', |
100 'jar_path': '<(PRODUCT_DIR)/lib.java/<(jar_name)', | 100 'jar_path': '<(PRODUCT_DIR)/lib.java/<(jar_name)', |
101 'obfuscated_jar_path': '<(intermediate_dir)/obfuscated.jar', | 101 'obfuscated_jar_path': '<(intermediate_dir)/obfuscated.jar', |
102 'test_jar_path': '<(PRODUCT_DIR)/test.lib.java/<(apk_name).jar', | 102 'test_jar_path': '<(PRODUCT_DIR)/test.lib.java/<(apk_name).jar', |
103 'dex_path': '<(intermediate_dir)/classes.dex', | 103 'dex_path': '<(intermediate_dir)/classes.dex', |
104 'emma_device_jar': '<(android_sdk_root)/tools/lib/emma_device.jar', | 104 'emma_device_jar': '<(android_sdk_root)/tools/lib/emma_device.jar', |
105 'android_manifest_path%': '<(java_in_dir)/AndroidManifest.xml', | 105 'android_manifest_path%': '<(java_in_dir)/AndroidManifest.xml', |
106 'push_stamp': '<(intermediate_dir)/push.stamp', | 106 'push_stamp': '<(intermediate_dir)/push.stamp', |
107 'link_stamp': '<(intermediate_dir)/link.stamp', | 107 'link_stamp': '<(intermediate_dir)/link.stamp', |
108 'package_resources_stamp': '<(intermediate_dir)/package_resources.stamp', | 108 'package_resources_stamp': '<(intermediate_dir)/package_resources.stamp', |
109 'resource_zip_path': '<(intermediate_dir)/<(_target_name).resources.zip', | 109 'resource_zip_path': '<(intermediate_dir)/<(_target_name).resources.zip', |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 ], | 145 ], |
146 }, | 146 }, |
147 'native_lib_target%': '', | 147 'native_lib_target%': '', |
148 'native_lib_version_name%': '', | 148 'native_lib_version_name%': '', |
149 'use_chromium_linker%' : 0, | 149 'use_chromium_linker%' : 0, |
150 'enable_chromium_linker_tests%': 0, | 150 'enable_chromium_linker_tests%': 0, |
151 'emma_instrument%': '<(emma_instrument)', | 151 'emma_instrument%': '<(emma_instrument)', |
152 'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)', | 152 'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)', |
153 'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)', | 153 'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)', |
154 'extra_native_libs': [], | 154 'extra_native_libs': [], |
155 'apk_dex_input_paths': [ '>@(library_dexed_jars_paths)' ], | |
156 }, | 155 }, |
157 # Pass the jar path to the apk's "fake" jar target. This would be better as | 156 # Pass the jar path to the apk's "fake" jar target. This would be better as |
158 # direct_dependent_settings, but a variable set by a direct_dependent_settings | 157 # direct_dependent_settings, but a variable set by a direct_dependent_settings |
159 # cannot be lifted in a dependent to all_dependent_settings. | 158 # cannot be lifted in a dependent to all_dependent_settings. |
160 'all_dependent_settings': { | 159 'all_dependent_settings': { |
161 'variables': { | 160 'variables': { |
162 'apk_output_jar_path': '<(jar_path)', | 161 'apk_output_jar_path': '<(jar_path)', |
163 'tested_apk_dex_path': '<(dex_path)', | 162 'tested_apk_dex_path': '<(dex_path)', |
164 }, | 163 }, |
165 }, | 164 }, |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 '>@(input_jars_paths)', | 523 '>@(input_jars_paths)', |
525 '<(codegen_stamp)', | 524 '<(codegen_stamp)', |
526 ], | 525 ], |
527 'conditions': [ | 526 'conditions': [ |
528 ['native_lib_target != ""', { | 527 ['native_lib_target != ""', { |
529 'inputs': [ '<(native_libraries_java_stamp)' ], | 528 'inputs': [ '<(native_libraries_java_stamp)' ], |
530 }], | 529 }], |
531 ], | 530 ], |
532 'outputs': [ | 531 'outputs': [ |
533 '<(compile_stamp)', | 532 '<(compile_stamp)', |
| 533 '<(javac_jar_path)', |
534 ], | 534 ], |
535 'action': [ | 535 'action': [ |
536 'python', '<(DEPTH)/build/android/gyp/javac.py', | 536 'python', '<(DEPTH)/build/android/gyp/javac.py', |
537 '--output-dir=<(classes_dir)', | 537 '--classes-dir=<(classes_dir)', |
538 '--classpath=>(input_jars_paths) <(android_sdk_jar)', | 538 '--classpath=>(input_jars_paths) <(android_sdk_jar)', |
539 '--src-gendirs=>(gen_src_dirs)', | 539 '--src-gendirs=>(gen_src_dirs)', |
540 '--javac-includes=<(javac_includes)', | 540 '--javac-includes=<(javac_includes)', |
541 '--chromium-code=<(chromium_code)', | 541 '--chromium-code=<(chromium_code)', |
| 542 '--jar-path=<(javac_jar_path)', |
| 543 '--jar-excluded-classes=<(jar_excluded_classes)', |
542 '--stamp=<(compile_stamp)', | 544 '--stamp=<(compile_stamp)', |
543 '>@(java_sources)', | 545 '>@(java_sources)', |
544 ], | 546 ], |
545 }, | 547 }, |
546 { | 548 { |
547 'variables': { | 549 'variables': { |
548 'src_dirs': [ | 550 'src_dirs': [ |
549 '<(java_in_dir)/src', | 551 '<(java_in_dir)/src', |
550 '>@(additional_src_dirs)', | 552 '>@(additional_src_dirs)', |
551 ], | 553 ], |
552 'stamp_path': '<(lint_stamp)', | 554 'stamp_path': '<(lint_stamp)', |
553 'result_path': '<(lint_result)', | 555 'result_path': '<(lint_result)', |
554 'config_path': '<(lint_config)', | 556 'config_path': '<(lint_config)', |
555 }, | 557 }, |
556 'inputs': [ | 558 'inputs': [ |
557 '<(compile_stamp)', | 559 '<(compile_stamp)', |
558 ], | 560 ], |
559 'outputs': [ | 561 'outputs': [ |
560 '<(lint_stamp)', | 562 '<(lint_stamp)', |
561 ], | 563 ], |
562 'includes': [ 'android/lint_action.gypi' ], | 564 'includes': [ 'android/lint_action.gypi' ], |
563 }, | 565 }, |
564 { | 566 { |
565 'action_name': 'instr_classes_<(_target_name)', | 567 'action_name': 'instr_jar_<(_target_name)', |
566 'message': 'Instrumenting <(_target_name) classes', | 568 'message': 'Instrumenting <(_target_name) jar', |
567 'variables': { | 569 'variables': { |
568 'input_path': '<(classes_dir)', | 570 'input_path': '<(javac_jar_path)', |
569 'output_path': '<(classes_final_dir)', | 571 'output_path': '<(jar_path)', |
570 'stamp_path': '<(instr_stamp)', | 572 'stamp_path': '<(instr_stamp)', |
571 'instr_type': 'classes', | 573 'instr_type': 'jar', |
572 }, | 574 }, |
573 'inputs': [ | |
574 '<(compile_stamp)', | |
575 ], | |
576 'outputs': [ | 575 'outputs': [ |
577 '<(instr_stamp)', | 576 '<(instr_stamp)', |
| 577 '<(jar_path)', |
| 578 ], |
| 579 'inputs': [ |
| 580 '<(javac_jar_path)', |
578 ], | 581 ], |
579 'includes': [ 'android/instr_action.gypi' ], | 582 'includes': [ 'android/instr_action.gypi' ], |
580 }, | 583 }, |
581 { | 584 { |
582 'action_name': 'jar_<(_target_name)', | |
583 'message': 'Creating <(_target_name) jar', | |
584 'inputs': [ | |
585 '<(DEPTH)/build/android/gyp/util/build_utils.py', | |
586 '<(DEPTH)/build/android/gyp/util/md5_check.py', | |
587 '<(DEPTH)/build/android/gyp/jar.py', | |
588 '<(instr_stamp)', | |
589 ], | |
590 'outputs': [ | |
591 '<(jar_stamp)', | |
592 '<(jar_path)', | |
593 ], | |
594 'action': [ | |
595 'python', '<(DEPTH)/build/android/gyp/jar.py', | |
596 '--classes-dir=<(classes_final_dir)', | |
597 '--jar-path=<(jar_path)', | |
598 '--excluded-classes=<(jar_excluded_classes)', | |
599 '--stamp=<(jar_stamp)', | |
600 ] | |
601 }, | |
602 { | |
603 'action_name': 'obfuscate_<(_target_name)', | 585 'action_name': 'obfuscate_<(_target_name)', |
604 'message': 'Obfuscating <(_target_name)', | 586 'message': 'Obfuscating <(_target_name)', |
605 'variables': { | 587 'variables': { |
606 'additional_obfuscate_options': [], | 588 'additional_obfuscate_options': [], |
607 'proguard_out_dir': '<(intermediate_dir)/proguard', | 589 'proguard_out_dir': '<(intermediate_dir)/proguard', |
608 'proguard_input_jar_paths': [ | 590 'proguard_input_jar_paths': [ |
609 '>@(input_jars_paths)', | 591 '>@(input_jars_paths)', |
610 '<(jar_path)', | 592 '<(jar_path)', |
611 ], | 593 ], |
612 'conditions': [ | 594 'conditions': [ |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 | 646 |
665 '--proguard-config-files=<(proguard_flags_paths)', | 647 '--proguard-config-files=<(proguard_flags_paths)', |
666 '--stamp', '<(obfuscate_stamp)', | 648 '--stamp', '<(obfuscate_stamp)', |
667 | 649 |
668 '<@(additional_obfuscate_options)', | 650 '<@(additional_obfuscate_options)', |
669 ], | 651 ], |
670 }, | 652 }, |
671 { | 653 { |
672 'action_name': 'dex_<(_target_name)', | 654 'action_name': 'dex_<(_target_name)', |
673 'variables': { | 655 'variables': { |
674 'output_path': '<(dex_path)', | |
675 'dex_input_paths': [ | 656 'dex_input_paths': [ |
676 '>@(apk_dex_input_paths)', | 657 '>@(library_dexed_jars_paths)', |
677 '<(jar_path)', | 658 '<(jar_path)', |
678 ], | 659 ], |
| 660 'output_path': '<(dex_path)', |
679 'proguard_enabled_input_path': '<(obfuscated_jar_path)', | 661 'proguard_enabled_input_path': '<(obfuscated_jar_path)', |
680 }, | 662 }, |
681 'target_conditions': [ | 663 'target_conditions': [ |
682 ['emma_instrument != 0', { | 664 ['emma_instrument != 0', { |
683 'dex_no_locals': 1, | 665 'dex_no_locals': 1, |
684 'dex_input_paths': [ | 666 'dex_input_paths': [ |
685 '<(emma_device_jar)' | 667 '<(emma_device_jar)' |
686 ], | 668 ], |
687 }], | 669 }], |
688 ['is_test_apk == 1 and tested_apk_dex_path != "/"', { | 670 ['is_test_apk == 1 and tested_apk_dex_path != "/"', { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
788 '-DEMMA_INSTRUMENT=<(emma_instrument)', | 770 '-DEMMA_INSTRUMENT=<(emma_instrument)', |
789 '-DEMMA_DEVICE_JAR=<(emma_device_jar)', | 771 '-DEMMA_DEVICE_JAR=<(emma_device_jar)', |
790 | 772 |
791 '-Dbasedir=.', | 773 '-Dbasedir=.', |
792 '-buildfile', | 774 '-buildfile', |
793 '<(DEPTH)/build/android/ant/apk-package.xml', | 775 '<(DEPTH)/build/android/ant/apk-package.xml', |
794 ] | 776 ] |
795 }, | 777 }, |
796 ], | 778 ], |
797 } | 779 } |
OLD | NEW |