34 parser = argparse.ArgumentParser(description='Runs javadoc on Flutter Android libraries')
35 parser.add_argument('--out-dir', type=str, required=True)
36 parser.add_argument('--android-source-root', type=str, default=ANDROID_SRC_ROOT)
37 parser.add_argument('--build-config-path', type=str)
38 parser.add_argument('--third-party', type=str, default='third_party')
39 parser.add_argument('--quiet', default=False, action='store_true')
40 args = parser.parse_args()
41
42 if not os.path.exists(args.android_source_root):
44 'This script must be run at the root of the Flutter source tree, or '
45 'the --android-source-root must be set.'
46 )
47 return 1
48
49 if not os.path.exists(args.out_dir):
50 os.makedirs(args.out_dir)
51
52 classpath = [
53 args.android_source_root,
54 os.path.join(args.third_party, 'android_tools/sdk/platforms/android-34/android.jar'),
55 os.path.join(args.third_party, 'android_embedding_dependencies', 'lib', '*'),
56 ]
57 if args.build_config_path:
58 classpath.append(args.build_config_path)
59
60 packages = [
61 'io.flutter.app',
62 'io.flutter.embedding.android',
63 'io.flutter.embedding.engine',
64 'io.flutter.embedding.engine.dart',
65 'io.flutter.embedding.engine.loader',
66 'io.flutter.embedding.engine.mutatorsstack',
67 'io.flutter.embedding.engine.plugins',
68 'io.flutter.embedding.engine.plugins.activity',
69 'io.flutter.embedding.engine.plugins.broadcastreceiver',
70 'io.flutter.embedding.engine.plugins.contentprovider',
71 'io.flutter.embedding.engine.plugins.lifecycle',
72 'io.flutter.embedding.engine.plugins.service',
73 'io.flutter.embedding.engine.plugins.shim',
74 'io.flutter.embedding.engine.renderer',
75 'io.flutter.embedding.engine.systemchannels',
76 'io.flutter.plugin.common',
77 'io.flutter.plugin.editing',
78 'io.flutter.plugin.platform',
79 'io.flutter.util',
80 'io.flutter.view',
81 ]
82
83 android_package_list = os.path.join(SCRIPT_DIR, 'android_reference')
84
85 command = [
86 JavadocBin(),
87 '-classpath',
88 ':'.join(classpath),
89 '-d',
90 args.out_dir,
91 '-linkoffline',
92 'https://developer.android.com/reference/',
93 android_package_list,
94 '-source',
95 '1.8',
96 ] + packages
97
98 if not args.quiet:
99 print(
' '.join(command))
100
101 try:
102 output = subprocess.check_output(command, stderr=subprocess.STDOUT)
103 if not args.quiet:
105 except subprocess.CalledProcessError as e:
106 print(e.output.decode(
'utf-8'))
107 return e.returncode
108
109 return 0
110
111