summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2021-12-22Update CMakeLists.txt for more portability (#1005)Eric Deng
add alias hiredis::hiredis and hiredis::hiredis_static so when this project is FetchContent, it behave the same as find_package-ed. e.g. ``` find_package(hiredis 1.0.2 QUIET) if (NOT hiredis_FOUND) FetchContent_Declare( hiredis GIT_REPOSITORY https://github.com/redis/hiredis.git GIT_TAG v1.0.2 ) FetchContent_MakeAvailable(hiredis) endif () # later target_link_libraries(target **hiredis::hiredis**) #can always use hiredis::hiredis to ref to this project. no matter find_package or FetchContent ``` this is actually sort of best practice when making a CMake lib.
2021-12-16FreeBSD build fixes + CI (#1026)Michael Grunder
* BSD linkage fix proposal * Touch up the Makefile to fix BSD builds Fixes #984 * Add a build in FreeBSD to GitHub Actions Lots of people use hiredis in FreeBSD so this should reduce some pain moving forward. Co-authored-by: David Carlier <devnexen@gmail.com>
2021-10-26Add build options for enabling async testsBjörn Svensson
Asynchronous testcases that requires the event library `libevent` can be built and enabled by using the added build flags: - ENABLE_ASYNC_TESTS when using CMake - TEST_ASYNC when using Make The async tests are disabled by default to avoid adding new requirements, but the testcases are built and run in CI.
2021-10-09Remove extra comma from cmake var.Tongliang Liao
Or it'll be treated as part of the var name.
2020-09-09add pdb files to packages for MSVC buildsAlessio M
2020-09-09Add d suffix to debug libraries so that can packaged together with optimized ↵Alessio M
builds (Release, RelWithDebInfo, etc)
2020-09-09Enable position-independent codeAlessio M
2020-09-07Remove whitespacemichael-grunder
2020-09-07fixed issue with unit test linking on windows with SSLAlessio M
2020-09-04Merge branch 'master' of github.com:redis/hiredisAlessio M
2020-08-28Explicitly set c99 in CMakemichael-grunder
See #869
2020-07-30Remove extra whitespace (#858)Michael Grunder
2020-07-29Move SSL management to a distinct private pointer. (#855)Michael Grunder
We need to allow our users to use redisContext->privdata as context for any RESP3 PUSH messages, which means we can't use it for managing SSL connections. Bulletpoints: * Create a secondary redisContext member for internal use only called privctx and rename the redisContextFuncs->free_privdata accordingly. * Adds a `free_privdata` function pointer so the user can tie allocated memory to the lifetime of a redisContext (like they can already do with redisAsyncContext) * Enables SSL tests in .travis.yml
2020-07-22Add static library target and cpack supportmasariello
2020-05-22Allow users to replace allocator and handle OOM everywhere. (#800)Michael Grunder
* Adds an indirection to every allocation/deallocation to allow users to plug in ones of their choosing (use custom functions, jemalloc, etc). * Gracefully handle OOM everywhere in hiredis. This should make it possible for users of the library to have more flexibility in how they handle such situations. * Changes `redisReaderTask->elements` from an `int` to a `long long` to prevent a possible overflow when transferring the task elements into a `redisReply`. * Adds a configurable `max elements` member to `redisReader` that defaults to 2^32 - 1. This can be set to "unlimited" by setting the value to zero.
2020-04-13Fix USE_SSL=1 make/cmake on OSX and CMake tests (#789)Michael Grunder
* Fix linker problems when building with SSL enabled on OSX * Corrects `HIREDIS_SSL=ON` to `USE_SSL=ON` so we test building with SSL enabled on travis.
2020-04-09Added CMake package config and fixed hiredis_ssl on Windows (#783)Michael Grunder
* Add CMake package configuration so hiredis can be more easily included in other projects. * Fixes hiredis_ssl such that it compiles and works in windows Co-authored-by: nrivera <nrivera@blizzard.com> Co-authored-by: Nick <heronr1@gmail.com>
2020-04-07CMake: Set hiredis_ssl shared object version.Yossi Gottlieb
2020-04-02Win32 tests and timeout fix (#776)Michael Grunder
Unit tests in Windows and a Windows timeout fix This commit gets our unit tests compiling and running on Windows as well as removes a duplicated `timeval` -> `DWORD` conversion logic in sockcompat.c There are minor differences in behavior between Linux and Windows to note: 1. In Windows, opening a non-existent hangs forever in WSAPoll whereas it correctly returns with a "Connection refused" error on Linux. For that reason, I simply skip this test in Windows. It may be related to this known issue: https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/ 2. Timeouts are handled slightly differently in Windows and Linux. In Linux, we intentionally set REDIS_ERR_IO for connection timeouts whereas in Windows we set REDIS_ERR_TIMEOUT. It may be prudent to fix this discrepancy although there are almost certainly users relying on the current behavior.
2020-02-27Housekeeping fixes (#764)Michael Grunder
Housekeeping * Check for C++ (#758, #750) * Include `alloc.h` in `make install` and `cmake` * Add a `.def` file for Windows (#760) * Include allocation wrappers referenced in adapter headers * Fix minor syntax errors and typos in README * Fix CI in Windows by properly escaping arguments (#761)
2020-01-28Safe allocation wrappers (#754)Michael Grunder
Create allocation wrappers with a configurable OOM handler (defaults to abort()). See #752, #747
2019-11-03Adding an option to DISABLE_TESTSPaul Botros
Useful when hiredis is used as a CMake dependency in other projects and added via add_subdirectory(). With DISABLE_TESTS on, `make test` in the parent project won't run hiredis tests.
2019-09-01Update CMakelists for hiredis/hiredis_ssl builds.Yossi Gottlieb
Also rename the SSL option from `HIREDIS_SSL` to `ENABLE_SSL` to conform with CMake convnetions.
2019-08-29Update CMakeLists with sslio.c rename.Yossi Gottlieb
2019-07-17Add install adapters header fileskevin1018
2019-04-01CMake: Minor modernizationm
Rely more on transitive dependencies, as provided by TARGET_LINK_LIBRARIES. Avoid using ADD_DEFINITIONS and INCLUDE_DIRECTORIES. This avoids leakage/pollution of defines and includes.
2019-04-01Port network layer to Winsockm
With this change, Hiredis builds with MinGW and runs on Windows.
2019-02-21cmake: ssl disabled by defaultMark Nunberg
2019-02-20CMake: update for SSLMark Nunberg
2019-02-20Obey HIREDIS_SONAME for shared libraryJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Call project() with parsed version stringJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Enable make testJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Generate and install hiredis.pcJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Install async.hJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Add ENABLE_EXAMPLES option, off by defaultJustin Brewer
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
2019-02-20Add examples to CMakeListsMark Nunberg
2019-02-20Add CMake system. Initial commitMark Nunberg
This provides a target to build a DSO, as well as the ability to install it.