1
0
Fork 0
forked from fun/fun

Added a Redis/Valkey extension named redis. (0.42.0)

This commit is contained in:
Johannes Findeisen 2026-06-03 21:48:45 +02:00
commit cbb81c0b93
28 changed files with 798 additions and 15 deletions

View file

@ -21,6 +21,7 @@ include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCSC.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/REPL.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/SQLITE.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/XML2.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/REDIS.cmake)
# Summary of extension toggles
message(STATUS "---- Fun extension summary ----")
@ -34,4 +35,5 @@ _fun_print_feature("PCRE2 (FUN_WITH_PCRE2)" FUN_WITH_PCRE2)
_fun_print_feature("PCSC-Lite (FUN_WITH_PCSC)" FUN_WITH_PCSC)
_fun_print_feature("REPL (FUN_WITH_REPL)" FUN_WITH_REPL)
_fun_print_feature("SQLite (FUN_WITH_SQLITE)" FUN_WITH_SQLITE)
_fun_print_feature("Redis (FUN_WITH_REDIS)" FUN_WITH_REDIS)
message(STATUS "--------------------------------")

View file

@ -0,0 +1,22 @@
# Redis (hiredis)
option(FUN_WITH_REDIS "Enable Redis (hiredis) support" ON)
set(HIREDIS_INCLUDE_DIRS "")
set(HIREDIS_LINK_LIBS "")
if(FUN_WITH_REDIS)
add_definitions(-DFUN_WITH_REDIS)
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(HIREDIS QUIET hiredis)
endif()
if(HIREDIS_FOUND)
list(APPEND HIREDIS_INCLUDE_DIRS ${HIREDIS_INCLUDE_DIRS} ${HIREDIS_INCLUDE_DIRS})
list(APPEND HIREDIS_LINK_LIBS ${HIREDIS_LINK_LIBS} ${HIREDIS_LIBRARIES})
else()
find_library(HIREDIS_LIB hiredis)
if(HIREDIS_LIB)
list(APPEND HIREDIS_LINK_LIBS ${HIREDIS_LIB})
else()
message(FATAL_ERROR "hiredis not found. Install hiredis (dev headers) or disable FUN_WITH_REDIS.")
endif()
endif()
endif()

View file

@ -48,7 +48,8 @@ foreach(var_pair
LIBSQL
LIBXML2
OPENSSL
KCGI)
KCGI
HIREDIS)
if(${var_pair}_INCLUDE_DIRS)
target_include_directories(fun_core PRIVATE ${${var_pair}_INCLUDE_DIRS})
endif()
@ -94,6 +95,9 @@ if(FUN_WITH_SQLITE)
target_compile_definitions(fun_core PUBLIC FUN_WITH_SQLITE=1)
endif()
if(FUN_WITH_REDIS)
target_compile_definitions(fun_core PUBLIC FUN_WITH_REDIS=1)
endif()
if(FUN_WITH_OPENSSL)
target_compile_definitions(fun_core PUBLIC FUN_WITH_OPENSSL=1)