SmartRedis icon indicating copy to clipboard operation
SmartRedis copied to clipboard

Third-party software is installed to SmartRedis install directory

Open billschereriii opened this issue 1 year ago • 1 comments

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:

  1. updating the third-party software installation folder for hiredis and redis++ to SR_ROOT/third-party/install
  2. 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:

  1. Refactor the SmartRedis library source so that third-party objects are properly separated from our main interface headers.

billschereriii avatar May 22 '23 18:05 billschereriii

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.

billschereriii avatar Dec 14 '23 19:12 billschereriii