react-native-mmkv
Version:
⚡️ The fastest key/value storage for React Native.
48 lines (38 loc) • 1.22 kB
Plain Text
project(NitroMmkv)
cmake_minimum_required(VERSION 3.9.0)
set (PACKAGE_NAME NitroMmkv)
set (CMAKE_VERBOSE_MAKEFILE ON)
set (CMAKE_CXX_STANDARD 20)
# Optionally configure MMKV log level (passed from Gradle as -DMMKV_LOG_LEVEL=<0-4>)
if(DEFINED MMKV_LOG_LEVEL)
add_definitions(-DMMKV_LOG_LEVEL=${MMKV_LOG_LEVEL})
endif()
# Find all C++ files (shared and platform specifics)
file(GLOB_RECURSE shared_files RELATIVE ${CMAKE_SOURCE_DIR}
"../cpp/**.cpp"
)
file(GLOB_RECURSE android_files RELATIVE ${CMAKE_SOURCE_DIR}
"src/main/cpp/**.cpp"
)
# Define C++ library and add all sources
add_library(${PACKAGE_NAME} SHARED
${shared_files}
${android_files}
)
# Find MMKV prefab package (from mmkv-shared gradle dependency)
find_package(mmkv REQUIRED CONFIG)
# Add Nitrogen specs :)
include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroMmkv+autolinking.cmake)
# Set up local includes
include_directories(
"src/main/cpp"
"../cpp"
)
find_library(LOG_LIB log)
# Link all libraries together
target_link_libraries(
${PACKAGE_NAME}
${LOG_LIB}
mmkv::mmkv # <-- MMKV core
android # <-- Android core
)