mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
ef0392b7d7
Summary: This is the companion PR of https://github.com/react-native-community/cli/pull/1630 It extends the `ReactNative-application.cmake` file with instructions to pickup the autolinked libraries. ## Changelog [Internal] [Changed] - Extend the RN Application.cmake file to support Android autolinking Pull Request resolved: https://github.com/facebook/react-native/pull/34082 Test Plan: Tested locally as we don't have a way to test autolinking on CI. Reviewed By: cipolleschi Differential Revision: D37463203 Pulled By: cortinico fbshipit-source-id: 0b28e7f214c265ebfec4ccc59ae321f682299cf8
57 lines
2.1 KiB
CMake
57 lines
2.1 KiB
CMake
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
# This CMake file takes care of creating everything you need to build and link
|
|
# your C++ source code in a React Native Application for Android.
|
|
# You just need to call `project(<my_project_name>)` and import this file.
|
|
# Specifically this file will:
|
|
# - Take care of creating a shared library called as your project
|
|
# - Take care of setting the correct compile options
|
|
# - Include all the pre-built libraries in your build graph
|
|
# - Link your library against those prebuilt libraries so you can access JSI, Fabric, etc.
|
|
# - Link your library against any autolinked library.
|
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
|
|
include(${REACT_ANDROID_DIR}/cmake-utils/Android-prebuilt.cmake)
|
|
|
|
file(GLOB input_SRC CONFIGURE_DEPENDS
|
|
*.cpp
|
|
${PROJECT_BUILD_DIR}/generated/rncli/src/main/jni/*.cpp)
|
|
|
|
add_library(${CMAKE_PROJECT_NAME} SHARED ${input_SRC})
|
|
|
|
target_include_directories(${CMAKE_PROJECT_NAME}
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${PROJECT_BUILD_DIR}/generated/rncli/src/main/jni)
|
|
|
|
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -Wall -Werror -fexceptions -frtti -std=c++17 -DWITH_INSPECTOR=1 -DLOG_TAG=\"ReactNative\")
|
|
|
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
|
fabricjni
|
|
fbjni
|
|
folly_runtime
|
|
glog
|
|
jsi
|
|
react_codegen_rncore
|
|
react_debug
|
|
react_nativemodule_core
|
|
react_render_componentregistry
|
|
react_render_core
|
|
react_render_debug
|
|
react_render_graphics
|
|
rrc_view
|
|
runtimeexecutor
|
|
turbomodulejsijni
|
|
yoga)
|
|
|
|
# If project is on RN CLI v9, then we can use the following lines to link against the autolinked 3rd party libraries.
|
|
if(EXISTS ${PROJECT_BUILD_DIR}/generated/rncli/src/main/jni/Android-rncli.cmake)
|
|
include(${PROJECT_BUILD_DIR}/generated/rncli/src/main/jni/Android-rncli.cmake)
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} ${AUTOLINKED_LIBRARIES})
|
|
endif()
|