Add -lpthread when using Boost::Thread.
authorPhilip Lowman <debian@carbon-project.org>
Sun, 15 Jan 2017 15:00:24 +0000 (15:00 +0000)
committerFelix Geyer <fgeyer@debian.org>
Sun, 15 Jan 2017 15:00:24 +0000 (15:00 +0000)
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

index 69476203e02586aeb619c810ff0d39aa83099aa5..ae57526b11a492989a57f63a679d7cf731d4aedf 100644 (file)
@@ -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}")