mirror of
https://github.com/Tencent/MMKV.git
synced 2026-10-16 20:21:12 +08:00
acadaa53a1
Append encrypted updates so existing compaction handles IV rotation and sync, avoiding a synchronous flush on every update. Add regression tests. Profiled on iPhone.
107 lines
3.2 KiB
CMake
107 lines
3.2 KiB
CMake
#
|
|
# Tencent is pleased to support the open source community by making
|
|
# MMKV available.
|
|
#
|
|
# Copyright (C) 2019 THL A29 Limited, a Tencent company.
|
|
# All rights reserved.
|
|
#
|
|
# Licensed under the BSD 3-Clause License (the "License"); you may not use
|
|
# this file except in compliance with the License. You may obtain a copy of
|
|
# the License at
|
|
#
|
|
# https://opensource.org/licenses/BSD-3-Clause
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
cmake_minimum_required(VERSION 3.10.0)
|
|
|
|
project(demo)
|
|
|
|
IF(APPLE)
|
|
add_compile_definitions(FORCE_POSIX)
|
|
ENDIF()
|
|
|
|
add_executable(demo
|
|
demo.cpp)
|
|
target_link_libraries(demo
|
|
mmkv)
|
|
set_target_properties(demo PROPERTIES
|
|
CXX_STANDARD 20
|
|
)
|
|
|
|
add_executable(process
|
|
process.cpp)
|
|
target_link_libraries(process
|
|
mmkv)
|
|
set_target_properties(process PROPERTIES
|
|
CXX_STANDARD 17
|
|
)
|
|
|
|
add_executable(TestInterProcessLock
|
|
TestInterProcessLock.cpp)
|
|
target_link_libraries(TestInterProcessLock
|
|
mmkv)
|
|
set_target_properties(TestInterProcessLock PROPERTIES
|
|
CXX_STANDARD 17
|
|
)
|
|
|
|
add_executable(UnitTest
|
|
UnitTest.cpp)
|
|
target_include_directories(UnitTest PRIVATE
|
|
../../Core)
|
|
target_link_libraries(UnitTest
|
|
mmkv)
|
|
set_target_properties(UnitTest PROPERTIES
|
|
CXX_STANDARD 20
|
|
)
|
|
|
|
add_executable(TestThreadLock
|
|
TestThreadLock.cpp)
|
|
target_include_directories(TestThreadLock PRIVATE
|
|
../../Core)
|
|
target_link_libraries(TestThreadLock
|
|
mmkv)
|
|
set_target_properties(TestThreadLock PROPERTIES
|
|
CXX_STANDARD 17
|
|
)
|
|
if(BUILD_TESTING)
|
|
add_test(NAME TestThreadLock COMMAND TestThreadLock)
|
|
if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
add_executable(TestFileCopy TestFileCopy.cpp)
|
|
target_include_directories(TestFileCopy PRIVATE ../../Core)
|
|
target_link_libraries(TestFileCopy core ${CMAKE_DL_LIBS})
|
|
set_target_properties(TestFileCopy PROPERTIES CXX_STANDARD 20)
|
|
add_test(NAME TestFileCopy COMMAND TestFileCopy)
|
|
add_executable(TestRemoveStorage TestRemoveStorage.cpp)
|
|
target_include_directories(TestRemoveStorage PRIVATE ../../Core)
|
|
target_link_libraries(TestRemoveStorage core pthread ${CMAKE_DL_LIBS})
|
|
set_target_properties(TestRemoveStorage PROPERTIES CXX_STANDARD 20)
|
|
add_test(NAME TestRemoveStorage COMMAND TestRemoveStorage)
|
|
add_executable(TestSingleKeyIV TestSingleKeyIV.cpp)
|
|
target_include_directories(TestSingleKeyIV PRIVATE ../../Core)
|
|
target_link_libraries(TestSingleKeyIV core pthread)
|
|
set_target_properties(TestSingleKeyIV PROPERTIES CXX_STANDARD 20)
|
|
add_test(NAME TestSingleKeyIV COMMAND TestSingleKeyIV)
|
|
endif()
|
|
endif()
|
|
|
|
add_executable(demo_c
|
|
demo_c.c)
|
|
target_link_libraries(demo_c
|
|
mmkv stdc++)
|
|
set_target_properties(demo_c PROPERTIES
|
|
C_STANDARD 99
|
|
)
|
|
|
|
add_dependencies(demo
|
|
process
|
|
TestInterProcessLock
|
|
TestThreadLock
|
|
UnitTest
|
|
demo_c)
|