pthread_checks.cmake
1 # Copyright (c) The Bitcoin Core developers 2 # Distributed under the MIT software license, see the accompanying 3 # file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 # Define HAVE_PTHREAD_* variables depending on what pthread functions are 6 # available. 7 8 include(CMakePushCheckState) 9 include(CheckCXXSourceCompiles) 10 11 cmake_push_check_state() 12 set(CMAKE_REQUIRED_LIBRARIES Threads::Threads) 13 check_cxx_source_compiles(" 14 #include <pthread.h> 15 int main(int argc, char** argv) 16 { 17 char thread_name[16]; 18 return pthread_getname_np(pthread_self(), thread_name, sizeof(thread_name)); 19 }" 20 HAVE_PTHREAD_GETNAME_NP) 21 22 check_cxx_source_compiles(" 23 #include <cstdint> 24 #include <pthread.h> 25 int main(int argc, char** argv) 26 { 27 uint64_t tid; 28 pthread_threadid_np(NULL, &tid); 29 return 0; 30 }" 31 HAVE_PTHREAD_THREADID_NP) 32 33 check_cxx_source_compiles(" 34 #include <pthread.h> 35 #include <pthread_np.h> 36 int main(int argc, char** argv) 37 { 38 return pthread_getthreadid_np(); 39 }" 40 HAVE_PTHREAD_GETTHREADID_NP) 41 cmake_pop_check_state()