facebook/zstd

Support using zstd as cmake subdirectory - proper include directory

Open

#2,377 建立於 2020年10月29日

在 GitHub 查看
 (1 留言) (1 反應) (0 負責人)C (27,100 star) (2,481 fork)batch import
buildfeature requesthelp wanted

描述

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.

貢獻者指南