Use -pthread flag instead of -lpthread
The -pthread flag should be used for compiling with threads as it sets
flags for both the preprocessor and linker.
In cmake this is achieved with the set(THREADS_PREFER_PTHREAD_FLAG TRUE)
before find_package(Threads) and using the Threads::Threads import target.
Also added set(CMAKE_THREAD_PREFER_PTHREAD TRUE) as we only support
pthread on non windows platforms.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c9a8062..b366108 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,8 @@
find_package(PkgConfig)
include(MacroEnsureVersion)
include(MacroBoolTo01)
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads)
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
@@ -287,9 +289,6 @@
${CMAKE_CURRENT_BINARY_DIR}/poppler
${FREETYPE_INCLUDE_DIRS}
)
-if(CMAKE_USE_PTHREADS_INIT)
- set(HAVE_PTHREAD ON)
-endif()
if(ENABLE_ZLIB)
include_directories(${ZLIB_INCLUDE_DIR})
@@ -534,9 +533,6 @@
if(TIFF_FOUND)
set(poppler_LIBS ${poppler_LIBS} ${TIFF_LIBRARIES})
endif()
-if(HAVE_PTHREAD)
- set(poppler_LIBS ${poppler_LIBS} ${CMAKE_THREAD_LIBS_INIT})
-endif()
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
@@ -547,6 +543,9 @@
endif()
set_target_properties(poppler PROPERTIES VERSION 71.0.0 SOVERSION 71)
target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS})
+if(CMAKE_USE_PTHREADS_INIT)
+ target_link_libraries(poppler LINK_PRIVATE Threads::Threads)
+endif()
install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
if(ENABLE_XPDF_HEADERS)
diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
index 1f06fec..3e861c0 100644
--- a/glib/CMakeLists.txt
+++ b/glib/CMakeLists.txt
@@ -83,8 +83,8 @@
add_library(poppler-glib SHARED ${poppler_glib_SRCS} ${poppler_glib_generated_SRCS})
set_target_properties(poppler-glib PROPERTIES VERSION 8.9.0 SOVERSION 8)
target_link_libraries(poppler-glib poppler ${GLIB2_LIBRARIES} ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES})
-if(HAVE_PTHREAD)
- target_link_libraries(poppler-glib -lpthread)
+if(CMAKE_USE_PTHREADS_INIT)
+ target_link_libraries(poppler-glib Threads::Threads)
endif()
install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 2925eb2..0d82d4e 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -37,8 +37,8 @@
if(LCMS_FOUND)
target_link_libraries(pdftocairo ${LCMS_LIBRARIES})
endif()
- if(HAVE_PTHREAD)
- target_link_libraries(pdftocairo ${CMAKE_THREAD_LIBS_INIT})
+ if(CMAKE_USE_PTHREADS_INIT)
+ target_link_libraries(pdftocairo Threads::Threads)
endif()
if(LCMS2_FOUND)
target_link_libraries(pdftocairo ${LCMS2_LIBRARIES})