react-native-fast-tflite
Version:
High-performance TensorFlow Lite library for React Native
32 lines (31 loc) • 1.41 kB
JavaScript
import { AndroidConfig, withAndroidManifest, } from '@expo/config-plugins';
import { prefixAndroidKeys, } from '@expo/config-plugins/build/android/Manifest';
function addUsesNativeLibraryItemToMainApplication(mainApplication, item) {
let existingMetaDataItem;
const newItem = {
$: prefixAndroidKeys(item),
};
if (mainApplication['uses-native-library'] !== undefined) {
existingMetaDataItem = mainApplication['uses-native-library'].filter((e) => e.$['android:name'] === item.name);
if (existingMetaDataItem.length > 0 &&
existingMetaDataItem[0] !== undefined)
existingMetaDataItem[0].$ = newItem.$;
else
mainApplication['uses-native-library'].push(newItem);
}
else {
mainApplication['uses-native-library'] = [newItem];
}
return mainApplication;
}
export const withAndroidGpuLibraries = (cfg, enabledLibraries) => withAndroidManifest(cfg, (config) => {
const mainApplication = AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
const gpuLibraries = [{ name: 'libOpenCL.so', required: false }];
if (Array.isArray(enabledLibraries)) {
gpuLibraries.push(...enabledLibraries.map((lib) => ({ name: lib, required: false })));
}
gpuLibraries.forEach((lib) => {
addUsesNativeLibraryItemToMainApplication(mainApplication, lib);
});
return config;
});