From eb661df2a950bd66a381883bb6c56f69fb73ea0a Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 6 Dec 2023 09:07:03 -0800 Subject: [PATCH] Move several libraries to static linking (#41815) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41815 Our Apps in OSS ends up shipping with too many .so files. I'm attempting to move several libraries from dynamic to static. This is a first round of it affecnting only libraries which are not exposed via prefab and that are not having an OnLoad method Changelog: [Internal] [Changed] - Move several libraries to static linking Reviewed By: NickGerleman Differential Revision: D51895785 fbshipit-source-id: 1ba2dbbbae6b6c2639ba0e064f1b331b2a157f03 --- .../ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt | 2 +- .../src/main/jni/first-party/fbgloginit/CMakeLists.txt | 2 +- packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt | 2 +- .../react-native/ReactCommon/jsinspector-modern/CMakeLists.txt | 2 +- packages/react-native/ReactCommon/logger/CMakeLists.txt | 2 +- packages/react-native/ReactCommon/react/config/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/animations/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/attributedstring/CMakeLists.txt | 2 +- .../react/renderer/componentregistry/native/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/components/root/CMakeLists.txt | 2 +- .../react/renderer/components/scrollview/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/components/text/CMakeLists.txt | 2 +- .../react/renderer/components/textinput/CMakeLists.txt | 2 +- .../react/renderer/components/unimplementedview/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/leakchecker/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/mounting/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/scheduler/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/telemetry/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/uimanager/CMakeLists.txt | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt index 16eb9527e1b..572123bb390 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.13) set(CMAKE_VERBOSE_MAKEFILE on) add_library(fb - SHARED + STATIC assert.cpp log.cpp) diff --git a/packages/react-native/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt index 45ffd31f75f..194f607cc11 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt @@ -8,7 +8,7 @@ set(CMAKE_VERBOSE_MAKEFILE on) add_compile_options(-fexceptions -fno-omit-frame-pointer) -add_library(glog_init SHARED glog_init.cpp) +add_library(glog_init STATIC glog_init.cpp) target_include_directories(glog_init PUBLIC .) diff --git a/packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt b/packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt index 612d100fa38..b36b38e013d 100644 --- a/packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt +++ b/packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt @@ -11,7 +11,7 @@ add_compile_options(-std=c++20) file(GLOB_RECURSE js_error_handler_SRC CONFIGURE_DEPENDS *.cpp) add_library( jserrorhandler - SHARED + STATIC ${js_error_handler_SRC} ) target_include_directories(jserrorhandler PUBLIC .) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/CMakeLists.txt b/packages/react-native/ReactCommon/jsinspector-modern/CMakeLists.txt index 3f16dd6ceaa..6533a59fec4 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/CMakeLists.txt +++ b/packages/react-native/ReactCommon/jsinspector-modern/CMakeLists.txt @@ -11,6 +11,6 @@ add_compile_options( -std=c++20) file(GLOB jsinspector_SRC CONFIGURE_DEPENDS *.cpp) -add_library(jsinspector SHARED ${jsinspector_SRC}) +add_library(jsinspector STATIC ${jsinspector_SRC}) target_include_directories(jsinspector PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/logger/CMakeLists.txt b/packages/react-native/ReactCommon/logger/CMakeLists.txt index 4746c147ac3..57bd031de23 100644 --- a/packages/react-native/ReactCommon/logger/CMakeLists.txt +++ b/packages/react-native/ReactCommon/logger/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_VERBOSE_MAKEFILE on) add_compile_options(-fexceptions) file(GLOB logger_SRC CONFIGURE_DEPENDS *.cpp) -add_library(logger SHARED ${logger_SRC}) +add_library(logger STATIC ${logger_SRC}) target_include_directories(logger PUBLIC .) diff --git a/packages/react-native/ReactCommon/react/config/CMakeLists.txt b/packages/react-native/ReactCommon/react/config/CMakeLists.txt index c581816bd11..6885b6510f4 100644 --- a/packages/react-native/ReactCommon/react/config/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/config/CMakeLists.txt @@ -16,6 +16,6 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_config_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_config SHARED ${react_config_SRC}) +add_library(react_config STATIC ${react_config_SRC}) target_include_directories(react_config PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/animations/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/animations/CMakeLists.txt index e1674024b97..200d2f590db 100644 --- a/packages/react-native/ReactCommon/react/renderer/animations/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/animations/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_animations_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_animations SHARED ${react_render_animations_SRC}) +add_library(react_render_animations STATIC ${react_render_animations_SRC}) target_include_directories(react_render_animations PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/attributedstring/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/attributedstring/CMakeLists.txt index 4c7968279c5..0215258ebcc 100644 --- a/packages/react-native/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/attributedstring/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_attributedstring_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_attributedstring SHARED ${react_render_attributedstring_SRC}) +add_library(react_render_attributedstring STATIC ${react_render_attributedstring_SRC}) target_include_directories(react_render_attributedstring PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt index 752e65f5c1b..2fecbecf153 100644 --- a/packages/react-native/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_native_SRC CONFIGURE_DEPENDS *.cpp) -add_library(rrc_native SHARED ${rrc_native_SRC}) +add_library(rrc_native STATIC ${rrc_native_SRC}) target_include_directories(rrc_native PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt index b0ed65e10c6..7c94f04ae0f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_root_SRC CONFIGURE_DEPENDS *.cpp) -add_library(rrc_root SHARED ${rrc_root_SRC}) +add_library(rrc_root STATIC ${rrc_root_SRC}) target_include_directories(rrc_root PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt index 7c8aab4b1d9..6276b415491 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_scrollview_SRC CONFIGURE_DEPENDS *.cpp) -add_library(rrc_scrollview SHARED ${rrc_scrollview_SRC}) +add_library(rrc_scrollview STATIC ${rrc_scrollview_SRC}) target_include_directories(rrc_scrollview PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/text/CMakeLists.txt index 184dc34e920..7ecf8389397 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/text/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_text_SRC CONFIGURE_DEPENDS *.cpp) -add_library(rrc_text SHARED ${rrc_text_SRC}) +add_library(rrc_text STATIC ${rrc_text_SRC}) target_include_directories(rrc_text PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/textinput/CMakeLists.txt index 3f780470383..748501abb89 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_textinput_SRC CONFIGURE_DEPENDS platform/android/react/renderer/components/androidtextinput/*.cpp) -add_library(rrc_textinput SHARED ${rrc_textinput_SRC}) +add_library(rrc_textinput STATIC ${rrc_textinput_SRC}) target_include_directories(rrc_textinput PUBLIC diff --git a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt index ab2dbcf4b7d..1b023e66255 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB rrc_unimplementedview_SRC CONFIGURE_DEPENDS *.cpp) -add_library(rrc_unimplementedview SHARED ${rrc_unimplementedview_SRC}) +add_library(rrc_unimplementedview STATIC ${rrc_unimplementedview_SRC}) target_include_directories(rrc_unimplementedview PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/leakchecker/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/leakchecker/CMakeLists.txt index 183330b580a..e78e664b991 100644 --- a/packages/react-native/ReactCommon/react/renderer/leakchecker/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/leakchecker/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_leakchecker_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_leakchecker SHARED ${react_render_leakchecker_SRC}) +add_library(react_render_leakchecker STATIC ${react_render_leakchecker_SRC}) target_include_directories(react_render_leakchecker PUBLIC ${REACT_COMMON_DIR}) target_link_libraries(react_render_leakchecker diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/mounting/CMakeLists.txt index f478d2e9123..8a7e0fab4ef 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/mounting/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_mounting_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_mounting SHARED ${react_render_mounting_SRC}) +add_library(react_render_mounting STATIC ${react_render_mounting_SRC}) target_include_directories(react_render_mounting PRIVATE .) target_include_directories(react_render_mounting PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt index ac4ae1613ee..e88e1a96d41 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_runtimescheduler_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_runtimescheduler SHARED ${react_render_runtimescheduler_SRC}) +add_library(react_render_runtimescheduler STATIC ${react_render_runtimescheduler_SRC}) target_include_directories(react_render_runtimescheduler PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt index 56659df3117..cef146cf5d1 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_scheduler_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_scheduler SHARED ${react_render_scheduler_SRC}) +add_library(react_render_scheduler STATIC ${react_render_scheduler_SRC}) target_include_directories(react_render_scheduler PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/telemetry/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/telemetry/CMakeLists.txt index cb383579794..202f66b11be 100644 --- a/packages/react-native/ReactCommon/react/renderer/telemetry/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/telemetry/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_telemetry_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_telemetry SHARED ${react_render_telemetry_SRC}) +add_library(react_render_telemetry STATIC ${react_render_telemetry_SRC}) target_include_directories(react_render_telemetry PUBLIC ${REACT_COMMON_DIR}) diff --git a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt index c3d7c197491..0946144d91b 100644 --- a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt @@ -20,7 +20,7 @@ file(GLOB react_render_textlayourmanager_SRC CONFIGURE_DEPENDS platform/android/react/renderer/textlayoutmanager/*.cpp) add_library(react_render_textlayoutmanager - SHARED + STATIC ${react_render_textlayourmanager_SRC}) target_include_directories(react_render_textlayoutmanager diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt index a7b47e56945..acd92e01938 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options( -DLOG_TAG=\"Fabric\") file(GLOB react_render_uimanager_SRC CONFIGURE_DEPENDS *.cpp) -add_library(react_render_uimanager SHARED ${react_render_uimanager_SRC}) +add_library(react_render_uimanager STATIC ${react_render_uimanager_SRC}) target_include_directories(react_render_uimanager PUBLIC ${REACT_COMMON_DIR})