diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake
index 056988bb9f..60da28f6a6 100644
--- a/cmake/configs/default.cmake
+++ b/cmake/configs/default.cmake
@@ -75,6 +75,7 @@ endif()
hunter_default_version(HalideIR VERSION 0.0-32057b5-p0)
hunter_default_version(HastyNoise VERSION 0.8.3)
+hunter_default_version(HiRedis VERSION 1.1.0)
hunter_default_version(ICU VERSION 63.1-p5)
hunter_default_version(IF97 VERSION 2.1.2)
hunter_default_version(Igloo VERSION 1.1.1-hunter)
@@ -142,6 +143,7 @@ hunter_default_version(QtQmlManager VERSION 1.0.0)
hunter_default_version(Qwt VERSION 6.1-p3)
hunter_default_version(RapidJSON VERSION 1.1.0-b557259-p0)
hunter_default_version(RapidXML VERSION 1.13)
+hunter_default_version(Redis++ VERSION 1.3.6)
hunter_default_version(RedisClient VERSION 0.6.1-p1)
hunter_default_version(SDL2 VERSION 2.24.0)
hunter_default_version(SDL_image VERSION 2.0.5-p0)
@@ -374,7 +376,7 @@ hunter_default_version(libscrypt VERSION 1.21-p1)
hunter_default_version(libsodium VERSION 1.0.16-p0)
hunter_default_version(libunibreak VERSION 4.0)
hunter_default_version(libusb VERSION 1.0.23)
-hunter_default_version(libuv VERSION 1.42.0-p0)
+hunter_default_version(libuv VERSION 1.44.2)
hunter_default_version(libxdg-basedir VERSION 1.2.3)
hunter_default_version(libxml2 VERSION 2.9.7-p0)
hunter_default_version(libyuv VERSION 1514-p3)
diff --git a/cmake/projects/HiRedis/ci/matrix.json b/cmake/projects/HiRedis/ci/matrix.json
new file mode 100644
index 0000000000..fc992308c0
--- /dev/null
+++ b/cmake/projects/HiRedis/ci/matrix.json
@@ -0,0 +1,17 @@
+[
+ { "example": "HiRedis", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "sanitize-address-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "sanitize-leak-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "sanitize-thread-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "osx-10-15-make-cxx14", "os": "macos-10.15", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" },
+ { "example": "HiRedis", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+ { "example": "HiRedis", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+ { "example": "HiRedis", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+ { "example": "HiRedis", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+ { "example": "HiRedis", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }
+]
+
\ No newline at end of file
diff --git a/cmake/projects/HiRedis/hunter.cmake b/cmake/projects/HiRedis/hunter.cmake
new file mode 100644
index 0000000000..ab05f44902
--- /dev/null
+++ b/cmake/projects/HiRedis/hunter.cmake
@@ -0,0 +1,26 @@
+# !!! DO NOT PLACE HEADER GUARDS HERE !!!
+
+include(hunter_add_version)
+include(hunter_cacheable)
+include(hunter_cmake_args)
+include(hunter_download)
+include(hunter_pick_scheme)
+include(hunter_report_broken_package)
+
+hunter_add_version(
+ PACKAGE_NAME
+ HiRedis
+ VERSION
+ 1.1.0
+ URL
+ "https://github.com/redis/hiredis/archive/refs/tags/v1.1.0.tar.gz"
+ SHA1
+ 6b3bae35134d2c0b3b1d884e157cfb03c90412da
+)
+
+hunter_pick_scheme(DEFAULT url_sha1_cmake)
+
+hunter_cmake_args(HiRedis CMAKE_ARGS DISABLE_TESTS=ON)
+
+hunter_cacheable(HiRedis)
+hunter_download(PACKAGE_NAME HiRedis)
diff --git a/cmake/projects/Redis++/ci/matrix.json b/cmake/projects/Redis++/ci/matrix.json
new file mode 100644
index 0000000000..554a17e3f2
--- /dev/null
+++ b/cmake/projects/Redis++/ci/matrix.json
@@ -0,0 +1,16 @@
+[
+{ "example": "Redis++", "toolchain": "clang-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "gcc-7-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "gcc-8-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "gcc-9-cxx17-fpic", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "sanitize-address-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "sanitize-leak-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "sanitize-thread-cxx17", "os": "ubuntu-20.04", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "osx-10-15-cxx17", "os": "macos-10.15", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "osx-12-3-arch-universal2-cxx17", "os": "macos-12", "python": "3.8", "script": "build.sh" },
+{ "example": "Redis++", "toolchain": "ninja-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+{ "example": "Redis++", "toolchain": "nmake-vs-16-2019-win64-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+{ "example": "Redis++", "toolchain": "vs-16-2019-win64-sdk-10-0-18362-0-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+{ "example": "Redis++", "toolchain": "mingw-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" },
+{ "example": "Redis++", "toolchain": "msys-cxx17", "os": "windows-2019", "python": "3.8", "script": "build.cmd" }
+]
diff --git a/cmake/projects/Redis++/hunter.cmake b/cmake/projects/Redis++/hunter.cmake
new file mode 100644
index 0000000000..ba058f2ec7
--- /dev/null
+++ b/cmake/projects/Redis++/hunter.cmake
@@ -0,0 +1,26 @@
+# !!! DO NOT PLACE HEADER GUARDS HERE !!!
+
+include(hunter_add_version)
+include(hunter_cacheable)
+include(hunter_cmake_args)
+include(hunter_download)
+include(hunter_pick_scheme)
+
+hunter_add_version(
+ PACKAGE_NAME
+ Redis++
+ VERSION
+ 1.3.6
+ URL
+ "https://github.com/sewenew/redis-plus-plus/archive/refs/tags/1.3.6.tar.gz"
+ SHA1
+ 650a9fc65c958119f5360ae7dc2341487a29ac6d
+)
+
+hunter_pick_scheme(DEFAULT url_sha1_cmake)
+
+hunter_cmake_args(Redis++ CMAKE_ARGS REDIS_PLUS_PLUS_BUILD_ASYNC=libuv
+ REDIS_PLUS_PLUS_BUILD_TEST=OFF CMAKE_PREFIX_PATH=${HUNTER_INSTALL_PREFIX})
+
+hunter_cacheable(Redis++)
+hunter_download(PACKAGE_NAME Redis++)
diff --git a/cmake/projects/libuv/hunter.cmake b/cmake/projects/libuv/hunter.cmake
index bbc8c45541..aff0ed90d1 100644
--- a/cmake/projects/libuv/hunter.cmake
+++ b/cmake/projects/libuv/hunter.cmake
@@ -96,6 +96,17 @@ hunter_add_version(
4b334b174f4abf4a7f41656e1cfe3c60ad9382ca
)
+hunter_add_version(
+ PACKAGE_NAME
+ libuv
+ VERSION
+ 1.44.2
+ URL
+ "https://github.com/libuv/libuv/archive/refs/tags/v1.44.2.tar.gz"
+ SHA1
+ 0ea9726936755088e9c01d30caacfca1a384f3bb
+)
+
hunter_pick_scheme(DEFAULT url_sha1_cmake)
hunter_cmake_args(libuv CMAKE_ARGS BUILD_TESTING=OFF)
diff --git a/docs/packages/pkg/HiRedis.rst b/docs/packages/pkg/HiRedis.rst
new file mode 100644
index 0000000000..c3ac48d379
--- /dev/null
+++ b/docs/packages/pkg/HiRedis.rst
@@ -0,0 +1,22 @@
+.. spelling::
+
+ HiRedis
+ hiredis
+
+.. index:: HiRedis
+
+.. _pkg.HiRedis:
+
+HiRedis
+=======
+
+- `Official `__
+- `Example
+ CMakeLists.txt `__
+- Added by `Ronny Nowak `__
+
+.. code-block:: cmake
+
+ hunter_add_package(HiRedis)
+ find_package(HiRedis CONFIG REQUIRED)
+ target_link_libraries(... hiredis::hiredis_static)
\ No newline at end of file
diff --git a/docs/packages/pkg/Redis++.rst b/docs/packages/pkg/Redis++.rst
new file mode 100644
index 0000000000..17b60a3df6
--- /dev/null
+++ b/docs/packages/pkg/Redis++.rst
@@ -0,0 +1,29 @@
+.. spelling::
+
+ Redis++
+ redis
+
+.. index:: Redis++
+
+.. _pkg.Redis++:
+
+Redis++
+=======
+
+- `Official `__
+- `Example
+ CMakeLists.txt `__
+- Added by `Ronny Nowak `__
+
+.. code-block:: cmake
+
+ hunter_add_package(HiRedis)
+ find_package(HiRedis CONFIG REQUIRED)
+
+ hunter_add_package(libuv)
+ find_package(libuv CONFIG REQUIRED)
+
+ hunter_add_package(Redis++)
+ find_package(Redis++ CONFIG REQUIRED)
+
+ target_link_libraries(... redis++::redis++_static uv)
\ No newline at end of file
diff --git a/docs/packages/pkg/libuv.rst b/docs/packages/pkg/libuv.rst
index 3650cb0160..e17caceca3 100644
--- a/docs/packages/pkg/libuv.rst
+++ b/docs/packages/pkg/libuv.rst
@@ -22,7 +22,7 @@ libuv
hunter_add_package(libuv)
find_package(libuv CONFIG REQUIRED)
- target_link_libraries(... libuv::uv)
+ target_link_libraries(... uv)
uv_ssize_t
~~~~~~~~~~
diff --git a/examples/HiRedis/CMakeLists.txt b/examples/HiRedis/CMakeLists.txt
new file mode 100644
index 0000000000..32e84a7581
--- /dev/null
+++ b/examples/HiRedis/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Copyright (c) 2022, Ronny Nowak
+# All rights reserved.
+
+cmake_minimum_required(VERSION 3.0)
+
+# Emulate HunterGate:
+# * https://github.com/hunter-packages/gate
+include("../common.cmake")
+
+project(download-hiredis)
+
+# DOCUMENTATION_START {
+hunter_add_package(HiRedis)
+find_package(HiRedis CONFIG REQUIRED)
+
+add_executable(example main.cpp)
+target_link_libraries(example PUBLIC hiredis::hiredis_static)
+# DOCUMENTATION_END }
+
+# Test double library creation
+find_package(HiRedis CONFIG REQUIRED)
diff --git a/examples/HiRedis/main.cpp b/examples/HiRedis/main.cpp
new file mode 100644
index 0000000000..297fd9da28
--- /dev/null
+++ b/examples/HiRedis/main.cpp
@@ -0,0 +1,9 @@
+#include
+
+int main(int argc, char** argv) {
+ redisContext *c = nullptr;
+ redisReply *reply = nullptr;
+ redisOptions options = { 0 };
+ REDIS_OPTIONS_SET_TCP(&options, "127.0.0.1", 6379);
+ return 0;
+}
diff --git a/examples/Redis++/CMakeLists.txt b/examples/Redis++/CMakeLists.txt
new file mode 100644
index 0000000000..00243737aa
--- /dev/null
+++ b/examples/Redis++/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Copyright (c) 2022, Ronny Nowak
+# All rights reserved.
+
+cmake_minimum_required(VERSION 3.0)
+
+# Emulate HunterGate:
+# * https://github.com/hunter-packages/gate
+include("../common.cmake")
+
+project(download-redis++)
+
+# DOCUMENTATION_START {
+hunter_add_package(HiRedis)
+find_package(HiRedis CONFIG REQUIRED)
+
+hunter_add_package(libuv)
+find_package(libuv CONFIG REQUIRED)
+
+hunter_add_package(Redis++)
+find_package(Redis++ CONFIG REQUIRED)
+
+add_executable(example main.cpp)
+target_link_libraries(example PUBLIC redis++::redis++_static uv)
+# DOCUMENTATION_END }
+
+# Test double library creation
+find_package(Redis++ CONFIG REQUIRED)
diff --git a/examples/Redis++/main.cpp b/examples/Redis++/main.cpp
new file mode 100644
index 0000000000..429ddf5742
--- /dev/null
+++ b/examples/Redis++/main.cpp
@@ -0,0 +1,20 @@
+#include
+#include
+
+using namespace sw::redis;
+
+int main(int argc, char** argv) {
+ {
+ auto r = Redis("tcp://127.0.0.1");
+ auto v = r.command>("config", "get", "*");
+ }
+ {
+ ConnectionOptions opts;
+ opts.host = "127.0.0.1";
+ opts.port = 6379;
+ ConnectionPoolOptions pool_opts;
+ pool_opts.size = 3;
+ auto async_redis = AsyncRedis(opts, pool_opts);
+ }
+ return 0;
+}
diff --git a/examples/libuv/CMakeLists.txt b/examples/libuv/CMakeLists.txt
index 1c85f589ba..7f0205d950 100644
--- a/examples/libuv/CMakeLists.txt
+++ b/examples/libuv/CMakeLists.txt
@@ -22,7 +22,7 @@ message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
find_package(libuv CONFIG REQUIRED)
add_executable(example example.c)
-target_link_libraries(example libuv::uv)
+target_link_libraries(example uv)
enable_testing()