OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Generates an Android Studio project from a GN target.""" | 6 """Generates an Android Studio project from a GN target.""" |
7 | 7 |
8 import argparse | 8 import argparse |
9 import codecs | 9 import codecs |
10 import glob | 10 import glob |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
551 | 551 |
552 See //docs/android_studio.md for more details.""" | 552 See //docs/android_studio.md for more details.""" |
553 variables = _GenerateBaseVars(generator, build_vars, source_properties) | 553 variables = _GenerateBaseVars(generator, build_vars, source_properties) |
554 target_type = 'android_apk' | 554 target_type = 'android_apk' |
555 variables['target_name'] = _MODULE_ALL | 555 variables['target_name'] = _MODULE_ALL |
556 variables['template_type'] = target_type | 556 variables['template_type'] = target_type |
557 java_dirs = sorted(generator.processed_java_dirs) | 557 java_dirs = sorted(generator.processed_java_dirs) |
558 prebuilts = sorted(generator.processed_prebuilts) | 558 prebuilts = sorted(generator.processed_prebuilts) |
559 def Relativize(paths): | 559 def Relativize(paths): |
560 return _RebasePath(paths, os.path.join(gradle_output_dir, _MODULE_ALL)) | 560 return _RebasePath(paths, os.path.join(gradle_output_dir, _MODULE_ALL)) |
561 def IsTestDir(path): | |
estevenson
2017/04/24 15:51:11
nit: probably doesn't need to be a nested function
Peter Wen
2017/04/24 17:40:14
Done.
| |
562 return 'javatests/' in path or 'junit/' in path or 'test/' in path | |
563 main_java_dirs = [d for d in java_dirs if not IsTestDir(d)] | |
564 test_java_dirs = [d for d in java_dirs if IsTestDir(d)] | |
561 variables['main'] = { | 565 variables['main'] = { |
562 'android_manifest': Relativize(_DEFAULT_ANDROID_MANIFEST_PATH), | 566 'android_manifest': Relativize(_DEFAULT_ANDROID_MANIFEST_PATH), |
563 'java_dirs': Relativize(java_dirs), | 567 'java_dirs': Relativize(main_java_dirs), |
564 'prebuilts': Relativize(prebuilts), | 568 'prebuilts': Relativize(prebuilts), |
565 'java_excludes': ['**/*.java'], | 569 'java_excludes': ['**/*.java'], |
566 } | 570 } |
571 variables['android_test'] = { | |
572 'java_dirs': Relativize(test_java_dirs), | |
573 'java_excludes': ['**/*.java'], | |
574 } | |
567 data = jinja_processor.Render( | 575 data = jinja_processor.Render( |
568 _TemplatePath(target_type.split('_')[0]), variables) | 576 _TemplatePath(target_type.split('_')[0]), variables) |
569 _WriteFile( | 577 _WriteFile( |
570 os.path.join(gradle_output_dir, _MODULE_ALL, _GRADLE_BUILD_FILE), data) | 578 os.path.join(gradle_output_dir, _MODULE_ALL, _GRADLE_BUILD_FILE), data) |
571 | 579 |
572 | 580 |
573 def _GenerateRootGradle(jinja_processor): | 581 def _GenerateRootGradle(jinja_processor): |
574 """Returns the data for the root project's build.gradle.""" | 582 """Returns the data for the root project's build.gradle.""" |
575 return jinja_processor.Render(_TemplatePath('root')) | 583 return jinja_processor.Render(_TemplatePath('root')) |
576 | 584 |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
792 _ExtractZips(generator.project_dir, zip_tuples) | 800 _ExtractZips(generator.project_dir, zip_tuples) |
793 | 801 |
794 logging.warning('Project created! (%d subprojects)', len(project_entries)) | 802 logging.warning('Project created! (%d subprojects)', len(project_entries)) |
795 logging.warning('Generated projects work with Android Studio 2.3') | 803 logging.warning('Generated projects work with Android Studio 2.3') |
796 logging.warning('For more tips: https://chromium.googlesource.com/chromium' | 804 logging.warning('For more tips: https://chromium.googlesource.com/chromium' |
797 '/src.git/+/master/docs/android_studio.md') | 805 '/src.git/+/master/docs/android_studio.md') |
798 | 806 |
799 | 807 |
800 if __name__ == '__main__': | 808 if __name__ == '__main__': |
801 main() | 809 main() |
OLD | NEW |