Skip to content

Commit c67dbca

Browse files
committed
build: Tweak linker flags for zstd
Signed-off-by: Hiroshi Hatake <[email protected]>
1 parent 8546892 commit c67dbca

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

CMakeLists.txt

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -579,14 +579,38 @@ add_subdirectory(${FLB_PATH_LIB_MINIZ} EXCLUDE_FROM_ALL)
579579

580580
# Zstd (zstd)
581581
if(FLB_PREFER_SYSTEM_LIB_ZSTD)
582-
find_package(PkgConfig)
583-
pkg_check_modules(LIBZSTD libzstd>=1.4.8)
582+
find_package(ZSTD 1.4.8 QUIET)
583+
if(ZSTD_FOUND)
584+
set(LIBZSTD_FOUND TRUE)
585+
set(LIBZSTD_LIBRARIES ZSTD::ZSTD)
586+
else()
587+
find_package(PkgConfig)
588+
pkg_check_modules(LIBZSTD libzstd>=1.4.8)
589+
if(LIBZSTD_FOUND)
590+
include_directories(${LIBZSTD_INCLUDE_DIRS})
591+
link_directories(${LIBZSTD_LIBRARY_DIRS})
592+
add_library(ZSTD::ZSTD INTERFACE IMPORTED)
593+
set_property(TARGET ZSTD::ZSTD PROPERTY
594+
INTERFACE_LINK_LIBRARIES "${LIBZSTD_LIBRARIES}")
595+
set(LIBZSTD_LIBRARIES ZSTD::ZSTD)
596+
endif()
597+
endif()
584598
endif()
585-
if(LIBZSTD_FOUND)
586-
include_directories(${LIBZSTD_INCLUDE_DIRS})
587-
link_directories(${LIBZSTD_LIBRARY_DIRS})
588-
else()
599+
600+
if(NOT LIBZSTD_FOUND)
589601
include(cmake/zstd.cmake)
602+
target_compile_definitions(libzstd_static PRIVATE ZSTD_NAMESPACE=flbzstd)
603+
604+
if(MSVC)
605+
# MSVC: no ELF visibility attributes; exports are opt-in via dllexport/DEF.
606+
# Nothing special to add here.
607+
else()
608+
target_compile_definitions(libzstd_static PRIVATE ZSTD_HIDE_SYMBOLS=1)
609+
target_compile_options(libzstd_static PRIVATE -fvisibility=hidden)
610+
set(FLB_EXCLUDE_LIBS_ALL_NEEDED TRUE)
611+
endif()
612+
613+
set(LIBZSTD_LIBRARIES libzstd_static)
590614
endif()
591615

592616
# ring buffer library

0 commit comments

Comments
 (0)