Files
MMKV/POSIX/demo/CMakeLists.txt
guoling acadaa53a1 Fix IV reuse in encrypted single-key updates
Append encrypted updates so existing compaction handles IV rotation and sync, avoiding a synchronous flush on every update.

Add regression tests. Profiled on iPhone.
2026-10-14 16:34:30 +08:00

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)