react-native-update
Version:
react-native hot update
71 lines (62 loc) • 2.29 kB
Plain Text
cmake_minimum_required(VERSION 3.13)
project(rnupdate LANGUAGES C CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(PUSHY_MODULE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
set(PUSHY_ABI ${CMAKE_OHOS_ARCH_ABI})
if(NOT PUSHY_ABI)
set(PUSHY_ABI ${OHOS_ARCH})
endif()
set(PREBUILT_RNUPDATE_PATH ${PUSHY_MODULE_ROOT}/libs/${PUSHY_ABI}/librnupdate.so)
set(CMAKE_VERBOSE_MAKEFILE on)
set(REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../)
set(STAGED_NATIVE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android-generated)
set(ANDROID_JNI_DIR ${REPO_ROOT}/android/jni)
if(NOT EXISTS ${ANDROID_JNI_DIR}/hpatch.c)
set(ANDROID_JNI_DIR ${STAGED_NATIVE_DIR}/jni)
endif()
set(PATCH_CORE_DIR ${REPO_ROOT}/cpp/patch_core)
if(NOT EXISTS ${PATCH_CORE_DIR}/patch_core.cpp)
set(PATCH_CORE_DIR ${STAGED_NATIVE_DIR}/patch_core)
endif()
if(EXISTS ${PREBUILT_RNUPDATE_PATH})
add_library(rnupdate SHARED IMPORTED GLOBAL)
set_target_properties(rnupdate PROPERTIES IMPORTED_LOCATION ${PREBUILT_RNUPDATE_PATH})
else()
# When building the HAR itself, native sources are compiled from the repo checkout.
set(HDIFFPATCH_DIR ${ANDROID_JNI_DIR}/HDiffPatch)
set(LZMA_DIR ${ANDROID_JNI_DIR}/lzma)
set(HDP_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/pushy.cpp
${PATCH_CORE_DIR}/archive_patch_core.cpp
${PATCH_CORE_DIR}/patch_core.cpp
${PATCH_CORE_DIR}/state_core.cpp
${ANDROID_JNI_DIR}/hpatch.c
${HDIFFPATCH_DIR}/libHDiffPatch/HPatch/patch.c
${HDIFFPATCH_DIR}/file_for_patch.c
${LZMA_DIR}/C/LzmaDec.c
${LZMA_DIR}/C/Lzma2Dec.c
)
add_library(rnupdate SHARED
${HDP_SOURCES}
)
target_include_directories(rnupdate PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${PATCH_CORE_DIR}
${ANDROID_JNI_DIR}
${HDIFFPATCH_DIR}
${HDIFFPATCH_DIR}/libHDiffPatch/HPatch
${LZMA_DIR}/C
)
target_link_libraries(rnupdate PUBLIC
libace_napi.z.so
)
endif()
if(TARGET rnoh)
add_library(rnoh_pushy SHARED
${CMAKE_CURRENT_SOURCE_DIR}/PushyTurboModule.cpp
)
target_include_directories(rnoh_pushy PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(rnoh_pushy PUBLIC rnoh)
endif()