xref: /expo/tools/src/versioning/android/libraries.ts (revision e712b0bc)
1import fs from 'fs-extra';
2import path from 'path';
3import { getExpotoolsDir } from '../../Directories';
4
5export const JniLibNames = [
6  'libfb',
7  'libfolly_json',
8  'libglog_init',
9  'glog',
10  'reactnativejni',
11  'reactnativejnifb',
12  'csslayout',
13  'yoga',
14  'fbgloginit',
15  'yogajni',
16  'jschelpers',
17  'packagerconnectionjnifb',
18  'privatedata',
19  'yogafastmath',
20  'fabricjscjni',
21  'jscexecutor',
22  'libjscexecutor',
23  'jsinspector',
24  'libjsinspector',
25  'fabricjni',
26  'turbomodulejsijni',
27  'reactnativeblob',
28  'jsijniprofiler',
29  'hermes',
30  'hermes-executor-release',
31  'hermes-executor-common-release',
32  'hermes-executor-debug',
33  'hermes-executor-common-debug',
34  'reanimated',
35  'hermes-inspector',
36  'folly_futures',
37  'react_codegen_rncore',
38  'react_nativemodule_core',
39  'reactnativeutilsjni',
40  'reactperfloggerjni',
41  'better',
42  'jsi',
43  'logger',
44  'mapbufferjni',
45  'react_debug',
46  'react_render_animations',
47  'react_render_attributedstring',
48  'react_render_componentregistry',
49  'react_render_core',
50  'react_render_debug',
51  'react_render_graphics',
52  'react_render_imagemanager',
53  'react_render_leakchecker',
54  'react_render_mapbuffer',
55  'react_render_mounting',
56  'react_render_runtimescheduler',
57  'react_render_scheduler',
58  'react_render_telemetry',
59  'react_render_templateprocessor',
60  'react_render_textlayoutmanager',
61  'react_render_uimanager',
62  'react_utils',
63  'reactconfig',
64  'rrc_image',
65  'rrc_modal',
66  'rrc_progressbar',
67  'rrc_root',
68  'rrc_scrollview',
69  'rrc_slider',
70  'rrc_switch',
71  'rrc_text',
72  'rrc_textinput',
73  'rrc_unimplementedview',
74  'rrc_view',
75
76  // TODO: considering versioning prebuilt fbjni by patchelf after RN 0.65 which has newer fbjni version.
77  // or simply upgrade old SDK to use latest fbjni.
78  //
79  // 'fbjni',
80  // 'libfbjni',
81];
82
83// this list is used in the shell scripts as well as directly by expotools
84// we read it in here to keep the source of truth in one place
85export const getJavaPackagesToRename = async () => {
86  const packagesToRename = await fs.readFile(
87    path.join(getExpotoolsDir(), 'src/versioning/android/android-packages-to-rename.txt'),
88    'utf8'
89  );
90  return packagesToRename.split('\n').filter((p: string) => !!p);
91};
92