Add initial support for python bindings
[alexxy/gromacs.git] / cmake / ThreadMPI.cmake
index d039dba5afd39972591a42db46a18341fcc4fa8f..027eff6918746d658974f7e189db78167ca9661d 100644 (file)
@@ -62,15 +62,21 @@ MACRO(TMPI_TEST_ATOMICS INCDIR)
 
 ENDMACRO(TMPI_TEST_ATOMICS VARIABLE)
 
+try_compile(HAVE_PROCESSOR_NUMBER ${CMAKE_BINARY_DIR} "${CMAKE_SOURCE_DIR}/cmake/TestWinProcNum.c")
 
 include(FindThreads)
-if (CMAKE_USE_PTHREADS_INIT)
+
+if(CMAKE_USE_WIN32_THREADS_INIT AND NOT HAVE_PROCESSOR_NUMBER)
+    message(WARNING "Incomplete Windows Processor Group API. If you want Gromacs to be able to set thread affinity, choose a Mingw distribution with a complete API (e.g. Mingw-w64).")
+endif()
+
+if (CMAKE_USE_WIN32_THREADS_INIT AND HAVE_PROCESSOR_NUMBER)
+    set(THREAD_WINDOWS 1)
+    set(THREAD_LIB)
+elseif (CMAKE_USE_PTHREADS_INIT)
     check_include_files(pthread.h    HAVE_PTHREAD_H)
     set(THREAD_PTHREADS 1)
     set(THREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
-elseif (CMAKE_USE_WIN32_THREADS_INIT)
-    set(THREAD_WINDOWS 1)
-    set(THREAD_LIB)
 else()
     message(FATAL_ERROR "Thread support required")
 endif ()