Skip to content

Commit db80d78

Browse files
cortinicofacebook-github-bot
authored andcommitted
Merge all the remaining .so libraries into libreactnative.so (#46059)
Summary: Pull Request resolved: #46059 This merges all the remaining dynamic libraries into libreactnative.so. Sadly I couldn't split this in smaller diffs as all the libraries are connected with each other. I also had to introduce 2 other SOs: `libhermestooling.so` and `libjsctooling.so` which contains all the necessary libs used when loading either JSC or Hermes. They need to be isolated as RNGP will remove those libraries based on the library the user decides to pick. Changelog: [Android] [Breaking] - Merge all the remaining .so libraries into libreactnative.so Reviewed By: hezi Differential Revision: D61376496 fbshipit-source-id: ab9e725b7acbebdfd8fa3ff36ad34d080044bf0e
1 parent 7916f7e commit db80d78

File tree

31 files changed

+261
-233
lines changed

31 files changed

+261
-233
lines changed

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/NdkConfiguratorUtils.kt

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -93,30 +93,9 @@ internal object NdkConfiguratorUtils {
9393
"**/libfbjni.so",
9494
// Those are prefab libraries we distribute via ReactAndroid
9595
// Due to a bug in AGP, they fire a warning on console as both the JNI
96-
// and the prefab .so files gets considered. See more on:
97-
"**/libfabricjni.so",
98-
"**/libfolly_runtime.so",
99-
"**/libglog.so",
96+
// and the prefab .so files gets considered.
97+
"**/libreactnative.so",
10098
"**/libjsi.so",
101-
"**/libmapbufferjni.so",
102-
"**/libreact_codegen_rncore.so",
103-
"**/libreact_debug.so",
104-
"**/libreact_nativemodule_core.so",
105-
"**/libreact_newarchdefaults.so",
106-
"**/libreact_cxxreactpackage.so",
107-
"**/libreact_render_componentregistry.so",
108-
"**/libreact_render_core.so",
109-
"**/libreact_render_debug.so",
110-
"**/libreact_render_graphics.so",
111-
"**/libreact_render_imagemanager.so",
112-
"**/libreact_render_mapbuffer.so",
113-
"**/libreact_utils.so",
114-
"**/librrc_image.so",
115-
"**/librrc_legacyviewmanagerinterop.so",
116-
"**/librrc_view.so",
117-
"**/libruntimeexecutor.so",
118-
"**/libturbomodulejsijni.so",
119-
"**/libyoga.so",
12099
// AGP will give priority of libc++_shared coming from App modules.
121100
"**/libc++_shared.so",
122101
))
@@ -144,14 +123,14 @@ internal object NdkConfiguratorUtils {
144123
val includes = mutableListOf<String>()
145124
if (hermesEnabled) {
146125
excludes.add("**/libjsc.so")
147-
excludes.add("**/libjscexecutor.so")
126+
excludes.add("**/libjsctooling.so")
148127
includes.add("**/libhermes.so")
149-
includes.add("**/libhermes_executor.so")
128+
includes.add("**/libhermestooling.so")
150129
} else {
151130
excludes.add("**/libhermes.so")
152-
excludes.add("**/libhermes_executor.so")
131+
excludes.add("**/libhermestooling.so")
153132
includes.add("**/libjsc.so")
154-
includes.add("**/libjscexecutor.so")
133+
includes.add("**/libjsctooling.so")
155134
}
156135
return excludes to includes
157136
}

packages/gradle-plugin/react-native-gradle-plugin/src/test/kotlin/com/facebook/react/tasks/GenerateCodegenArtifactsTaskTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.facebook.react.tests.*
1111
import com.facebook.react.tests.createProject
1212
import com.facebook.react.tests.createTestTask
1313
import java.io.File
14-
import org.assertj.Assert.assertThat
14+
import org.assertj.core.api.Assertions.assertThat
1515
import org.junit.Rule
1616
import org.junit.Test
1717
import org.junit.rules.TemporaryFolder

packages/gradle-plugin/react-native-gradle-plugin/src/test/kotlin/com/facebook/react/utils/NdkConfiguratorUtilsTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ class NdkConfiguratorUtilsTest {
1717
fun getPackagingOptionsForVariant_withHermesEnabled() {
1818
val (excludes, includes) = getPackagingOptionsForVariant(hermesEnabled = true)
1919

20-
assertThat(excludes).containsExactly("**/libjsc.so", "**/libjscexecutor.so")
21-
assertThat(includes).doesNotContain("**/libjsc.so", "**/libjscexecutor.so")
20+
assertThat(excludes).containsExactly("**/libjsc.so", "**/libjsctooling.so")
21+
assertThat(includes).doesNotContain("**/libjsc.so", "**/libjsctooling.so")
2222

23-
assertThat(includes).containsExactly("**/libhermes.so", "**/libhermes_executor.so")
24-
assertThat(excludes).doesNotContain("**/libhermes.so", "**/libhermes_executor.so")
23+
assertThat(includes).containsExactly("**/libhermes.so", "**/libhermestooling.so")
24+
assertThat(excludes).doesNotContain("**/libhermes.so", "**/libhermestooling.so")
2525
}
2626

2727
@Test
2828
fun getPackagingOptionsForVariant_withHermesDisabled() {
2929
val (excludes, includes) = getPackagingOptionsForVariant(hermesEnabled = false)
3030

31-
assertThat(excludes).containsExactly("**/libhermes.so", "**/libhermes_executor.so")
32-
assertThat(includes).doesNotContain("**/libhermes.so", "**/libhermes_executor.so")
31+
assertThat(excludes).containsExactly("**/libhermes.so", "**/libhermestooling.so")
32+
assertThat(includes).doesNotContain("**/libhermes.so", "**/libhermestooling.so")
3333

34-
assertThat(includes).containsExactly("**/libjsc.so", "**/libjscexecutor.so")
35-
assertThat(excludes).doesNotContain("**/libjsc.so", "**/libjscexecutor.so")
34+
assertThat(includes).containsExactly("**/libjsc.so", "**/libjsctooling.so")
35+
assertThat(excludes).doesNotContain("**/libjsc.so", "**/libjsctooling.so")
3636
}
3737
}

packages/react-native/ReactAndroid/build.gradle.kts

Lines changed: 14 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -81,100 +81,29 @@ val preparePrefab by
8181
input.set(
8282
listOf(
8383
PrefabPreprocessingEntry("jsi", Pair("../ReactCommon/jsi/", "")),
84-
PrefabPreprocessingEntry(
85-
"folly_runtime",
86-
listOf(
87-
Pair(File(buildDir, "third-party-ndk/fmt/include/").absolutePath, ""),
88-
Pair(File(buildDir, "third-party-ndk/folly/").absolutePath, ""),
89-
Pair(File(buildDir, "third-party-ndk/boost/boost_1_83_0/").absolutePath, ""),
90-
Pair(File(buildDir, "third-party-ndk/double-conversion/").absolutePath, ""),
91-
)),
92-
PrefabPreprocessingEntry(
93-
"react_nativemodule_core",
94-
listOf(
95-
Pair(File(buildDir, "third-party-ndk/boost/boost_1_83_0/").absolutePath, ""),
96-
Pair(File(buildDir, "third-party-ndk/double-conversion/").absolutePath, ""),
97-
Pair(File(buildDir, "third-party-ndk/fmt/include/").absolutePath, ""),
98-
Pair(File(buildDir, "third-party-ndk/folly/").absolutePath, ""),
99-
Pair(File(buildDir, "third-party-ndk/glog/exported/").absolutePath, ""),
100-
Pair("../ReactCommon/callinvoker/", ""),
101-
Pair("../ReactCommon/cxxreact/", "cxxreact/"),
102-
Pair("../ReactCommon/react/bridging/", "react/bridging/"),
103-
Pair("../ReactCommon/react/config/", "react/config/"),
104-
Pair("../ReactCommon/react/nativemodule/core/", ""),
105-
Pair("../ReactCommon/react/nativemodule/core/platform/android/", ""),
106-
Pair(
107-
"../ReactCommon/react/renderer/componentregistry/",
108-
"react/renderer/componentregistry/"),
109-
Pair(
110-
"../ReactCommon/react/renderer/components/root/",
111-
"react/renderer/components/root/"),
112-
Pair("../ReactCommon/react/renderer/core/", "react/renderer/core/"),
113-
Pair("../ReactCommon/react/renderer/debug/", "react/renderer/debug/"),
114-
Pair(
115-
"../ReactCommon/react/renderer/leakchecker/",
116-
"react/renderer/leakchecker/"),
117-
Pair("../ReactCommon/react/renderer/mapbuffer/", "react/renderer/mapbuffer/"),
118-
Pair("../ReactCommon/react/renderer/mounting/", "react/renderer/mounting/"),
119-
Pair(
120-
"../ReactCommon/react/renderer/runtimescheduler/",
121-
"react/renderer/runtimescheduler/"),
122-
Pair("../ReactCommon/react/renderer/scheduler/", "react/renderer/scheduler/"),
123-
Pair("../ReactCommon/react/renderer/telemetry/", "react/renderer/telemetry/"),
124-
Pair("../ReactCommon/react/renderer/uimanager/", "react/renderer/uimanager/"),
125-
Pair("../ReactCommon/react/debug/", "react/debug/"),
126-
Pair("../ReactCommon/react/utils/", "react/utils/"),
127-
Pair("src/main/jni/react/jni", "react/jni/"),
128-
// From: react_cxxreactpackage
129-
Pair("src/main/jni/react/runtime/cxxreactpackage", ""),
130-
)),
131-
PrefabPreprocessingEntry(
132-
"react_utils",
133-
Pair("../ReactCommon/react/utils/", "react/utils/"),
134-
),
135-
PrefabPreprocessingEntry(
136-
"react_render_imagemanager",
137-
listOf(
138-
Pair(
139-
"../ReactCommon/react/renderer/imagemanager/",
140-
"react/renderer/imagemanager/"),
141-
Pair("../ReactCommon/react/renderer/imagemanager/platform/cxx/", ""),
142-
)),
143-
// These prefab targets are used by Expo & Reanimated
144-
PrefabPreprocessingEntry(
145-
"hermes_executor",
146-
// "hermes_executor" is statically linking against "hermes_executor_common"
147-
// and "hermes_inspector_modern". Here we expose only the headers that we know are
148-
// needed.
149-
Pair("../ReactCommon/hermes/inspector-modern/", "hermes/inspector-modern/")),
150-
PrefabPreprocessingEntry(
151-
"jscexecutor",
152-
// "jscexecutor" is statically linking against "jscruntime"
153-
// Here we expose only the headers that we know are needed.
154-
Pair("../ReactCommon/jsc/", "jsc/")),
155-
PrefabPreprocessingEntry(
156-
"reactnativejni",
157-
listOf(
158-
Pair("src/main/jni/react/jni", "react/jni/"),
159-
Pair("../ReactCommon/cxxreact/", "cxxreact/"),
160-
)),
161-
PrefabPreprocessingEntry(
162-
"jsinspector",
163-
Pair("../ReactCommon/jsinspector-modern/", "jsinspector-modern/"),
164-
),
16584
PrefabPreprocessingEntry(
16685
"reactnative",
16786
listOf(
87+
// hermes_executor
88+
// This prefab targets is used by Expo & Reanimated
89+
Pair("../ReactCommon/hermes/inspector-modern/", "hermes/inspector-modern/"),
90+
// jscexecutor
91+
Pair("../ReactCommon/jsc/", "jsc/"),
16892
// fabricjni
16993
Pair("src/main/jni/react/fabric", "react/fabric/"),
17094
// glog
17195
Pair(File(buildDir, "third-party-ndk/glog/exported/").absolutePath, ""),
96+
// jsiinpsector
97+
Pair("../ReactCommon/jsinspector-modern/", "jsinspector-modern/"),
17298
// mapbufferjni
17399
Pair("src/main/jni/react/mapbuffer", "react/mapbuffer/"),
174100
// turbomodulejsijni
175101
Pair("src/main/jni/react/turbomodule", ""),
176102
// react_codegen_rncore
177103
Pair(File(buildDir, "generated/source/codegen/jni/").absolutePath, ""),
104+
// reactnativejni
105+
Pair("src/main/jni/react/jni", "react/jni/"),
106+
Pair("../ReactCommon/cxxreact/", "cxxreact/"),
178107
// react_featureflags
179108
Pair("../ReactCommon/react/featureflags/", "react/featureflags/"),
180109
// react_render_animations
@@ -567,23 +496,11 @@ android {
567496
"-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=ON")
568497

569498
targets(
570-
"jsijniprofiler",
571-
"reactnativeblob",
572-
"bridgeless",
573-
"rninstance",
574-
"hermesinstancejni",
575-
"jscinstance",
576-
"react_devsupportjni",
577-
// prefab targets
578-
"reactnativejni",
579-
"react_utils",
580-
"react_render_componentregistry",
581-
"react_render_dom",
499+
"reactnative",
582500
"jsi",
583-
"hermes_executor",
584-
"jscexecutor",
585-
"jsinspector",
586-
"reactnative")
501+
"hermestooling",
502+
"jsctooling",
503+
)
587504
}
588505
}
589506
ndk { abiFilters.addAll(reactNativeArchitectures()) }
@@ -662,10 +579,6 @@ android {
662579

663580
prefab {
664581
create("jsi") { headers = File(prefabHeadersDir, "jsi").absolutePath }
665-
create("reactnativejni") { headers = File(prefabHeadersDir, "reactnativejni").absolutePath }
666-
create("hermes_executor") { headers = File(prefabHeadersDir, "hermes_executor").absolutePath }
667-
create("jscexecutor") { headers = File(prefabHeadersDir, "jscexecutor").absolutePath }
668-
create("jsinspector") { headers = File(prefabHeadersDir, "jsinspector").absolutePath }
669582
create("reactnative") { headers = File(prefabHeadersDir, "reactnative").absolutePath }
670583
}
671584

packages/react-native/ReactAndroid/src/main/jni/CMakeLists.txt

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ add_react_android_subdir(src/main/jni/first-party/jni-lib-merge)
126126
add_react_android_subdir(src/main/jni/react/jni)
127127
add_react_android_subdir(src/main/jni/react/reactperflogger)
128128
add_react_android_subdir(src/main/jni/react/jscexecutor)
129+
add_react_android_subdir(src/main/jni/react/jsctooling)
129130
add_react_android_subdir(src/main/jni/react/turbomodule)
130131
add_react_android_subdir(src/main/jni/react/uimanager)
131132
add_react_android_subdir(src/main/jni/react/mapbuffer)
@@ -134,6 +135,7 @@ add_react_android_subdir(src/main/jni/react/fabric)
134135
add_react_android_subdir(src/main/jni/react/featureflags)
135136
add_react_android_subdir(src/main/jni/react/newarchdefaults)
136137
add_react_android_subdir(src/main/jni/react/hermes/reactexecutor)
138+
add_react_android_subdir(src/main/jni/react/hermes/tooling)
137139
add_react_android_subdir(src/main/jni/react/hermes/instrumentation/)
138140
add_react_android_subdir(src/main/jni/react/runtime/cxxreactpackage)
139141
add_react_android_subdir(src/main/jni/react/runtime/jni)
@@ -150,21 +152,23 @@ include(${REACT_ANDROID_DIR}/src/main/jni/first-party/jni-lib-merge/SoMerging-ut
150152
# This is needed in order to reduce the number of .so files that we ship in the final library
151153
add_library(reactnative
152154
SHARED
153-
OnLoad.cpp
154155
$<TARGET_OBJECTS:bridgeless>
155156
$<TARGET_OBJECTS:bridgelessnativeviewconfig>
156-
$<TARGET_OBJECTS:bridgelesshermes>
157+
$<TARGET_OBJECTS:callinvokerholder>
157158
$<TARGET_OBJECTS:fabricjni>
158-
$<TARGET_OBJECTS:hermes_inspector_modern>
159-
$<TARGET_OBJECTS:hermesinstancejni>
159+
$<TARGET_OBJECTS:glog_init>
160160
$<TARGET_OBJECTS:jni_lib_merge_glue>
161161
$<TARGET_OBJECTS:jserrorhandler>
162+
$<TARGET_OBJECTS:jsinspector>
163+
$<TARGET_OBJECTS:jsireact>
162164
$<TARGET_OBJECTS:logger>
163165
$<TARGET_OBJECTS:mapbufferjni>
164166
$<TARGET_OBJECTS:react_bridging>
165167
$<TARGET_OBJECTS:react_codegen_rncore>
166168
$<TARGET_OBJECTS:react_config>
169+
$<TARGET_OBJECTS:react_cxxreact>
167170
$<TARGET_OBJECTS:react_debug>
171+
$<TARGET_OBJECTS:react_devsupportjni>
168172
$<TARGET_OBJECTS:react_featureflags>
169173
$<TARGET_OBJECTS:react_featureflagsjni>
170174
$<TARGET_OBJECTS:react_nativemodule_core>
@@ -174,6 +178,7 @@ add_library(reactnative
174178
$<TARGET_OBJECTS:react_nativemodule_idlecallbacks>
175179
$<TARGET_OBJECTS:react_nativemodule_microtasks>
176180
$<TARGET_OBJECTS:react_newarchdefaults>
181+
$<TARGET_OBJECTS:react_performance_timeline>
177182
$<TARGET_OBJECTS:react_render_animations>
178183
$<TARGET_OBJECTS:react_render_attributedstring>
179184
$<TARGET_OBJECTS:react_render_componentregistry>
@@ -188,12 +193,16 @@ add_library(reactnative
188193
$<TARGET_OBJECTS:react_render_mapbuffer>
189194
$<TARGET_OBJECTS:react_render_mounting>
190195
$<TARGET_OBJECTS:react_render_observers_events>
196+
$<TARGET_OBJECTS:react_render_runtimescheduler>
191197
$<TARGET_OBJECTS:react_render_scheduler>
192198
$<TARGET_OBJECTS:react_render_telemetry>
193199
$<TARGET_OBJECTS:react_render_textlayoutmanager>
194200
$<TARGET_OBJECTS:react_render_uimanager>
195201
$<TARGET_OBJECTS:react_render_uimanager_consistency>
196202
$<TARGET_OBJECTS:react_utils>
203+
$<TARGET_OBJECTS:reactnativeblob>
204+
$<TARGET_OBJECTS:reactnativejni>
205+
$<TARGET_OBJECTS:reactperflogger>
197206
$<TARGET_OBJECTS:rninstance>
198207
$<TARGET_OBJECTS:rrc_image>
199208
$<TARGET_OBJECTS:rrc_legacyviewmanagerinterop>
@@ -213,31 +222,36 @@ add_library(reactnative
213222
)
214223
target_merge_so(reactnative)
215224

216-
target_link_libraries(reactnative PUBLIC
217-
double-conversion
218-
fbjni
219-
folly_runtime
220-
glog
221-
jsi
222-
log
223-
reactnativejni
224-
yoga
225-
hermes-engine::libhermes
225+
target_link_libraries(reactnative
226+
PUBLIC
227+
android
228+
double-conversion
229+
fb
230+
fbjni
231+
folly_runtime
232+
glog
233+
jsi
234+
log
235+
yogacore
226236
)
237+
227238
target_include_directories(reactnative
228239
PUBLIC
229240
$<TARGET_PROPERTY:bridgeless,INTERFACE_INCLUDE_DIRECTORIES>
230241
$<TARGET_PROPERTY:bridgelessnativeviewconfig,INTERFACE_INCLUDE_DIRECTORIES>
231-
$<TARGET_PROPERTY:bridgelesshermes,INTERFACE_INCLUDE_DIRECTORIES>
242+
$<TARGET_PROPERTY:callinvokerholder,INTERFACE_INCLUDE_DIRECTORIES>
232243
$<TARGET_PROPERTY:fabricjni,INTERFACE_INCLUDE_DIRECTORIES>
233-
$<TARGET_PROPERTY:hermes_inspector_modern,INTERFACE_INCLUDE_DIRECTORIES>
234-
$<TARGET_PROPERTY:hermesinstancejni,INTERFACE_INCLUDE_DIRECTORIES>
244+
$<TARGET_PROPERTY:glog_init,INTERFACE_INCLUDE_DIRECTORIES>
235245
$<TARGET_PROPERTY:jserrorhandler,INTERFACE_INCLUDE_DIRECTORIES>
246+
$<TARGET_PROPERTY:jsinspector,INTERFACE_INCLUDE_DIRECTORIES>
247+
$<TARGET_PROPERTY:jsireact,INTERFACE_INCLUDE_DIRECTORIES>
236248
$<TARGET_PROPERTY:mapbufferjni,INTERFACE_INCLUDE_DIRECTORIES>
237249
$<TARGET_PROPERTY:react_bridging,INTERFACE_INCLUDE_DIRECTORIES>
238250
$<TARGET_PROPERTY:react_codegen_rncore,INTERFACE_INCLUDE_DIRECTORIES>
239251
$<TARGET_PROPERTY:react_config,INTERFACE_INCLUDE_DIRECTORIES>
252+
$<TARGET_PROPERTY:react_cxxreact,INTERFACE_INCLUDE_DIRECTORIES>
240253
$<TARGET_PROPERTY:react_debug,INTERFACE_INCLUDE_DIRECTORIES>
254+
$<TARGET_PROPERTY:react_devsupportjni,INTERFACE_INCLUDE_DIRECTORIES>
241255
$<TARGET_PROPERTY:react_featureflags,INTERFACE_INCLUDE_DIRECTORIES>
242256
$<TARGET_PROPERTY:react_featureflagsjni,INTERFACE_INCLUDE_DIRECTORIES>
243257
$<TARGET_PROPERTY:react_nativemodule_core,INTERFACE_INCLUDE_DIRECTORIES>
@@ -247,6 +261,7 @@ target_include_directories(reactnative
247261
$<TARGET_PROPERTY:react_nativemodule_idlecallbacks,INTERFACE_INCLUDE_DIRECTORIES>
248262
$<TARGET_PROPERTY:react_nativemodule_microtasks,INTERFACE_INCLUDE_DIRECTORIES>
249263
$<TARGET_PROPERTY:react_newarchdefaults,INTERFACE_INCLUDE_DIRECTORIES>
264+
$<TARGET_PROPERTY:react_performance_timeline,INTERFACE_INCLUDE_DIRECTORIES>
250265
$<TARGET_PROPERTY:react_render_animations,INTERFACE_INCLUDE_DIRECTORIES>
251266
$<TARGET_PROPERTY:react_render_attributedstring,INTERFACE_INCLUDE_DIRECTORIES>
252267
$<TARGET_PROPERTY:react_render_componentregistry,INTERFACE_INCLUDE_DIRECTORIES>
@@ -262,12 +277,16 @@ target_include_directories(reactnative
262277
$<TARGET_PROPERTY:react_render_mapbuffer,INTERFACE_INCLUDE_DIRECTORIES>
263278
$<TARGET_PROPERTY:react_render_mounting,INTERFACE_INCLUDE_DIRECTORIES>
264279
$<TARGET_PROPERTY:react_render_observers_events,INTERFACE_INCLUDE_DIRECTORIES>
280+
$<TARGET_PROPERTY:react_render_runtimescheduler,INTERFACE_INCLUDE_DIRECTORIES>
265281
$<TARGET_PROPERTY:react_render_scheduler,INTERFACE_INCLUDE_DIRECTORIES>
266282
$<TARGET_PROPERTY:react_render_telemetry,INTERFACE_INCLUDE_DIRECTORIES>
267283
$<TARGET_PROPERTY:react_render_textlayoutmanager,INTERFACE_INCLUDE_DIRECTORIES>
268284
$<TARGET_PROPERTY:react_render_uimanager,INTERFACE_INCLUDE_DIRECTORIES>
269285
$<TARGET_PROPERTY:react_render_uimanager_consistency,INTERFACE_INCLUDE_DIRECTORIES>
270286
$<TARGET_PROPERTY:react_utils,INTERFACE_INCLUDE_DIRECTORIES>
287+
$<TARGET_PROPERTY:reactnativeblob,INTERFACE_INCLUDE_DIRECTORIES>
288+
$<TARGET_PROPERTY:reactnativejni,INTERFACE_INCLUDE_DIRECTORIES>
289+
$<TARGET_PROPERTY:reactperflogger,INTERFACE_INCLUDE_DIRECTORIES>
271290
$<TARGET_PROPERTY:rninstance,INTERFACE_INCLUDE_DIRECTORIES>
272291
$<TARGET_PROPERTY:rrc_image,INTERFACE_INCLUDE_DIRECTORIES>
273292
$<TARGET_PROPERTY:rrc_legacyviewmanagerinterop,INTERFACE_INCLUDE_DIRECTORIES>

0 commit comments

Comments
 (0)