INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR})
ADD_EXECUTABLE(pzstd ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp)
-TARGET_LINK_LIBRARIES(pzstd libzstd_shared pthread)
SET_TARGET_PROPERTIES(pzstd PROPERTIES COMPILE_DEFINITIONS "NDEBUG")
SET_TARGET_PROPERTIES(pzstd PROPERTIES COMPILE_OPTIONS "-Wno-shadow")
+SET(THREADS_PREFER_PTHREAD_FLAG ON)
+FIND_PACKAGE(Threads REQUIRED)
+IF (CMAKE_USE_PTHREADS_INIT)
+ TARGET_LINK_LIBRARIES(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT})
+ELSE()
+ MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
+ENDIF()
+
INSTALL(TARGETS pzstd RUNTIME DESTINATION "bin")
ADD_EXECUTABLE(zstdmt ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/bench.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources})
SET_TARGET_PROPERTIES(zstdmt PROPERTIES COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
TARGET_LINK_LIBRARIES(zstdmt libzstd_shared)
- IF (UNIX)
- TARGET_LINK_LIBRARIES(zstdmt pthread)
- ENDIF (UNIX)
- INSTALL(TARGETS zstdmt RUNTIME DESTINATION "bin")
+
+ SET(THREADS_PREFER_PTHREAD_FLAG ON)
+ FIND_PACKAGE(Threads REQUIRED)
+ IF (CMAKE_USE_PTHREADS_INIT)
+ TARGET_LINK_LIBRARIES(zstdmt ${CMAKE_THREAD_LIBS_INIT})
+ ELSE()
+ MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
+ ENDIF()
ENDIF (ZSTD_MULTITHREAD_SUPPORT)