MCPcopy Create free account
hub / github.com/brainflow-dev/brainflow / main

Function main

tools/package_android_aar.py:71–122  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

69
70
71def main():
72 args = parse_args()
73 classes_jar = args.classes_jar.resolve()
74 bridge_jar = args.bridge_jar.resolve()
75 jni_libs = args.jni_libs.resolve()
76 output = args.output.resolve()
77
78 if not classes_jar.is_file():
79 raise RuntimeError('classes jar not found: %s' % classes_jar)
80 if not bridge_jar.is_file():
81 raise RuntimeError('SimpleBLE bridge jar not found: %s' % bridge_jar)
82 if not jni_libs.is_dir():
83 raise RuntimeError('jniLibs directory not found: %s' % jni_libs)
84
85 missing_abis = []
86 packaged_abis = []
87 for abi in ANDROID_ABIS:
88 abi_dir = jni_libs / abi
89 if not abi_dir.is_dir():
90 missing_abis.append(abi)
91 continue
92 missing_libs = [lib for lib in REQUIRED_NATIVE_LIBS if not (abi_dir / lib).is_file()]
93 if missing_libs:
94 if args.allow_missing_abis:
95 missing_abis.append(abi)
96 continue
97 raise RuntimeError('ABI %s is missing required libraries: %s' %
98 (abi, ', '.join(missing_libs)))
99 packaged_abis.append(abi)
100
101 if not packaged_abis:
102 raise RuntimeError('no Android ABI directories found in %s' % jni_libs)
103 if missing_abis and not args.allow_missing_abis:
104 raise RuntimeError('missing Android ABI directories: %s' %
105 ', '.join(missing_abis))
106
107 output.parent.mkdir(parents=True, exist_ok=True)
108 with tempfile.TemporaryDirectory() as tmp_dir_name:
109 tmp_dir = Path(tmp_dir_name)
110 write_manifest(tmp_dir / 'AndroidManifest.xml', args.package_name, args.min_sdk)
111 copy_android_classes_jar(classes_jar, tmp_dir / 'classes.jar')
112 copy_file(bridge_jar, tmp_dir / 'libs' / 'simpleble-bridge.jar')
113 (tmp_dir / 'R.txt').write_text('', encoding='utf-8')
114
115 for abi in packaged_abis:
116 for native_lib in sorted((jni_libs / abi).glob('*.so')):
117 copy_file(native_lib, tmp_dir / 'jni' / abi / native_lib.name)
118
119 with zipfile.ZipFile(output, 'w', zipfile.ZIP_DEFLATED) as zip_file:
120 add_directory_to_zip(zip_file, tmp_dir)
121
122 print('Packaged %s with ABIs: %s' % (output, ', '.join(packaged_abis)), flush=True)
123
124
125if __name__ == '__main__':

Callers 1

Calls 5

write_manifestFunction · 0.85
copy_android_classes_jarFunction · 0.85
copy_fileFunction · 0.85
add_directory_to_zipFunction · 0.85
parse_argsFunction · 0.70

Tested by

no test coverage detected