Support using zstd as cmake subdirectory - proper include directory
#2,377 opened on Oct 29, 2020
Description
Is your feature request related to a problem? Please describe.
I use zstd as git submodule and cmake subdirectory. This introduces necessary cmake target libzstd_static. This target does not provide include directory. I need to do workaround:
add_subdirectory(zstd-submodule/build/cmake)
target_include_directories(libzstd_static PUBLIC zstd-submodule/lib/) # this shouldn't be necessary
Describe the solution you'd like Add following last line (or equivalent):
if (ZSTD_BUILD_STATIC)
add_library(libzstd_static STATIC ${Sources} ${Headers})
list(APPEND library_targets libzstd_static)
target_include_directories(libzstd_static PUBLIC ../../../lib)
Ditto for shared
Bonus points for moving all includes to lib/includes/zstd and adding lib/includes as include directory. Then I would include as #include <zstd/zstd.h> as I do with most libraries that don't want to interfere with one another or don't pretend to be provided by system. As it is now, different library behaving just like zstd can have it's own common/cpu.h. If I use both libraries, includes will interfere. That is why it should be differentiated by #include<zstd/... and used inside zstd as well.
I realize this is quite big bonus, because first part is 2 lines change, bonus is basicly redoing https://github.com/facebook/zstd/pull/2103 again.