Skip to content

Commit 04caf03

Browse files
andrewdacenkofacebook-github-bot
authored andcommitted
Introduce react_native_android_dep
Summary: Changelog: [Internal] Introducing a way to include sources and deps via function that react_native_android_dep. This will help with Fantom OSS build. Differential Revision: D77146189
1 parent 7b7b538 commit 04caf03

File tree

15 files changed

+150
-41
lines changed

15 files changed

+150
-41
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Copyright (c) Meta Platforms, Inc. and affiliates.
2+
#
3+
# This source code is licensed under the MIT license found in the
4+
# LICENSE file in the root directory of this source tree.
5+
6+
cmake_minimum_required(VERSION 3.13)
7+
set(CMAKE_VERBOSE_MAKEFILE on)
8+
9+
# This function can be used to define a dependency for Android, with optional
10+
# fallback for cross platform.
11+
#
12+
# Usage:
13+
# react_native_android_dep(jsijni jsijni jsi)
14+
# react_native_android_dep(fabricjni fabricjni "")
15+
#
16+
# target_link_librarues(target_name ${jsijni} ${fabricjni})
17+
18+
macro(react_native_android_dep output_var name fallback)
19+
if(ANDROID)
20+
set(${output_var} ${name})
21+
else()
22+
set(${output_var} ${fallback})
23+
endif()
24+
set(${output_var} ${${output_var}} PARENT_SCOPE)
25+
endmacro()

packages/react-native/ReactCommon/hermes/executor/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

1112
file(GLOB_RECURSE hermes_executor_SRC CONFIGURE_DEPENDS *.cpp)
@@ -15,11 +16,13 @@ add_library(
1516
${hermes_executor_SRC}
1617
)
1718
target_include_directories(hermes_executor_common PUBLIC .)
19+
react_native_android_dep(reactnative reactnative "")
1820
target_link_libraries(hermes_executor_common
1921
hermes-engine::libhermes
2022
hermes_inspector_modern
2123
jsi
22-
reactnative
24+
jsireact
25+
${reactnative}
2326
)
2427

2528
target_compile_reactnative_options(hermes_executor_common PRIVATE)

packages/react-native/ReactCommon/hermes/inspector-modern/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

1112
file(GLOB hermesinspectormodern_SRC CONFIGURE_DEPENDS chrome/*.cpp)
@@ -25,7 +26,9 @@ if(${CMAKE_BUILD_TYPE} MATCHES Debug)
2526
endif()
2627

2728
target_include_directories(hermes_inspector_modern PUBLIC ${REACT_COMMON_DIR})
29+
react_native_android_dep(reactnative reactnative "")
2830
target_link_libraries(hermes_inspector_modern
2931
hermes-engine::libhermes
3032
jsi
31-
reactnative)
33+
jsinspector
34+
${reactnative})

packages/react-native/ReactCommon/jserrorhandler/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ add_library(
1515
${js_error_handler_SRC}
1616
)
1717
target_include_directories(jserrorhandler PUBLIC .)
18+
react_native_android_dep(marbufferjni marbufferjni "")
1819
target_link_libraries(jserrorhandler
1920
jsi
21+
callinvoker
2022
folly_runtime
21-
mapbufferjni
23+
${mapbufferjni}
2224
react_featureflags
2325
)
2426
target_compile_reactnative_options(jserrorhandler PRIVATE)

packages/react-native/ReactCommon/react/nativemodule/core/CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,25 @@ set(CMAKE_VERBOSE_MAKEFILE on)
88

99
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1010

11+
react_native_android_dep(platfrom_SRC platform/android/ReactCommon/*.cpp "")
1112
file(GLOB react_nativemodule_core_SRC CONFIGURE_DEPENDS
1213
ReactCommon/*.cpp
13-
platform/android/ReactCommon/*.cpp)
14+
${platfrom_SRC})
1415
add_library(react_nativemodule_core
1516
OBJECT
1617
${react_nativemodule_core_SRC})
1718

19+
react_native_android_dep(platform_DIR ${CMAKE_CURRENT_SOURCE_DIR}/platform/android/ "")
1820
target_include_directories(react_nativemodule_core
1921
PUBLIC
2022
${CMAKE_CURRENT_SOURCE_DIR}
21-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
23+
${platform_DIR}
2224
)
2325

26+
react_native_android_dep(fbjni fbjni "")
27+
react_native_android_dep(reactnativejni reactnativejni "")
2428
target_link_libraries(react_nativemodule_core
25-
fbjni
29+
${fbjni}
2630
folly_runtime
2731
glog
2832
jsi
@@ -31,6 +35,6 @@ target_link_libraries(react_nativemodule_core
3135
react_utils
3236
react_featureflags
3337
reactperflogger
34-
reactnativejni)
38+
${reactnativejni})
3539
target_compile_reactnative_options(react_nativemodule_core PRIVATE)
3640
target_compile_options(react_nativemodule_core PRIVATE -Wpedantic)

packages/react-native/ReactCommon/react/renderer/components/modal/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

12+
react_native_android_dep(platform_SRC
13+
platform/android/*.cpp
14+
platform/cxx/*.cpp)
1115
file(GLOB rrc_modal_SRC CONFIGURE_DEPENDS
1216
*.cpp
13-
platform/android/*.cpp)
17+
${platform_SRC})
1418

1519
add_library(rrc_modal STATIC ${rrc_modal_SRC})
1620

packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,25 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

11-
file(GLOB rrc_scrollview_SRC CONFIGURE_DEPENDS *.cpp platform/android/react/renderer/components/scrollview/*.cpp)
12+
react_native_android_dep(platfrom_SRC
13+
platform/android/react/renderer/components/scrollview/*.cpp
14+
platform/cxx/react/renderer/components/scrollview/*.cpp
15+
)
16+
file(GLOB rrc_scrollview_SRC CONFIGURE_DEPENDS *.cpp ${platform_SRC})
1217
add_library(rrc_scrollview STATIC ${rrc_scrollview_SRC})
1318

14-
target_include_directories(rrc_scrollview PUBLIC ${REACT_COMMON_DIR} . ${CMAKE_CURRENT_SOURCE_DIR}/platform/android/)
19+
react_native_android_dep(platfrom_DIR
20+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
21+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
22+
target_include_directories(rrc_scrollview PUBLIC ${REACT_COMMON_DIR} . ${platfrom_DIR})
1523

16-
target_include_directories(rrc_scrollview PRIVATE
17-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/react/renderer/components/scrollview/)
24+
react_native_android_dep(platform_DIR_PRIVATE
25+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/react/renderer/components/scrollview/
26+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/react/renderer/components/scrollview/)
27+
target_include_directories(rrc_scrollview PRIVATE ${platform_DIR_PRIVATE})
1828

1929
target_link_libraries(rrc_scrollview
2030
glog

packages/react-native/ReactCommon/react/renderer/components/text/CMakeLists.txt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,29 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

11-
file(GLOB rrc_text_SRC CONFIGURE_DEPENDS
12-
*.cpp
13-
platform/android/react/renderer/components/text/*.cpp)
12+
react_native_android_dep(platfrom_SRC
13+
platform/android/react/renderer/components/text/*.cpp
14+
platform/cxx/react/renderer/components/text/*.cpp
15+
)
16+
file(GLOB rrc_text_SRC CONFIGURE_DEPENDS *.cpp ${platfrom_SRC})
1417

1518
add_library(rrc_text OBJECT ${rrc_text_SRC})
1619

20+
react_native_android_dep(platform_DIR
21+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
22+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
1723
target_include_directories(rrc_text PUBLIC
1824
${REACT_COMMON_DIR}
19-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/)
25+
${platform_DIR})
2026

27+
react_native_android_dep(platform_DIR_PRIVATE
28+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/react/renderer/components/text/
29+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/react/renderer/components/text/)
2130
target_include_directories(rrc_text PRIVATE
22-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/react/renderer/components/text/)
31+
${platform_DIR_PRIVATE})
2332

2433
target_link_libraries(rrc_text
2534
glog

packages/react-native/ReactCommon/react/renderer/components/view/CMakeLists.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,23 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

12+
react_native_android_dep(platfrom_SRC
13+
platform/android/react/renderer/components/view/*.cpp
14+
platform/cxx/react/renderer/components/view/*.cpp
15+
)
1116
file(GLOB rrc_view_SRC CONFIGURE_DEPENDS
1217
*.cpp
13-
platform/android/react/renderer/components/view/*.cpp)
18+
${platfrom_SRC})
1419

1520
add_library(rrc_view OBJECT ${rrc_view_SRC})
1621

17-
target_include_directories(rrc_view
18-
PUBLIC
19-
${REACT_COMMON_DIR}
20-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
21-
)
22+
react_native_android_dep(platfrom_DIR
23+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
24+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
25+
target_include_directories(rrc_view PUBLIC ${REACT_COMMON_DIR} ${platfrom_DIR})
2226

2327
target_link_libraries(rrc_view
2428
folly_runtime

packages/react-native/ReactCommon/react/renderer/graphics/CMakeLists.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,28 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

11-
file(GLOB react_renderer_graphics_SRC CONFIGURE_DEPENDS *.cpp)
12+
react_native_android_dep(platform_SRC
13+
platform/android/react/renderer/graphics/*.cpp
14+
platform/cxx/react/renderer/graphics/*.cpp)
15+
file(GLOB react_renderer_graphics_SRC CONFIGURE_DEPENDS *.cpp ${platform_SRC})
1216
add_library(react_renderer_graphics OBJECT ${react_renderer_graphics_SRC})
1317

18+
react_native_android_dep(platform_DIR
19+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
20+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
1421
target_include_directories(react_renderer_graphics
1522
PUBLIC
1623
${REACT_COMMON_DIR}
17-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
24+
${platform_DIR}
1825
)
1926

27+
react_native_android_dep(fbjni fbjni "")
2028
target_link_libraries(react_renderer_graphics
2129
glog
22-
fbjni
30+
${fbjni}
2331
folly_runtime
2432
react_debug
2533
react_utils

packages/react-native/ReactCommon/react/renderer/imagemanager/CMakeLists.txt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,42 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

12+
react_native_android_dep(platform_SRC
13+
platform/android/react/renderer/imagemanager/*.cpp
14+
platform/cxx/react/renderer/imagemanager/*.cpp)
1115
file(GLOB react_renderer_imagemanager_SRC CONFIGURE_DEPENDS
1216
*.cpp
13-
platform/android/react/renderer/imagemanager/*.cpp)
17+
${platform_SRC})
1418

1519
add_library(react_renderer_imagemanager
1620
OBJECT
1721
${react_renderer_imagemanager_SRC})
1822

23+
react_native_android_dep(platform_DIR
24+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
25+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
1926
target_include_directories(react_renderer_imagemanager
2027
PUBLIC
2128
${REACT_COMMON_DIR}
22-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
29+
${platform_DIR}
2330
PRIVATE
2431
${CMAKE_CURRENT_SOURCE_DIR}
2532
)
2633

34+
react_native_android_dep(mapbufferjni mapbufferjni "")
35+
react_native_android_dep(reactnativejni reactnativejni "")
2736
target_link_libraries(react_renderer_imagemanager
2837
folly_runtime
29-
mapbufferjni
38+
${mapbufferjni}
3039
react_debug
3140
react_renderer_core
3241
react_renderer_debug
3342
react_renderer_graphics
3443
react_renderer_mounting
35-
reactnativejni
44+
${reactnativejni}
3645
yoga)
3746
target_compile_reactnative_options(react_renderer_imagemanager PRIVATE)
3847
target_compile_options(react_renderer_imagemanager PRIVATE -Wpedantic)

packages/react-native/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,38 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

12+
react_native_android_dep(platform_SRC
13+
platform/android/react/renderer/textlayoutmanager/*.cpp
14+
platform/cxx/react/renderer/textlayoutmanager/*.cpp)
1115
file(GLOB react_renderer_textlayourmanager_SRC CONFIGURE_DEPENDS
1216
*.cpp
13-
platform/android/react/renderer/textlayoutmanager/*.cpp)
17+
${platform_SRC})
1418

1519
add_library(react_renderer_textlayoutmanager
1620
OBJECT
1721
${react_renderer_textlayourmanager_SRC})
1822

23+
react_native_android_dep(platform_DIR
24+
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
25+
${CMAKE_CURRENT_SOURCE_DIR}/platform/cxx/)
1926
target_include_directories(react_renderer_textlayoutmanager
2027
PUBLIC
2128
.
2229
${REACT_COMMON_DIR}
23-
${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
30+
${platform_DIR}
2431
)
2532

33+
react_native_android_dep(fbjni fbjni "")
34+
react_native_android_dep(mapbufferjni mapbufferjni "")
35+
react_native_android_dep(reactnativejni reactnativejni "")
2636
target_link_libraries(react_renderer_textlayoutmanager
2737
glog
28-
fbjni
38+
${fbjni}
2939
folly_runtime
30-
mapbufferjni
40+
${mapbufferjni}
3141
react_debug
3242
react_renderer_attributedstring
3343
react_renderer_componentregistry
@@ -38,7 +48,7 @@ target_link_libraries(react_renderer_textlayoutmanager
3848
react_renderer_mounting
3949
react_renderer_telemetry
4050
react_utils
41-
reactnativejni
51+
${reactnativejni}
4252
yoga
4353
)
4454
target_compile_reactnative_options(react_renderer_textlayoutmanager PRIVATE)

packages/react-native/ReactCommon/react/runtime/CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
cmake_minimum_required(VERSION 3.13)
77
set(CMAKE_VERBOSE_MAKEFILE on)
88

9+
include(${REACT_COMMON_DIR}/cmake-utils/react-native-android-dep.cmake)
910
include(${REACT_COMMON_DIR}/cmake-utils/react-native-flags.cmake)
1011

1112
file(GLOB bridgeless_SRC "*.cpp")
@@ -18,12 +19,16 @@ target_compile_reactnative_options(bridgeless PRIVATE)
1819
target_compile_options(bridgeless PRIVATE $<$<CONFIG:Debug>:-DHERMES_ENABLE_DEBUGGER=1>)
1920
target_include_directories(bridgeless PUBLIC .)
2021

22+
react_native_android_dep(fabricjni fabricjni "")
23+
react_native_android_dep(react_featureflagsjni react_featureflagsjni react_featureflags)
24+
react_native_android_dep(turbomodulejsijni turbomodulejsijni "")
25+
2126
target_link_libraries(
2227
bridgeless
2328
jserrorhandler
24-
fabricjni
25-
react_featureflagsjni
26-
turbomodulejsijni
29+
${fabricjni}
30+
${react_featureflagsjni}
31+
${turbomodulejsijni}
2732
jsi
2833
jsitooling
2934
jsireact

0 commit comments

Comments
 (0)