1# @HEADER 2# ************************************************************************ 3# 4# Kokkos v. 3.0 5# Copyright (2020) National Technology & Engineering 6# Solutions of Sandia, LLC (NTESS). 7# 8# Under the terms of Contract DE-NA0003525 with NTESS, 9# the U.S. Government retains certain rights in this software. 10# 11# Redistribution and use in source and binary forms, with or without 12# modification, are permitted provided that the following conditions are 13# met: 14# 15# 1. Redistributions of source code must retain the above copyright 16# notice, this list of conditions and the following disclaimer. 17# 18# 2. Redistributions in binary form must reproduce the above copyright 19# notice, this list of conditions and the following disclaimer in the 20# documentation and/or other materials provided with the distribution. 21# 22# 3. Neither the name of the Corporation nor the names of the 23# contributors may be used to endorse or promote products derived from 24# this software without specific prior written permission. 25# 26# THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY 27# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 29# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE 30# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 31# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 32# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 33# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 34# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 35# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 36# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37# 38# Questions? Contact Christian R. Trott (crtrott@sandia.gov) 39# 40# ************************************************************************ 41# @HEADER 42 43 44SET(USE_THREADS FALSE) 45 46IF(NOT TPL_Pthread_INCLUDE_DIRS AND NOT TPL_Pthread_LIBRARY_DIRS AND NOT TPL_Pthread_LIBRARIES) 47 # Use CMake's Thread finder since it is a bit smarter in determining 48 # whether pthreads is already built into the compiler and doesn't need 49 # a library to link. 50 FIND_PACKAGE(Threads) 51 #If Threads found a copy of pthreads make sure it is one of the cases the tribits 52 #tpl system cannot handle. 53 IF(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) 54 IF(CMAKE_THREAD_LIBS_INIT STREQUAL "" OR CMAKE_THREAD_LIBS_INIT STREQUAL "-pthread") 55 SET(USE_THREADS TRUE) 56 ENDIF() 57 ENDIF() 58ENDIF() 59 60IF(USE_THREADS) 61 SET(TPL_Pthread_INCLUDE_DIRS "") 62 SET(TPL_Pthread_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}") 63 SET(TPL_Pthread_LIBRARY_DIRS "") 64ELSE() 65 KOKKOS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( Pthread 66 REQUIRED_HEADERS pthread.h 67 REQUIRED_LIBS_NAMES pthread 68 ) 69ENDIF() 70