]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Check for pthreads library
authorMilan Ševčík <majlen@civ.zcu.cz>
Fri, 17 Mar 2017 13:27:01 +0000 (14:27 +0100)
committerMilan Ševčík <majlen@civ.zcu.cz>
Tue, 21 Mar 2017 10:11:45 +0000 (11:11 +0100)
build/cmake/contrib/pzstd/CMakeLists.txt
build/cmake/programs/CMakeLists.txt

index f581c6aa4535ed9ef0fa3f6c2f3910aecc21595c..b4fbe1689cf55a838e18276d151d515bdb9de83a 100644 (file)
@@ -21,8 +21,15 @@ SET(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd)
 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")
index 3f8c3b0f2334aa509a1cf0f3c087ae08d19ed06f..bc20a265f617dbb35d207aade8320e2e2f675e9b 100644 (file)
@@ -43,8 +43,12 @@ IF (ZSTD_MULTITHREAD_SUPPORT)
     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)