Chromium Code Reviews| 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 |