Explorar el Código

ENH: Deal with 32-bit and 64-bit variants of Microsoft's MPI properly

Douglas Gregor hace 17 años
padre
commit
1100b52c7e
Se han modificado 1 ficheros con 9 adiciones y 3 borrados
  1. 9 3
      Modules/FindMPI.cmake

+ 9 - 3
Modules/FindMPI.cmake

@@ -216,13 +216,19 @@ else (MPI_COMPILE_CMDLINE)
     "$ENV{SystemDrive}/Program Files/Microsoft Compute Cluster Pack/Include"
     )
   
-  # TODO: How do we know whether we're building 32-bit vs. 64-bit for MS-MPI?
+  # Decide between 32-bit and 64-bit libraries for Microsoft's MPI
+  if (CMAKE_CL_64)
+    set(MS_MPI_ARCH_DIR amd64)
+  else (CMAKE_CL_64)
+    set(MS_MPI_ARCH_DIR i386)
+  endif (CMAKE_CL_64)
+  
   find_library(MPI_LIBRARY 
-    NAMES mpi mpich
+    NAMES mpi mpich msmpi
     PATHS /usr/lib /usr/local/lib /usr/local/mpi/lib
     "C:/Program Files/MPICH/SDK/Lib" 
     "$ENV{SystemDrive}/Program Files/MPICH/SDK/Lib"
-    "$ENV{SystemDrive}/Program Files/Microsoft Compute Cluster Pack/Lib/i386"
+    "$ENV{SystemDrive}/Program Files/Microsoft Compute Cluster Pack/Lib/${MS_MPI_ARCH_DIR}"
     )
   find_library(MPI_LIBRARY 
     NAMES mpich2