SmartRedis
SmartRedis copied to clipboard
Third-party software is installed to SmartRedis install directory
Description
Third-party software is added to the SmartRedis install/lib
and install/include
directories. This pollutes our installation and complicates clean up make targets include clean
and clobber
.
How to reproduce
After building the library, inspect the resulting install folder.
Expected behavior
Third-party software should remain contained to the third-party/
folder.
Insufficient fix
An initial attempt to correct this problem consisted of:
- updating the third-party software installation folder for hiredis and redis++ to
SR_ROOT/third-party/install
- Updating CMakeFiles.txt for the main SmartRedis libary to add this as an include directory
While these steps are definitely needed in any solution, they are insufficient at present because several of our source files include headers that themselves include third-party dependencies, sw/redis++.h
being the most common of these. With no other changes, this would add a requirement on our C++ users that they have to include a -I $(SMARTREDIS_ROOT)/third-party/install
flag to their compile and link steps that they should not have to do.
The need to add an include directory would break our users' software builds. An additional step is needed to keep this from happening:
- Refactor the SmartRedis library source so that third-party objects are properly separated from our main interface headers.
This will need to be done in support of Dragon as well as in support of Redis, so should not be in the IceBox. The design doc start that I generated covers how to do this.