Skip to content

Commit 8b1f049

Browse files
timbocolefacebook-github-bot
authored andcommitted
fix: Prioritise local cpp (use default as fallback) (#48340)
Summary: #47379 removed local cpp sources from the sources being built with the app. This resulted in a local `android/app/src/main/jni/OnLoad.cpp` file being ignored at build time. I have therefore added logic to the cmake file to prioritise local `cpp` files and fallback to `${REACT_ANDROID_DIR}/cmake-utils/default-app-setup/*.cpp` if none exist. This resolves #48298 ## Changelog: [ANDROID] [FIXED] - Prioritise local OnLoad.cpp, falling back to default-app-setup Pull Request resolved: #48340 Test Plan: - Followed the https://reactnative.dev/docs/the-new-architecture/pure-cxx-modules guide (which was broken > 0.76.1) - Applied the patch to the reproduction repository linked to #47352 to ensure no regression Reviewed By: cipolleschi Differential Revision: D67736012 Pulled By: cortinico fbshipit-source-id: 87f6b8edf1613682585a94e1d1b3e6b4b792e4f5
1 parent a3c8e21 commit 8b1f049

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,19 @@ if (PROJECT_ROOT_DIR)
3939
# variable is defined if user need to access it.
4040
endif ()
4141

42-
file(GLOB input_SRC CONFIGURE_DEPENDS
43-
${REACT_ANDROID_DIR}/cmake-utils/default-app-setup/*.cpp
44-
${BUILD_DIR}/generated/autolinking/src/main/jni/*.cpp)
42+
file(GLOB override_cpp_SRC CONFIGURE_DEPENDS *.cpp)
43+
# We check if the user is providing a custom OnLoad.cpp file. If so, we pick that
44+
# for compilation. Otherwise we fallback to using the `default-app-setup/OnLoad.cpp`
45+
# file instead.
46+
if(override_cpp_SRC)
47+
file(GLOB input_SRC CONFIGURE_DEPENDS
48+
*.cpp
49+
${BUILD_DIR}/generated/autolinking/src/main/jni/*.cpp)
50+
else()
51+
file(GLOB input_SRC CONFIGURE_DEPENDS
52+
${REACT_ANDROID_DIR}/cmake-utils/default-app-setup/*.cpp
53+
${BUILD_DIR}/generated/autolinking/src/main/jni/*.cpp)
54+
endif()
4555

4656
add_library(${CMAKE_PROJECT_NAME} SHARED ${input_SRC})
4757

0 commit comments

Comments
 (0)