From d476118326813928e2f0c4729ddc3629ceef2b56 Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Sun, 15 Jan 2017 15:00:24 +0000 Subject: [PATCH] Add -lpthread when using Boost::Thread. Origin: other, http://public.kitware.com/Bug/file_download.php?file_id=3929&type=bug Last-Update: 2013-03-16 Bug: http://cmake.org/Bug/view.php?id=10692 Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563479 Forwarded: http://cmake.org/Bug/file_download.php?file_id=3629&type=bug Gbp-Pq: Name FindBoost_add_-lpthread_#563479.diff --- Modules/FindBoost.cmake | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 69476203..ae57526b 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -917,6 +917,22 @@ macro(_Boost_UPDATE_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS componentlibvar base endif() endmacro() +function(_Boost_consider_adding_pthreads _outvar) + # On Unix platforms (excluding cygwin) add pthreads to Boost_LIBRARIES + # if the user is searching for the boost-thread component. + if(UNIX AND NOT CYGWIN) + list(FIND Boost_FIND_COMPONENTS thread _using_boost_thread) + if(_using_boost_thread GREATER -1) + find_library(BOOST_THREAD_LIBRARY NAMES pthread + DOC "The threading library used by boost-thread" + ) + if(BOOST_THREAD_LIBRARY) + set(${_outvar} ${ARGN} ${BOOST_THREAD_LIBRARY} PARENT_SCOPE) + endif() + endif() + endif() +endfunction() + # # End functions/macros # @@ -1807,6 +1823,9 @@ if(Boost_FOUND) list(APPEND Boost_LIBRARIES ${Boost_${UPPERCOMPONENT}_LIBRARY}) endif() endforeach() + + # Add pthread library on UNIX if thread component was found + _Boost_consider_adding_pthreads(Boost_LIBRARIES ${Boost_LIBRARIES}) else() if(Boost_FIND_REQUIRED) message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}") -- 2.30.2